用图案 Delphi 填充矩形内部

Fill inside a rectangle with a pattern Delphi

使用 delphi-firemonkey 中的以下代码,很容易用纯色或渐变色填充矩形,但我不知道如何用点或斜划线等图案填充它。

FillRect(RectF(a,b, c,d), 70, tbrush.Create(TBrushKind.Solid,TAlphaColorRec.gray));

感谢您的帮助。

您可以使用位图来提供“点和斜线”或任何用作图案的图形。在这种情况下,您在创建画笔时定义 TBrushKind.Bitmap

这是一个将图案画笔保留为表单一部分的示例。评论说明详情。

  private
    Brush: TBrush;
    BrushBmp: TBrushBitmap;

procedure TForm48.FormCreate(Sender: TObject);
begin
  BrushBmp := TBrushBitmap.Create;
  // Load bitmap to be used as brush
  BrushBmp.Bitmap.LoadFromFile('C:\tmp\BrushA.bmp');
  // Create the brush of proper TBrushKind
  Brush := TBrush.Create(TBrushKind.Bitmap, TAlphaColorRec.Aqua);
  // Assign the bitmap to the brush
  Brush.Bitmap := BrushBmp;
end;

procedure TForm48.FormDestroy(Sender: TObject);
begin
  Brush.Free;
end;

procedure TForm48.Rectangle1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
begin
  // use the bitmap brush
  Canvas.FillRect(ARect, 0.0, 0.0, AllCorners, 1.0, Brush, TCornerType.Bevel);
end;

位图:

当用作填充时: