diff --git a/examples/pen_brush/project1.lpi b/examples/pen_brush/project1.lpi index 6fc23887cc..da895abed2 100644 --- a/examples/pen_brush/project1.lpi +++ b/examples/pen_brush/project1.lpi @@ -45,13 +45,23 @@ - - + + + + + + + + + + + + diff --git a/examples/pen_brush/unit1.lfm b/examples/pen_brush/unit1.lfm index 0ce019000d..02a73b42f6 100644 --- a/examples/pen_brush/unit1.lfm +++ b/examples/pen_brush/unit1.lfm @@ -6,6 +6,8 @@ object Form1: TForm1 Caption = 'Pen & Brush' ClientHeight = 425 ClientWidth = 400 + OnCreate = FormCreate + OnDestroy = FormDestroy ParentFont = False Position = poScreenCenter LCLVersion = '0.9.27' diff --git a/examples/pen_brush/unit1.lrs b/examples/pen_brush/unit1.lrs index 5be1df3fa8..1fbfc5aebe 100644 --- a/examples/pen_brush/unit1.lrs +++ b/examples/pen_brush/unit1.lrs @@ -3,31 +3,32 @@ LazarusResources.Add('TForm1','FORMDATA',[ 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'^'#1#6'Height'#3#169#1#3'Top'#3#215#0#5'W' +'idth'#3#144#1#7'Caption'#6#11'Pen & Brush'#12'ClientHeight'#3#169#1#11'Clie' - +'ntWidth'#3#144#1#10'ParentFont'#8#8'Position'#7#14'poScreenCenter'#10'LCLVe' - +'rsion'#6#6'0.9.27'#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Own' - +'er'#21'AnchorSideTop.Control'#7#5'Owner'#4'Left'#2#11#6'Height'#2#14#3'Top' - +#2#11#5'Width'#2#28#18'BorderSpacing.Left'#2#11#17'BorderSpacing.Top'#2#11#7 - +'Caption'#6#5'Pens:'#11'ParentColor'#8#0#0#9'TPaintBox'#6'PenBox'#22'AnchorS' - +'ideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'Anchor' - +'SideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'Anch' - +'orSideRight.Side'#7#9'asrBottom'#4'Left'#2#11#6'Height'#2'i'#3'Top'#2' '#5 - +'Width'#3'z'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacin' - +'g.Left'#2#11#17'BorderSpacing.Top'#2#7#19'BorderSpacing.Right'#2#11#7'OnPai' - +'nt'#7#11'PenBoxPaint'#0#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#5 - +'Owner'#21'AnchorSideTop.Control'#7#6'PenBox'#18'AnchorSideTop.Side'#7#9'asr' - +'Bottom'#4'Left'#2#11#6'Height'#2#14#3'Top'#3#148#0#5'Width'#2'+'#18'BorderS' - +'pacing.Left'#2#11#17'BorderSpacing.Top'#2#11#7'Caption'#6#8'Brushes:'#11'Pa' - +'rentColor'#8#0#0#9'TPaintBox'#8'BrushBox'#22'AnchorSideLeft.Control'#7#5'Ow' - +'ner'#21'AnchorSideTop.Control'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBo' - +'ttom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'a' - +'srBottom'#4'Left'#2#11#6'Height'#3#207#0#3'Top'#3#169#0#5'Width'#3'z'#1#7'A' - +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#11#17'B' - +'orderSpacing.Top'#2#7#19'BorderSpacing.Right'#2#11#7'OnPaint'#7#13'BrushBox' - +'Paint'#0#0#7'TBitBtn'#7'Button1'#21'AnchorSideTop.Control'#7#8'BrushBox'#18 - +'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20 - +'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#3'3'#1#6'Height'#2#26#3'Top'#3 - +#131#1#5'Width'#2'R'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSiz' - +'e'#9#17'BorderSpacing.Top'#2#11#19'BorderSpacing.Right'#2#11#7'Caption'#6#15 - +'&'#208#151#208#176#208#186#209#128#209#139#209#130#209#140#4'Kind'#7#7'bkCl' - +'ose'#9'NumGlyphs'#2#0#7'OnClick'#7#12'Button1Click'#8'TabOrder'#2#0#0#0#0 + +'ntWidth'#3#144#1#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy' + +#10'ParentFont'#8#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.27' + +#0#6'TLabel'#6'Label1'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo' + +'p.Control'#7#5'Owner'#4'Left'#2#11#6'Height'#2#14#3'Top'#2#11#5'Width'#2#28 + +#18'BorderSpacing.Left'#2#11#17'BorderSpacing.Top'#2#11#7'Caption'#6#5'Pens:' + +#11'ParentColor'#8#0#0#9'TPaintBox'#6'PenBox'#22'AnchorSideLeft.Control'#7#5 + +'Owner'#21'AnchorSideTop.Control'#7#6'Label1'#18'AnchorSideTop.Side'#7#9'asr' + +'Bottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9 + +'asrBottom'#4'Left'#2#11#6'Height'#2'i'#3'Top'#2' '#5'Width'#3'z'#1#7'Anchor' + +'s'#11#5'akTop'#6'akLeft'#7'akRight'#0#18'BorderSpacing.Left'#2#11#17'Border' + +'Spacing.Top'#2#7#19'BorderSpacing.Right'#2#11#7'OnPaint'#7#11'PenBoxPaint'#0 + +#0#6'TLabel'#6'Label2'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTo' + +'p.Control'#7#6'PenBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#11#6 + +'Height'#2#14#3'Top'#3#148#0#5'Width'#2'+'#18'BorderSpacing.Left'#2#11#17'Bo' + +'rderSpacing.Top'#2#11#7'Caption'#6#8'Brushes:'#11'ParentColor'#8#0#0#9'TPai' + +'ntBox'#8'BrushBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.C' + +'ontrol'#7#6'Label2'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRigh' + +'t.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#11#6 + +'Height'#3#207#0#3'Top'#3#169#0#5'Width'#3'z'#1#7'Anchors'#11#5'akTop'#6'akL' + +'eft'#7'akRight'#0#18'BorderSpacing.Left'#2#11#17'BorderSpacing.Top'#2#7#19 + +'BorderSpacing.Right'#2#11#7'OnPaint'#7#13'BrushBoxPaint'#0#0#7'TBitBtn'#7'B' + +'utton1'#21'AnchorSideTop.Control'#7#8'BrushBox'#18'AnchorSideTop.Side'#7#9 + +'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7 + +#9'asrBottom'#4'Left'#3'3'#1#6'Height'#2#26#3'Top'#3#131#1#5'Width'#2'R'#7'A' + +'nchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.T' + +'op'#2#11#19'BorderSpacing.Right'#2#11#7'Caption'#6#15'&'#208#151#208#176#208 + +#186#209#128#209#139#209#130#209#140#4'Kind'#7#7'bkClose'#9'NumGlyphs'#2#0#7 + +'OnClick'#7#12'Button1Click'#8'TabOrder'#2#0#0#0#0 ]); diff --git a/examples/pen_brush/unit1.pas b/examples/pen_brush/unit1.pas index ace094008d..1ced7e1116 100644 --- a/examples/pen_brush/unit1.pas +++ b/examples/pen_brush/unit1.pas @@ -20,9 +20,11 @@ type BrushBox: TPaintBox; procedure BrushBoxPaint(Sender: TObject); procedure Button1Click(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormDestroy(Sender: TObject); procedure PenBoxPaint(Sender: TObject); private - { private declarations } + FPattern: TBitmap; public { public declarations } end; @@ -42,20 +44,40 @@ begin Close; end; +procedure TForm1.FormCreate(Sender: TObject); +const + LineBitsDotted: array[0..7] of Word = ($55, $AA, $55, $AA, $55, $AA, $55, $AA); +begin + FPattern := TBitmap.Create; + FPattern.SetHandles(CreateBitmap(8, 8, 1, 1, @LineBitsDotted), 0); +end; + +procedure TForm1.FormDestroy(Sender: TObject); +begin + FPattern.Free; +end; + procedure TForm1.BrushBoxPaint(Sender: TObject); var bs: TBrushStyle; y: integer; begin + y := 15; for bs := bsSolid to bsDiagCross do begin - y := 15 * (Ord(bs) + 1); BrushBox.Canvas.Brush.Color := clBtnFace; BrushBox.Canvas.TextOut(10, y - 7, GetEnumName(TypeInfo(TBrushStyle), Ord(bs))); BrushBox.Canvas.Brush.Color := clRed; BrushBox.Canvas.Brush.Style := bs; BrushBox.Canvas.FillRect(120, y - 5, PenBox.Width - 10, y + 5); + inc(y, 15); end; + + BrushBox.Canvas.Brush.Color := clBtnFace; + BrushBox.Canvas.TextOut(10, y - 7, 'Pattern'); + BrushBox.Canvas.Brush.Color := clRed; + BrushBox.Canvas.Brush.Bitmap := FPattern; + BrushBox.Canvas.FillRect(120, y - 5, PenBox.Width - 10, y + 5); end; procedure TForm1.PenBoxPaint(Sender: TObject);