用图案 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;
位图:
当用作填充时:
使用 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;
位图:
当用作填充时: