Skip to content

Instantly share code, notes, and snippets.

@JensMertelmeyer
Created April 16, 2021 08:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JensMertelmeyer/a9c733d14c5390b6ae3fbbcf167c23ce to your computer and use it in GitHub Desktop.
Save JensMertelmeyer/a9c733d14c5390b6ae3fbbcf167c23ce to your computer and use it in GitHub Desktop.
Delphi VCL Form background pattern
procedure TMainForm.paintBackground();
var
bmp: TBitmap;
rect: TRect;
left, right: TRect;
begin
bmp := TBitmap.Create();
try
// generate pattern
bmp.SetSize(Image1.Picture.Width, Image1.Picture.Height);
bmp.Transparent := False;
rect := bmp.Canvas.ClipRect;
left := rect.SplitRect(TSplitRectType.srLeft, xOffsetPx);
right := rect;
right.Offset(xOffsetPx, 0); right.Right := rect.Width;
bmp.Canvas.Pen.Color := TColors.Blue;
bmp.Canvas.Brush.Color := TColors.Blue;
bmp.Canvas.FillRect(left);
bmp.Canvas.Pen.Color := TColors.Red;
bmp.Canvas.Brush.Color := TColors.Red;
bmp.Canvas.FillRect(Right);
// Clear form canvas
Canvas.Pen.Color := Color;
Canvas.Brush.Color := Color;
Canvas.FillRect(Canvas.ClipRect);
// paste pattern
Canvas.Brush.Bitmap := bmp;
Canvas.FloodFill(0, 0, Color, TFillStyle.fsBorder);
finally
bmp.Destroy();
end;
end;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment