GradButton: Fixed Repaint at OwnerBackgroundDraw

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@859 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
eugene1 2009-06-25 00:41:47 +00:00
parent 90dba7a8e3
commit e8729f32a8
5 changed files with 498 additions and 435 deletions

View File

@ -1,108 +1,107 @@
object Form1: TForm1 object Form1: TForm1
Left = 473 Left = 89
Height = 443 Height = 439
Top = 192 Top = 159
Width = 576 Width = 576
ActiveControl = TrackBar1 ActiveControl = TrackBar1
BorderIcons = [biSystemMenu, biMinimize] BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle BorderStyle = bsSingle
Caption = 'TGradButton-Demo' Caption = 'TGradButton-Demo'
ClientHeight = 443 ClientHeight = 439
ClientWidth = 576 ClientWidth = 576
OnCreate = FormCreate OnCreate = FormCreate
ParentFont = False
LCLVersion = '0.9.27' LCLVersion = '0.9.27'
object Label1: TLabel object Label1: TLabel
Left = 8 Left = 8
Height = 14 Height = 16
Top = 75 Top = 75
Width = 60 Width = 71
Caption = 'NormalBlend' Caption = 'NormalBlend'
ParentColor = False ParentColor = False
end end
object Label2: TLabel object Label2: TLabel
Left = 8 Left = 8
Height = 14 Height = 16
Top = 131 Top = 131
Width = 51 Width = 56
Caption = 'OverBlend' Caption = 'OverBlend'
ParentColor = False ParentColor = False
end end
object Label3: TLabel object Label3: TLabel
Left = 88 Left = 88
Height = 14 Height = 16
Top = 75 Top = 75
Width = 1 Width = 1
ParentColor = False ParentColor = False
end end
object Label4: TLabel object Label4: TLabel
Left = 88 Left = 88
Height = 14 Height = 16
Top = 131 Top = 131
Width = 1 Width = 1
ParentColor = False ParentColor = False
end end
object Label5: TLabel object Label5: TLabel
Left = 37 Left = 37
Height = 14 Height = 16
Top = 16 Top = 16
Width = 52 Width = 57
Caption = 'Base Color' Caption = 'Base Color'
ParentColor = False ParentColor = False
end end
object Label6: TLabel object Label6: TLabel
Left = 133 Left = 133
Height = 14 Height = 16
Top = 16 Top = 16
Width = 91 Width = 106
Caption = 'Normal Blend Color' Caption = 'Normal Blend Color'
ParentColor = False ParentColor = False
end end
object Label7: TLabel object Label7: TLabel
Left = 240 Left = 240
Height = 14 Height = 16
Top = 16 Top = 16
Width = 82 Width = 91
Caption = 'Over Blend Color' Caption = 'Over Blend Color'
ParentColor = False ParentColor = False
end end
object Label8: TLabel object Label8: TLabel
Left = 488 Left = 488
Height = 14 Height = 16
Top = 128 Top = 128
Width = 28 Width = 32
Caption = 'Glyph' Caption = 'Glyph'
ParentColor = False ParentColor = False
end end
object Label9: TLabel object Label9: TLabel
Left = 461 Left = 461
Height = 14 Height = 16
Top = 176 Top = 176
Width = 87 Width = 99
Caption = 'Glyph Background' Caption = 'Glyph Background'
ParentColor = False ParentColor = False
end end
object Label10: TLabel object Label10: TLabel
Left = 472 Left = 472
Height = 14 Height = 16
Top = 16 Top = 16
Width = 50 Width = 59
Caption = 'Click Color' Caption = 'Click Color'
ParentColor = False ParentColor = False
end end
object Label11: TLabel object Label11: TLabel
Left = 464 Left = 464
Height = 14 Height = 16
Top = 72 Top = 72
Width = 69 Width = 78
Caption = 'Disabled Color' Caption = 'Disabled Color'
ParentColor = False ParentColor = False
end end
object Label12: TLabel object Label12: TLabel
Left = 368 Left = 368
Height = 14 Height = 16
Top = 16 Top = 16
Width = 51 Width = 55
Caption = 'Text Color' Caption = 'Text Color'
ParentColor = False ParentColor = False
end end
@ -113,6 +112,7 @@ object Form1: TForm1
Width = 440 Width = 440
Max = 100000 Max = 100000
OnChange = TrackBar1Change OnChange = TrackBar1Change
Position = 0
ScalePos = trBottom ScalePos = trBottom
TickStyle = tsNone TickStyle = tsNone
Align = alCustom Align = alCustom
@ -125,6 +125,7 @@ object Form1: TForm1
Width = 440 Width = 440
Max = 100000 Max = 100000
OnChange = TrackBar2Change OnChange = TrackBar2Change
Position = 0
ScalePos = trBottom ScalePos = trBottom
TabStop = False TabStop = False
TickStyle = tsNone TickStyle = tsNone
@ -290,18 +291,17 @@ object Form1: TForm1
end end
object LabeledEdit1: TLabeledEdit object LabeledEdit1: TLabeledEdit
Left = 328 Left = 328
Height = 23 Height = 25
Top = 216 Top = 216
Width = 80 Width = 80
EditLabel.AnchorSideLeft.Control = LabeledEdit1 EditLabel.AnchorSideLeft.Control = LabeledEdit1
EditLabel.AnchorSideBottom.Control = LabeledEdit1 EditLabel.AnchorSideBottom.Control = LabeledEdit1
EditLabel.Left = 328 EditLabel.Left = 328
EditLabel.Height = 14 EditLabel.Height = 16
EditLabel.Top = 199 EditLabel.Top = 197
EditLabel.Width = 73 EditLabel.Width = 82
EditLabel.Caption = 'Button Caption' EditLabel.Caption = 'Button Caption'
EditLabel.ParentColor = False EditLabel.ParentColor = False
ParentColor = False
TabOrder = 7 TabOrder = 7
Text = 'Sample Text' Text = 'Sample Text'
OnKeyUp = LabeledEdit1KeyUp OnKeyUp = LabeledEdit1KeyUp
@ -314,6 +314,7 @@ object Form1: TForm1
Caption = 'Sample Text' Caption = 'Sample Text'
Font.Color = clWhite Font.Color = clWhite
Font.Height = -15 Font.Height = -15
OnClick = bClick
TabOrder = 9 TabOrder = 9
TabStop = True TabStop = True
NormalBlend = 0.5 NormalBlend = 0.5
@ -324,8 +325,10 @@ object Form1: TForm1
OverBlendColor = clSilver OverBlendColor = clSilver
BackgroundColor = clBtnFace BackgroundColor = clBtnFace
ShowFocusBorder = True ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite GlyphBackgroundColor = clWhite
ClickColor = clBlue ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15 AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15 AutoHeightBorderSpacing = 15
end end
@ -347,8 +350,10 @@ object Form1: TForm1
OverBlendColor = clSilver OverBlendColor = clSilver
BackgroundColor = clBtnFace BackgroundColor = clBtnFace
ShowFocusBorder = True ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite GlyphBackgroundColor = clWhite
ClickColor = clBlue ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15 AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15 AutoHeightBorderSpacing = 15
end end
@ -370,8 +375,10 @@ object Form1: TForm1
OverBlendColor = clSilver OverBlendColor = clSilver
BackgroundColor = clBtnFace BackgroundColor = clBtnFace
ShowFocusBorder = True ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite GlyphBackgroundColor = clWhite
ClickColor = clBlue ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15 AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15 AutoHeightBorderSpacing = 15
end end
@ -393,8 +400,10 @@ object Form1: TForm1
OverBlendColor = clSilver OverBlendColor = clSilver
BackgroundColor = clBtnFace BackgroundColor = clBtnFace
ShowFocusBorder = True ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite GlyphBackgroundColor = clWhite
ClickColor = clBlue ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15 AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15 AutoHeightBorderSpacing = 15
end end
@ -416,8 +425,10 @@ object Form1: TForm1
OverBlendColor = clSilver OverBlendColor = clSilver
BackgroundColor = clBtnFace BackgroundColor = clBtnFace
ShowFocusBorder = True ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite GlyphBackgroundColor = clWhite
ClickColor = clBlue ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15 AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15 AutoHeightBorderSpacing = 15
end end
@ -439,8 +450,10 @@ object Form1: TForm1
OverBlendColor = clSilver OverBlendColor = clSilver
BackgroundColor = clBtnFace BackgroundColor = clBtnFace
ShowFocusBorder = True ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite GlyphBackgroundColor = clWhite
ClickColor = clBlue ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15 AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15 AutoHeightBorderSpacing = 15
end end
@ -462,8 +475,10 @@ object Form1: TForm1
OverBlendColor = clSilver OverBlendColor = clSilver
BackgroundColor = clBtnFace BackgroundColor = clBtnFace
ShowFocusBorder = True ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite GlyphBackgroundColor = clWhite
ClickColor = clBlue ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15 AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15 AutoHeightBorderSpacing = 15
end end
@ -485,8 +500,10 @@ object Form1: TForm1
OverBlendColor = clSilver OverBlendColor = clSilver
BackgroundColor = clBtnFace BackgroundColor = clBtnFace
ShowFocusBorder = True ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite GlyphBackgroundColor = clWhite
ClickColor = clBlue ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15 AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15 AutoHeightBorderSpacing = 15
end end
@ -503,7 +520,7 @@ object Form1: TForm1
Left = 327 Left = 327
Height = 19 Height = 19
Top = 261 Top = 261
Width = 46 Width = 44
Caption = 'Bold' Caption = 'Bold'
OnChange = BoldCheckBoxChange OnChange = BoldCheckBoxChange
TabOrder = 18 TabOrder = 18
@ -526,8 +543,10 @@ object Form1: TForm1
OverBlendColor = clSilver OverBlendColor = clSilver
BackgroundColor = clBtnFace BackgroundColor = clBtnFace
ShowFocusBorder = True ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite GlyphBackgroundColor = clWhite
ClickColor = clBlue ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15 AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15 AutoHeightBorderSpacing = 15
end end
@ -535,7 +554,7 @@ object Form1: TForm1
Left = 327 Left = 327
Height = 19 Height = 19
Top = 280 Top = 280
Width = 49 Width = 45
Caption = 'Italic' Caption = 'Italic'
OnChange = ItalicCheckBoxChange OnChange = ItalicCheckBoxChange
TabOrder = 20 TabOrder = 20
@ -544,13 +563,35 @@ object Form1: TForm1
Left = 448 Left = 448
Height = 19 Height = 19
Top = 220 Top = 220
Width = 115 Width = 117
Caption = 'Glyph Transparent' Caption = 'Glyph Transparent'
OnChange = GlyphTransparentCheckBoxChange OnChange = GlyphTransparentCheckBoxChange
TabOrder = 21 TabOrder = 21
end end
object ColorDialog1: TColorDialog object ColorDialog1: TColorDialog
Color = 11954481 Color = 11954481
CustomColors.Strings = (
'ColorA=000000'
'ColorB=000080'
'ColorC=008000'
'ColorD=008080'
'ColorE=800000'
'ColorF=800080'
'ColorG=808000'
'ColorH=808080'
'ColorI=C0C0C0'
'ColorJ=0000FF'
'ColorK=00FF00'
'ColorL=00FFFF'
'ColorM=FF0000'
'ColorN=FF00FF'
'ColorO=FFFF00'
'ColorP=FFFFFF'
'ColorQ=C0DCC0'
'ColorR=F0CAA6'
'ColorS=F0FBFF'
'ColorT=A4A0A0'
)
left = 8 left = 8
top = 176 top = 176
end end

View File

@ -1,188 +1,198 @@
{ This is an automatically generated lazarus resource file } { Das ist eine automatisch erzeugte Lazarus-Ressourcendatei }
LazarusResources.Add('TForm1','FORMDATA',[ LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#217#1#6'Height'#3#187#1#3'Top'#3#192#0#5 'TPF0'#6'TForm1'#5'Form1'#4'Left'#2'Y'#6'Height'#3#183#1#3'Top'#3#159#0#5'Wid'
+'Width'#3'@'#2#13'ActiveControl'#7#9'TrackBar1'#11'BorderIcons'#11#12'biSyst' +'th'#3'@'#2#13'ActiveControl'#7#9'TrackBar1'#11'BorderIcons'#11#12'biSystemM'
+'emMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#16'TGra' +'enu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#16'TGradBu'
+'dButton-Demo'#12'ClientHeight'#3#187#1#11'ClientWidth'#3'@'#2#8'OnCreate'#7 +'tton-Demo'#12'ClientHeight'#3#183#1#11'ClientWidth'#3'@'#2#8'OnCreate'#7#10
+#10'FormCreate'#10'ParentFont'#8#10'LCLVersion'#6#6'0.9.27'#0#6'TLabel'#6'La' +'FormCreate'#10'LCLVersion'#6#6'0.9.27'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6
+'bel1'#4'Left'#2#8#6'Height'#2#14#3'Top'#2'K'#5'Width'#2'<'#7'Caption'#6#11 +'Height'#2#16#3'Top'#2'K'#5'Width'#2'G'#7'Caption'#6#11'NormalBlend'#11'Pare'
+'NormalBlend'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height' +'ntColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#16#3'Top'#3#131#0
+#2#14#3'Top'#3#131#0#5'Width'#2'3'#7'Caption'#6#9'OverBlend'#11'ParentColor' +#5'Width'#2'8'#7'Caption'#6#9'OverBlend'#11'ParentColor'#8#0#0#6'TLabel'#6'L'
+#8#0#0#6'TLabel'#6'Label3'#4'Left'#2'X'#6'Height'#2#14#3'Top'#2'K'#5'Width'#2 +'abel3'#4'Left'#2'X'#6'Height'#2#16#3'Top'#2'K'#5'Width'#2#1#11'ParentColor'
+#1#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#2'X'#6'Height'#2#14#3'T' +#8#0#0#6'TLabel'#6'Label4'#4'Left'#2'X'#6'Height'#2#16#3'Top'#3#131#0#5'Widt'
+'op'#3#131#0#5'Width'#2#1#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2 +'h'#2#1#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2'%'#6'Height'#2#16
+'%'#6'Height'#2#14#3'Top'#2#16#5'Width'#2'4'#7'Caption'#6#10'Base Color'#11 +#3'Top'#2#16#5'Width'#2'9'#7'Caption'#6#10'Base Color'#11'ParentColor'#8#0#0
+'ParentColor'#8#0#0#6'TLabel'#6'Label6'#4'Left'#3#133#0#6'Height'#2#14#3'Top' +#6'TLabel'#6'Label6'#4'Left'#3#133#0#6'Height'#2#16#3'Top'#2#16#5'Width'#2'j'
+#2#16#5'Width'#2'['#7'Caption'#6#18'Normal Blend Color'#11'ParentColor'#8#0#0 +#7'Caption'#6#18'Normal Blend Color'#11'ParentColor'#8#0#0#6'TLabel'#6'Label'
+#6'TLabel'#6'Label7'#4'Left'#3#240#0#6'Height'#2#14#3'Top'#2#16#5'Width'#2'R' +'7'#4'Left'#3#240#0#6'Height'#2#16#3'Top'#2#16#5'Width'#2'['#7'Caption'#6#16
+#7'Caption'#6#16'Over Blend Color'#11'ParentColor'#8#0#0#6'TLabel'#6'Label8' +'Over Blend Color'#11'ParentColor'#8#0#0#6'TLabel'#6'Label8'#4'Left'#3#232#1
+#4'Left'#3#232#1#6'Height'#2#14#3'Top'#3#128#0#5'Width'#2#28#7'Caption'#6#5 +#6'Height'#2#16#3'Top'#3#128#0#5'Width'#2' '#7'Caption'#6#5'Glyph'#11'Parent'
+'Glyph'#11'ParentColor'#8#0#0#6'TLabel'#6'Label9'#4'Left'#3#205#1#6'Height'#2 +'Color'#8#0#0#6'TLabel'#6'Label9'#4'Left'#3#205#1#6'Height'#2#16#3'Top'#3#176
+#14#3'Top'#3#176#0#5'Width'#2'W'#7'Caption'#6#16'Glyph Background'#11'Parent' +#0#5'Width'#2'c'#7'Caption'#6#16'Glyph Background'#11'ParentColor'#8#0#0#6'T'
+'Color'#8#0#0#6'TLabel'#7'Label10'#4'Left'#3#216#1#6'Height'#2#14#3'Top'#2#16 +'Label'#7'Label10'#4'Left'#3#216#1#6'Height'#2#16#3'Top'#2#16#5'Width'#2';'#7
+#5'Width'#2'2'#7'Caption'#6#11'Click Color'#11'ParentColor'#8#0#0#6'TLabel'#7 +'Caption'#6#11'Click Color'#11'ParentColor'#8#0#0#6'TLabel'#7'Label11'#4'Lef'
+'Label11'#4'Left'#3#208#1#6'Height'#2#14#3'Top'#2'H'#5'Width'#2'E'#7'Caption' +'t'#3#208#1#6'Height'#2#16#3'Top'#2'H'#5'Width'#2'N'#7'Caption'#6#14'Disable'
+#6#14'Disabled Color'#11'ParentColor'#8#0#0#6'TLabel'#7'Label12'#4'Left'#3'p' +'d Color'#11'ParentColor'#8#0#0#6'TLabel'#7'Label12'#4'Left'#3'p'#1#6'Height'
+#1#6'Height'#2#14#3'Top'#2#16#5'Width'#2'3'#7'Caption'#6#10'Text Color'#11'P' +#2#16#3'Top'#2#16#5'Width'#2'7'#7'Caption'#6#10'Text Color'#11'ParentColor'#8
+'arentColor'#8#0#0#9'TTrackBar'#9'TrackBar1'#4'Left'#2#8#6'Height'#2#30#3'To' +#0#0#9'TTrackBar'#9'TrackBar1'#4'Left'#2#8#6'Height'#2#30#3'Top'#2'`'#5'Widt'
+'p'#2'`'#5'Width'#3#184#1#3'Max'#4#160#134#1#0#8'OnChange'#7#15'TrackBar1Cha' +'h'#3#184#1#3'Max'#4#160#134#1#0#8'OnChange'#7#15'TrackBar1Change'#8'Positio'
+'nge'#8'ScalePos'#7#8'trBottom'#9'TickStyle'#7#6'tsNone'#5'Align'#7#8'alCust' +'n'#2#0#8'ScalePos'#7#8'trBottom'#9'TickStyle'#7#6'tsNone'#5'Align'#7#8'alCu'
+'om'#8'TabOrder'#2#0#0#0#9'TTrackBar'#9'TrackBar2'#4'Left'#2#8#6'Height'#2#30 +'stom'#8'TabOrder'#2#0#0#0#9'TTrackBar'#9'TrackBar2'#4'Left'#2#8#6'Height'#2
+#3'Top'#3#152#0#5'Width'#3#184#1#3'Max'#4#160#134#1#0#8'OnChange'#7#15'Track' +#30#3'Top'#3#152#0#5'Width'#3#184#1#3'Max'#4#160#134#1#0#8'OnChange'#7#15'Tr'
+'Bar2Change'#8'ScalePos'#7#8'trBottom'#7'TabStop'#8#9'TickStyle'#7#6'tsNone' +'ackBar2Change'#8'Position'#2#0#8'ScalePos'#7#8'trBottom'#7'TabStop'#8#9'Tic'
+#5'Align'#7#8'alCustom'#8'TabOrder'#2#1#0#0#11'TCheckGroup'#11'CheckGroup1'#4 +'kStyle'#7#6'tsNone'#5'Align'#7#8'alCustom'#8'TabOrder'#2#1#0#0#11'TCheckGro'
+'Left'#2#8#6'Height'#2'i'#3'Top'#3'@'#1#5'Width'#3#129#0#8'AutoFill'#9#7'Cap' +'up'#11'CheckGroup1'#4'Left'#2#8#6'Height'#2'i'#3'Top'#3'@'#1#5'Width'#3#129
+'tion'#6#12'Border Sides'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizin' +#0#8'AutoFill'#9#7'Caption'#6#12'Border Sides'#28'ChildSizing.LeftRightSpaci'
+'g.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenou' +'ng'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizont'
+'sChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize' +'al'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crs'
+#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shrink' +'HomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'
+'Vertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightTh' +#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7
+'enTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#13'Items.Strings'#1#6#12 +#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#13'It'
+'bsBottomLine'#6#9'bsTopLine'#6#10'bsLeftLine'#6#11'bsRightLine'#0#11'OnItem' +'ems.Strings'#1#6#12'bsBottomLine'#6#9'bsTopLine'#6#10'bsLeftLine'#6#11'bsRi'
+'Click'#7#20'CheckGroup1ItemClick'#8'TabOrder'#2#4#4'Data'#10#8#0#0#0#4#0#0#0 +'ghtLine'#0#11'OnItemClick'#7#20'CheckGroup1ItemClick'#8'TabOrder'#2#4#4'Dat'
+#2#2#2#2#0#0#11'TCheckGroup'#11'CheckGroup2'#4'Left'#2#8#6'Height'#2'Y'#3'To' +'a'#10#8#0#0#0#4#0#0#0#2#2#2#2#0#0#11'TCheckGroup'#11'CheckGroup2'#4'Left'#2
+'p'#3#216#0#5'Width'#3#129#0#8'AutoFill'#9#7'Caption'#6#5'Other'#28'ChildSiz' +#8#6'Height'#2'Y'#3'Top'#3#216#0#5'Width'#3#129#0#8'AutoFill'#9#7'Caption'#6
+'ing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizi' +#5'Other'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpaci'
+'ng.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.Enlarge' +'ng'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27
+'Vertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7 +'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.'
+#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'C' +'ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14
+'hildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Contr' +'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'
+'olsPerLine'#2#1#13'Items.Strings'#1#6#15'ShowFocusBorder'#6#9'ShowGlyph'#6#7 +#27'ChildSizing.ControlsPerLine'#2#1#13'Items.Strings'#1#6#15'ShowFocusBorde'
+'Enabled'#0#11'OnItemClick'#7#20'CheckGroup2ItemClick'#8'TabOrder'#2#6#4'Dat' +'r'#6#9'ShowGlyph'#6#7'Enabled'#0#11'OnItemClick'#7#20'CheckGroup2ItemClick'
+'a'#10#7#0#0#0#3#0#0#0#2#2#2#0#0#11'TRadioGroup'#11'RadioGroup1'#4'Left'#3 +#8'TabOrder'#2#6#4'Data'#10#7#0#0#0#3#0#0#0#2#2#2#0#0#11'TRadioGroup'#11'Rad'
+#176#1#6'Height'#2'A'#3'Top'#3#240#0#5'Width'#3#129#0#8'AutoFill'#9#7'Captio' +'ioGroup1'#4'Left'#3#176#1#6'Height'#2'A'#3'Top'#3#240#0#5'Width'#3#129#0#8
+'n'#6#13'Gradient Type'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.' +'AutoFill'#9#7'Caption'#6#13'Gradient Type'#28'ChildSizing.LeftRightSpacing'
+'TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousC' +#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7
+'hildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize' +#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomoge'
+#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shrink' +'nousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'C'
+'Vertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightTh' +'hildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29
+'enTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'/'#11 +'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'Clien'
+'ClientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#12'gtHorizontal'#6 +'tHeight'#2'/'#11'ClientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#12
+#10'gtVertical'#0#7'OnClick'#7#16'RadioGroup1Click'#8'TabOrder'#2#8#0#0#11'T' +'gtHorizontal'#6#10'gtVertical'#0#7'OnClick'#7#16'RadioGroup1Click'#8'TabOrd'
+'RadioGroup'#11'RadioGroup2'#4'Left'#3#151#0#6'Height'#2'i'#3'Top'#3'@'#1#5 +'er'#2#8#0#0#11'TRadioGroup'#11'RadioGroup2'#4'Left'#3#151#0#6'Height'#2'i'#3
+'Width'#3#129#0#8'AutoFill'#9#7'Caption'#6#17'Rotated Direction'#28'ChildSiz' +'Top'#3'@'#1#5'Width'#3#129#0#8'AutoFill'#9#7'Caption'#6#17'Rotated Directio'
+'ing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizi' +'n'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6
+'ng.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.Enlarge' +#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSi'
+'Vertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7 +'zing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkH'
,#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'C' ,'orizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScal'
+'hildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Contr' +'eChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'Chil'
+'olsPerLine'#2#1#12'ClientHeight'#2'W'#11'ClientWidth'#2'}'#9'ItemIndex'#2#0 +'dSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'W'#11'ClientWidth'#2'}'#9'I'
+#13'Items.Strings'#1#6#8'rdNormal'#6#6'rdLeft'#6#7'rdRight'#0#7'OnClick'#7#16 +'temIndex'#2#0#13'Items.Strings'#1#6#8'rdNormal'#6#6'rdLeft'#6#7'rdRight'#0#7
+'RadioGroup2Click'#8'TabOrder'#2#2#0#0#11'TRadioGroup'#11'RadioGroup3'#4'Lef' +'OnClick'#7#16'RadioGroup2Click'#8'TabOrder'#2#2#0#0#11'TRadioGroup'#11'Radi'
+'t'#3'('#1#6'Height'#2'i'#3'Top'#3'@'#1#5'Width'#2'y'#8'AutoFill'#9#7'Captio' +'oGroup3'#4'Left'#3'('#1#6'Height'#2'i'#3'Top'#3'@'#1#5'Width'#2'y'#8'AutoFi'
+'n'#6#13'Button Layout'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.' +'ll'#9#7'Caption'#6#13'Button Layout'#28'ChildSizing.LeftRightSpacing'#2#6#28
+'TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousC' +'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'cr'
+'hildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize' +'sHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousC'
+#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shrink' +'hildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildS'
+'Vertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightTh' +'izing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclL'
+'enTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'W'#11 +'eftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHei'
+'ClientWidth'#2'u'#9'ItemIndex'#2#1#13'Items.Strings'#1#6#12'blGlyphRight'#6 +'ght'#2'W'#11'ClientWidth'#2'u'#9'ItemIndex'#2#1#13'Items.Strings'#1#6#12'bl'
+#11'blGlyphLeft'#6#10'blGlyphTop'#6#13'blGlyphBottom'#0#7'OnClick'#7#16'Radi' +'GlyphRight'#6#11'blGlyphLeft'#6#10'blGlyphTop'#6#13'blGlyphBottom'#0#7'OnCl'
+'oGroup3Click'#8'TabOrder'#2#3#0#0#11'TRadioGroup'#11'RadioGroup4'#4'Left'#3 +'ick'#7#16'RadioGroup3Click'#8'TabOrder'#2#3#0#0#11'TRadioGroup'#11'RadioGro'
+#176#1#6'Height'#2'j'#3'Top'#3'@'#1#5'Width'#3#129#0#8'AutoFill'#9#7'Caption' +'up4'#4'Left'#3#176#1#6'Height'#2'j'#3'Top'#3'@'#1#5'Width'#3#129#0#8'AutoFi'
+#6#14'Text Alignment'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.To' +'ll'#9#7'Caption'#6#14'Text Alignment'#28'ChildSizing.LeftRightSpacing'#2#6
+'pBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChi' +#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24
+'ldResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28 +'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenou'
+'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVer' +'sChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'Chil'
+'tical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenT' +'dSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cc'
+'opToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'X'#11'Cl' +'lLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientH'
+'ientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#8'taCenter'#6#13'taL' +'eight'#2'X'#11'ClientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#8't'
+'eftJustify'#6#14'taRightJustify'#0#7'OnClick'#7#16'RadioGroup4Click'#8'TabO' +'aCenter'#6#13'taLeftJustify'#6#14'taRightJustify'#0#7'OnClick'#7#16'RadioGr'
+'rder'#2#5#0#0#12'TLabeledEdit'#12'LabeledEdit1'#4'Left'#3'H'#1#6'Height'#2 +'oup4Click'#8'TabOrder'#2#5#0#0#12'TLabeledEdit'#12'LabeledEdit1'#4'Left'#3
+#23#3'Top'#3#216#0#5'Width'#2'P EditLabel.AnchorSideLeft.Control'#7#12'Label' +'H'#1#6'Height'#2#25#3'Top'#3#216#0#5'Width'#2'P EditLabel.AnchorSideLeft.Co'
+'edEdit1"EditLabel.AnchorSideBottom.Control'#7#12'LabeledEdit1'#14'EditLabel' +'ntrol'#7#12'LabeledEdit1"EditLabel.AnchorSideBottom.Control'#7#12'LabeledEd'
+'.Left'#3'H'#1#16'EditLabel.Height'#2#14#13'EditLabel.Top'#3#199#0#15'EditLa' +'it1'#14'EditLabel.Left'#3'H'#1#16'EditLabel.Height'#2#16#13'EditLabel.Top'#3
+'bel.Width'#2'I'#17'EditLabel.Caption'#6#14'Button Caption'#21'EditLabel.Par' +#197#0#15'EditLabel.Width'#2'R'#17'EditLabel.Caption'#6#14'Button Caption'#21
+'entColor'#8#11'ParentColor'#8#8'TabOrder'#2#7#4'Text'#6#11'Sample Text'#7'O' +'EditLabel.ParentColor'#8#8'TabOrder'#2#7#4'Text'#6#11'Sample Text'#7'OnKeyU'
+'nKeyUp'#7#17'LabeledEdit1KeyUp'#0#0#11'TGradButton'#1'b'#4'Left'#3#152#0#6 +'p'#7#17'LabeledEdit1KeyUp'#0#0#11'TGradButton'#1'b'#4'Left'#3#152#0#6'Heigh'
+'Height'#2'`'#3'Top'#3#200#0#5'Width'#3#168#0#7'Caption'#6#11'Sample Text'#10 +'t'#2'`'#3'Top'#3#200#0#5'Width'#3#168#0#7'Caption'#6#11'Sample Text'#10'Fon'
+'Font.Color'#7#7'clWhite'#11'Font.Height'#2#241#8'TabOrder'#2#9#7'TabStop'#9 +'t.Color'#7#7'clWhite'#11'Font.Height'#2#241#7'OnClick'#7#6'bClick'#8'TabOrd'
+#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+' +'er'#2#9#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'
+#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlu'
+'e'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'Ba'
+'ckgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#9'ShowGlyph'#8#20'Glyph'
+'BackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#19'OwnerBackground'
+'Draw'#8#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0
+#11'TGradButton'#15'BaseColorButton'#4'Left'#2#8#6'Height'#2#25#3'Top'#2'#'#5
+'Width'#2'h'#7'Caption'#6#15'BaseColorButton'#10'Font.Color'#7#7'clWhite'#7
+'OnClick'#7#14'BaseColorClick'#8'TabOrder'#2#10#7'TabStop'#9#11'NormalBlend'
+#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'B'
+'aseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'
+#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'Show'
+'FocusBorder'#9#9'ShowGlyph'#8#20'GlyphBackgroundColor'#7#7'clWhite'#10'Clic'
+'kColor'#7#6'clBlue'#19'OwnerBackgroundDraw'#8#22'AutoWidthBorderSpacing'#2
+#15#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradButton'#22'NormalBlendColor'
+'Button'#4'Left'#2'x'#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6
+#22'NormalBlendColorButton'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#16'Norm'
+'alBlendClick'#8'TabOrder'#2#11#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0
+#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'cl'
+'Blue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendCo'
+'lor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9
+#9'ShowGlyph'#8#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clB'
+'lue'#19'OwnerBackgroundDraw'#8#22'AutoWidthBorderSpacing'#2#15#23'AutoHeigh'
+'tBorderSpacing'#2#15#0#0#11'TGradButton'#15'OverBlendButton'#4'Left'#3#232#0
+#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#15'OverBlendButton'#10
+'Font.Color'#7#7'clWhite'#7'OnClick'#7#14'OverBlendClick'#8'TabOrder'#2#12#7
+'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186
+'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'Norm'
+'alBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundCo'
+'lor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#9'ShowGlyph'#8#20'GlyphBackground'
+'Color'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#19'OwnerBackgroundDraw'#8#22
,'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradB'
+'utton'#15'LoadGlyphButton'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#3#144#0#5
+'Width'#2'h'#7'Caption'#6#10'Load Glyph'#10'Font.Color'#7#7'clWhite'#7'OnCli'
+'ck'#7#20'LoadGlyphButtonClick'#8'TabOrder'#2#13#7'TabStop'#9#11'NormalBlend'
+#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'B'
+'aseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'
+#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'Show'
+'FocusBorder'#9#9'ShowGlyph'#8#20'GlyphBackgroundColor'#7#7'clWhite'#10'Clic'
+'kColor'#7#6'clBlue'#19'OwnerBackgroundDraw'#8#22'AutoWidthBorderSpacing'#2
+#15#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradButton'#26'GlyphBackgroundC'
+'olorButton'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#3#192#0#5'Width'#2'h'#7'C'
+'aption'#6#26'GlyphBackgroundColorButton'#10'Font.Color'#7#7'clWhite'#7'OnCl'
+'ick'#7#31'GlyphBackgroundColorButtonClick'#8'TabOrder'#2#14#7'TabStop'#9#11
+'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'
+#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColo' +#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColo'
+'r'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'cl' +'r'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'cl'
+'BtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'Cli' +'BtnFace'#15'ShowFocusBorder'#9#9'ShowGlyph'#8#20'GlyphBackgroundColor'#7#7
+'ckColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpa' +'clWhite'#10'ClickColor'#7#6'clBlue'#19'OwnerBackgroundDraw'#8#22'AutoWidthB'
+'cing'#2#15#0#0#11'TGradButton'#15'BaseColorButton'#4'Left'#2#8#6'Height'#2 +'orderSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradButton'#16
+#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#15'BaseColorButton'#10'Font.Color' +'ClickColorButton'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7
+#7#7'clWhite'#7'OnClick'#7#14'BaseColorClick'#8'TabOrder'#2#10#7'TabStop'#9 +'Caption'#6#16'ClickColorButton'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#21
+#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+' +'ClickColorButtonClick'#8'TabOrder'#2#15#7'TabStop'#9#11'NormalBlend'#5#0#0#0
+#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColo' +#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'
+'r'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'cl' +#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverB'
+'BtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'Cli' +'lendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBor'
+'ckColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpa' +'der'#9#9'ShowGlyph'#8#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7
+'cing'#2#15#0#0#11'TGradButton'#22'NormalBlendColorButton'#4'Left'#2'x'#6'He' +#6'clBlue'#19'OwnerBackgroundDraw'#8#22'AutoWidthBorderSpacing'#2#15#23'Auto'
+'ight'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#22'NormalBlendColorButton'
+#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#16'NormalBlendClick'#8'TabOrder'#2
+#11#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5'
+'^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'
+#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'Backg'
+'roundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7
+#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'Au'
+'toHeightBorderSpacing'#2#15#0#0#11'TGradButton'#15'OverBlendButton'#4'Left'
+#3#232#0#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#15'OverBlendB'
+'utton'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#14'OverBlendClick'#8'TabOrd'
+'er'#2#12#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlen'
+'d'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'cl'
+'Blue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15
+'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundCol'
+'or'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15
+#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradButton'#15'LoadGlyphButton'#4
+'Left'#3#196#1#6'Height'#2#25#3'Top'#3#144#0#5'Width'#2'h'#7'Caption'#6#10'L'
,'oad Glyph'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#20'LoadGlyphButtonClick'
+#8'TabOrder'#2#13#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9
+'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'
+#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilv'
+'er'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgr'
+'oundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacin'
+'g'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradButton'#26'GlyphBackgr'
+'oundColorButton'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#3#192#0#5'Width'#2'h'
+#7'Caption'#6#26'GlyphBackgroundColorButton'#10'Font.Color'#7#7'clWhite'#7'O'
+'nClick'#7#31'GlyphBackgroundColorButtonClick'#8'TabOrder'#2#14#7'TabStop'#9
+#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'
+#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColo'
+'r'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'cl'
+'BtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'Cli'
+'ckColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpa'
+'cing'#2#15#0#0#11'TGradButton'#16'ClickColorButton'#4'Left'#3#196#1#6'Heigh'
+'t'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#16'ClickColorButton'#10'Font'
+'.Color'#7#7'clWhite'#7'OnClick'#7#21'ClickColorButtonClick'#8'TabOrder'#2#15
+#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'
+#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16
+'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'Backgrou'
+'ndColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7
+'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'Auto'
+'HeightBorderSpacing'#2#15#0#0#11'TGradButton'#19'DisabledColorButton'#4'Lef' +'HeightBorderSpacing'#2#15#0#0#11'TGradButton'#19'DisabledColorButton'#4'Lef'
+'t'#3#196#1#6'Height'#2#25#3'Top'#2']'#5'Width'#2'h'#7'Caption'#6#19'Disable' +'t'#3#196#1#6'Height'#2#25#3'Top'#2']'#5'Width'#2'h'#7'Caption'#6#19'Disable'
+'dColorButton'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#24'DisabledColorButt' +'dColorButton'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#24'DisabledColorButt'
+'onClick'#8'TabOrder'#2#16#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128 +'onClick'#8'TabOrder'#2#16#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128
+#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue' +#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'
+#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7 +#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7
+#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'Gly' +#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#9'Show'
+'phBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBord' +'Glyph'#8#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#19
+'erSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#9'TCheckBox'#17'Underl' +'OwnerBackgroundDraw'#8#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderS'
+'ineCheckBox'#4'Left'#3'G'#1#6'Height'#2#19#3'Top'#3#242#0#5'Width'#2'G'#7'C' +'pacing'#2#15#0#0#9'TCheckBox'#17'UnderlineCheckBox'#4'Left'#3'G'#1#6'Height'
+'aption'#6#9'Underline'#8'OnChange'#7#23'UnderlineCheckBoxChange'#8'TabOrder' +#2#19#3'Top'#3#242#0#5'Width'#2'G'#7'Caption'#6#9'Underline'#8'OnChange'#7#23
+#2#17#0#0#9'TCheckBox'#12'BoldCheckBox'#4'Left'#3'G'#1#6'Height'#2#19#3'Top' +'UnderlineCheckBoxChange'#8'TabOrder'#2#17#0#0#9'TCheckBox'#12'BoldCheckBox'
+#3#5#1#5'Width'#2'.'#7'Caption'#6#4'Bold'#8'OnChange'#7#18'BoldCheckBoxChang' +#4'Left'#3'G'#1#6'Height'#2#19#3'Top'#3#5#1#5'Width'#2','#7'Caption'#6#4'Bol'
+'e'#8'TabOrder'#2#18#0#0#11'TGradButton'#15'TextColorButton'#4'Left'#3'X'#1#6 +'d'#8'OnChange'#7#18'BoldCheckBoxChange'#8'TabOrder'#2#18#0#0#11'TGradButton'
+'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#10'Text Color'#10'Font.' +#15'TextColorButton'#4'Left'#3'X'#1#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'
+'Color'#7#7'clWhite'#7'OnClick'#7#20'TextColorButtonClick'#8'TabOrder'#2#19#7 +#7'Caption'#6#10'Text Color'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#20'Tex'
+'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186 +'tColorButtonClick'#8'TabOrder'#2#19#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0
+'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'Norm' +#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6
+'alBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundCo' +'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlend'
+'lor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWh' +'Color'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'
+'ite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeig' +#9#9'ShowGlyph'#8#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'c'
+'htBorderSpacing'#2#15#0#0#9'TCheckBox'#14'ItalicCheckBox'#4'Left'#3'G'#1#6 +'lBlue'#19'OwnerBackgroundDraw'#8#22'AutoWidthBorderSpacing'#2#15#23'AutoHei'
+'Height'#2#19#3'Top'#3#24#1#5'Width'#2'1'#7'Caption'#6#6'Italic'#8'OnChange' +'ghtBorderSpacing'#2#15#0#0#9'TCheckBox'#14'ItalicCheckBox'#4'Left'#3'G'#1#6
+'Height'#2#19#3'Top'#3#24#1#5'Width'#2'-'#7'Caption'#6#6'Italic'#8'OnChange'
+#7#20'ItalicCheckBoxChange'#8'TabOrder'#2#20#0#0#9'TCheckBox'#24'GlyphTransp' +#7#20'ItalicCheckBoxChange'#8'TabOrder'#2#20#0#0#9'TCheckBox'#24'GlyphTransp'
+'arentCheckBox'#4'Left'#3#192#1#6'Height'#2#19#3'Top'#3#220#0#5'Width'#2's'#7 +'arentCheckBox'#4'Left'#3#192#1#6'Height'#2#19#3'Top'#3#220#0#5'Width'#2'u'#7
+'Caption'#6#17'Glyph Transparent'#8'OnChange'#7#30'GlyphTransparentCheckBoxC' +'Caption'#6#17'Glyph Transparent'#8'OnChange'#7#30'GlyphTransparentCheckBoxC'
+'hange'#8'TabOrder'#2#21#0#0#12'TColorDialog'#12'ColorDialog1'#5'Color'#4'1i' +'hange'#8'TabOrder'#2#21#0#0#12'TColorDialog'#12'ColorDialog1'#5'Color'#4'1i'
+#182#0#4'left'#2#8#3'top'#3#176#0#0#0#18'TOpenPictureDialog'#18'OpenPictureD' +#182#0#20'CustomColors.Strings'#1#6#13'ColorA=000000'#6#13'ColorB=000080'#6
+'ialog1'#6'Filter'#6#255'Graphic (*.tga;*.jpg;*.ico;*.ppm;*.pgm;*.pbm;*.png;' +#13'ColorC=008000'#6#13'ColorD=008080'#6#13'ColorE=800000'#6#13'ColorF=80008'
+'*.xpm;*.bmp)|*.tga;*.jpg;*.ico;*.ppm;*.pgm;*.pbm;*.png;*.xpm;*.bmp|TGA Imag' +'0'#6#13'ColorG=808000'#6#13'ColorH=808080'#6#13'ColorI=C0C0C0'#6#13'ColorJ='
+'e File (*.tga)|*.tga|Jpint Picture Expert Group (*.jpg)|*.jpg|Symbol (*.ico' +'0000FF'#6#13'ColorK=00FF00'#6#13'ColorL=00FFFF'#6#13'ColorM=FF0000'#6#13'Co'
+')|*.ico|Portable Pixmap (*.ppm)|*.ppm|Portable Graymap'#4'left'#2'0'#3'top' +'lorN=FF00FF'#6#13'ColorO=FFFF00'#6#13'ColorP=FFFFFF'#6#13'ColorQ=C0DCC0'#6
+#3#176#0#0#0#0 +#13'ColorR=F0CAA6'#6#13'ColorS=F0FBFF'#6#13'ColorT=A4A0A0'#0#4'left'#2#8#3't'
+'op'#3#176#0#0#0#18'TOpenPictureDialog'#18'OpenPictureDialog1'#6'Filter'#6
+#255'Graphic (*.tga;*.jpg;*.ico;*.ppm;*.pgm;*.pbm;*.png;*.xpm;*.bmp)|*.tga;*'
+'.jpg;*.ico;*.ppm;*.pgm;*.pbm;*.png;*.xpm;*.bmp|TGA Image File (*.tga)|*.tga'
,'|Jpint Picture Expert Group (*.jpg)|*.jpg|Symbol (*.ico)|*.ico|Portable Pix'
+'map (*.ppm)|*.ppm|Portable Graymap'#4'left'#2'0'#3'top'#3#176#0#0#0#0
]); ]);

View File

@ -50,6 +50,7 @@ type
RadioGroup4: TRadioGroup; RadioGroup4: TRadioGroup;
TrackBar1: TTrackBar; TrackBar1: TTrackBar;
TrackBar2: TTrackBar; TrackBar2: TTrackBar;
procedure bClick(Sender: TObject);
procedure BoldCheckBoxChange(Sender: TObject); procedure BoldCheckBoxChange(Sender: TObject);
procedure CheckGroup1ItemClick(Sender: TObject; Index: integer); procedure CheckGroup1ItemClick(Sender: TObject; Index: integer);
procedure CheckGroup2ItemClick(Sender: TObject; Index: integer); procedure CheckGroup2ItemClick(Sender: TObject; Index: integer);
@ -288,6 +289,11 @@ begin
b.Font.Style := b.Font.Style - [fsBold]; b.Font.Style := b.Font.Style - [fsBold];
end; end;
procedure TForm1.bClick(Sender: TObject);
begin
end;
procedure TForm1.CheckGroup1ItemClick(Sender: TObject; Index: integer); procedure TForm1.CheckGroup1ItemClick(Sender: TObject; Index: integer);
var var
bs : TBorderSides; bs : TBorderSides;

View File

@ -1,5 +1,6 @@
{ This file was automatically created by Lazarus. do not edit! { Diese Datei wurde automatisch von Lazarus erzeugt. Sie darf nicht bearbeitet
This source is only used to compile and install the package. werden!
Dieser Quelltext dient nur dem Übersetzen und Installieren des Packages.
} }
unit gradbutton; unit gradbutton;
@ -7,7 +8,7 @@ unit gradbutton;
interface interface
uses uses
ugradbtn, uRotateBitmap, LazarusPackageIntf; ugradbtn, uRotateBitmap, LazarusPackageIntf;
implementation implementation

View File

@ -36,6 +36,7 @@ type
FAutoHeight: Boolean; FAutoHeight: Boolean;
FAutoHeightBorderSpacing: Integer; FAutoHeightBorderSpacing: Integer;
FAutoWidthBorderSpacing: Integer; FAutoWidthBorderSpacing: Integer;
FOnBorderBackgroundPaint: TGBBackgroundPaintEvent;
FRotateDirection : TRotateDirection; FRotateDirection : TRotateDirection;
FTextAlignment : TTextAlignment; FTextAlignment : TTextAlignment;
FButtonLayout: TButtonLayout; FButtonLayout: TButtonLayout;
@ -171,6 +172,7 @@ type
property OnHotBackgroundPaint : TGBBackgroundPaintEvent read FOnHotBackgroundPaint write FOnHotBackgroundPaint; property OnHotBackgroundPaint : TGBBackgroundPaintEvent read FOnHotBackgroundPaint write FOnHotBackgroundPaint;
property OnDownBackgroundPaint : TGBBackgroundPaintEvent read FOnDownBackgroundPaint write FOnDownBackgroundPaint; property OnDownBackgroundPaint : TGBBackgroundPaintEvent read FOnDownBackgroundPaint write FOnDownBackgroundPaint;
property OnDisabledBackgroundPaint : TGBBackgroundPaintEvent read FOnDisabledBackgroundPaint write FOnDisabledBackgroundPaint; property OnDisabledBackgroundPaint : TGBBackgroundPaintEvent read FOnDisabledBackgroundPaint write FOnDisabledBackgroundPaint;
property OnBorderBackgroundPaint : TGBBackgroundPaintEvent read FOnBorderBackgroundPaint write FOnBorderBackgroundPaint;
end; end;
function ColorBetween(C1, C2 : TColor; blend:Extended):TColor; function ColorBetween(C1, C2 : TColor; blend:Extended):TColor;
@ -250,17 +252,17 @@ end;
procedure TGradButton.Resize; procedure TGradButton.Resize;
begin begin
if (HasParent) then inherited;
begin
if FAutoWidth then if (HasParent) then
UpdateButton begin
else begin if FAutoWidth then
UpdatePositions; UpdateButton
UpdateBackground; else begin
end; UpdatePositions;
UpdateBackground;
end; end;
end;
inherited;
end; end;
procedure TGradButton.UpdatePositions; procedure TGradButton.UpdatePositions;
@ -385,160 +387,164 @@ end;
procedure TGradButton.PaintBackground(AState: TButtonState; TrgBitmap: TBitmap); procedure TGradButton.PaintBackground(AState: TButtonState; TrgBitmap: TBitmap);
var var
FTempState : TButtonState; FTempState : TButtonState;
FOnTemp : TGBBackgroundPaintEvent;
begin begin
FTempState:=FState; FTempState:=FState;
GetBackgroundRect(FBackgroundRect); GetBackgroundRect(FBackgroundRect);
with TrgBitmap do with TrgBitmap do
begin begin
Canvas.Font.Color := Self.Font.Color; Canvas.Font.Color := Self.Font.Color;
Canvas.Font := Self.Font; Canvas.Font := Self.Font;
Width := Self.Width; Width := Self.Width;
Height := Self.Height; Height := Self.Height;
Canvas.Brush.Color:=clWhite; Canvas.Brush.Color:=clWhite;
Canvas.FillRect(0, 0, Width, Height); Canvas.FillRect(0, 0, Width, Height);
if Self.Parent is TGradButton then if Self.Parent is TGradButton then
begin begin
bm.Canvas.CopyRect(Rect(0, 0, Width, Height), (Self.Parent as TGradButton).GetBackground, bm.Canvas.CopyRect(Rect(0, 0, Width, Height), (Self.Parent as TGradButton).GetBackground,
Rect(Left,Top,Left+Width,Top+Height)); Rect(Left,Top,Left+Width,Top+Height));
end else begin end else begin
Canvas.Brush.Color:=FBackgroundColor; Canvas.Brush.Color:=FBackgroundColor;
Canvas.FillRect(0 , 0, Width, Height); Canvas.FillRect(0 , 0, Width, Height);
end; end;
//Top if FOwnerBackgroundDraw AND (FOnBorderBackgroundPaint<>nil) then
if (bsTopLine in BorderSides) then begin
begin FOnBorderBackgroundPaint(Self, Canvas, FBackgroundRect, AState);
end else begin
//Top
if (bsTopLine in BorderSides) then
begin
Canvas.Pen.Color:=clBlack; Canvas.Pen.Color:=clBlack;
Canvas.Line(FBackgroundRect.Left,0,FBackgroundRect.Right,0); Canvas.Line(FBackgroundRect.Left,0,FBackgroundRect.Right,0);
Canvas.Pen.Color:=clWhite; Canvas.Pen.Color:=clWhite;
Canvas.Line(FBackgroundRect.Left,1,FBackgroundRect.Right,1); Canvas.Line(FBackgroundRect.Left,1,FBackgroundRect.Right,1);
end; end;
//Left //Left
if (bsLeftLine in BorderSides) then if (bsLeftLine in BorderSides) then
begin begin
Canvas.Pen.Color:=clBlack; Canvas.Pen.Color:=clBlack;
Canvas.Line(0,FBackgroundRect.Top,0,FBackgroundRect.Bottom); Canvas.Line(0,FBackgroundRect.Top,0,FBackgroundRect.Bottom);
Canvas.Pen.Color:=clWhite; Canvas.Pen.Color:=clWhite;
Canvas.Line(1,FBackgroundRect.Top,1,FBackgroundRect.Bottom); Canvas.Line(1,FBackgroundRect.Top,1,FBackgroundRect.Bottom);
end; end;
//Right //Right
if (bsRightLine in BorderSides) then if (bsRightLine in BorderSides) then
begin begin
Canvas.Pen.Color:=clBlack; Canvas.Pen.Color:=clBlack;
Canvas.Line(Width-1,FBackgroundRect.Top,Width-1,FBackgroundRect.Bottom); Canvas.Line(Width-1,FBackgroundRect.Top,Width-1,FBackgroundRect.Bottom);
Canvas.Pen.Color:=clWhite; Canvas.Pen.Color:=clWhite;
Canvas.Line(Width-2,FBackgroundRect.Top,Width-2,FBackgroundRect.Bottom); Canvas.Line(Width-2,FBackgroundRect.Top,Width-2,FBackgroundRect.Bottom);
end; end;
//Bottom //Bottom
if (bsBottomLine in BorderSides) then if (bsBottomLine in BorderSides) then
begin begin
Canvas.Pen.Color:=clBlack; Canvas.Pen.Color:=clBlack;
Canvas.Line(FBackgroundRect.Left,Height-1,FBackgroundRect.Right,Height-1); Canvas.Line(FBackgroundRect.Left,Height-1,FBackgroundRect.Right,Height-1);
Canvas.Pen.Color:=clWhite; Canvas.Pen.Color:=clWhite;
Canvas.Line(FBackgroundRect.Left,Height-2,FBackgroundRect.Right,Height-2); Canvas.Line(FBackgroundRect.Left,Height-2,FBackgroundRect.Right,Height-2);
end; end;
//Todo //TopLeft
//TopLeft if (bsTopLine in BorderSides) AND (bsLeftLine in BorderSides) then
if (bsTopLine in BorderSides) AND (bsLeftLine in BorderSides) then Canvas.Pixels[1,1]:=clBlack;
Canvas.Pixels[1,1]:=clBlack;
//TopRight //TopRight
if (bsTopLine in BorderSides) AND (bsRightLine in BorderSides) then if (bsTopLine in BorderSides) AND (bsRightLine in BorderSides) then
Canvas.Pixels[Width-2,1] := clBlack; Canvas.Pixels[Width-2,1] := clBlack;
//BottomLeft //BottomLeft
if (bsBottomLine in BorderSides) AND (bsLeftLine in BorderSides) then if (bsBottomLine in BorderSides) AND (bsLeftLine in BorderSides) then
Canvas.Pixels[1, Height-2]:=clBlack; Canvas.Pixels[1, Height-2]:=clBlack;
//BottomRight //BottomRight
if (bsBottomLine in BorderSides) AND (bsRightLine in BorderSides) then if (bsBottomLine in BorderSides) AND (bsRightLine in BorderSides) then
Canvas.Pixels[Width-2,Height-2]:=clBlack; Canvas.Pixels[Width-2,Height-2]:=clBlack;
end;
FState:=AState; FState:=AState;
PaintGradient(Canvas, FBackgroundRect); if FOwnerBackgroundDraw then
begin
if not FEnabled then
FState := bsDisabled;
end; case FState of
bsUp: FOnTemp := FOnNormalBackgroundPaint;
bsHot:FOnTemp := FOnHotBackgroundPaint;
bsDown: FOnTemp := FOnDownBackgroundPaint;
bsDisabled: FOnTemp := FOnDisabledBackgroundPaint;
end;
FState:=FTempState; if FOnTemp <> nil then
begin
FOnTemp(Self, Canvas, FBackgroundRect, FState);
end;
end else begin
PaintGradient(Canvas, FBackgroundRect);
end;
end;
FState:=FTempState;
end; end;
procedure TGradButton.UpdateBackground; procedure TGradButton.UpdateBackground;
var var
FTempState : TButtonState; FTempState : TButtonState;
R : TRect;
begin begin
FTempState:= FState; FTempState:= FState;
GetBackgroundRect(R); FEnabled:=true;
PaintBackground(bsUp,FNormalBackgroundCache);
PaintBackground(bsHot, FHotBackgroundCache);
PaintBackground(bsDown, FDownBackgroundCache);
FEnabled:=false;
PaintBackground(bsUp, FDisabledBackgroundCache);
FEnabled:=Enabled;
if FOwnerBackgroundDraw then FState:=FTempState;
begin
if FOnNormalBackgroundPaint<>nil then
FOnNormalBackgroundPaint(Self, FNormalBackgroundCache.Canvas, R, bsUp);
if FOnHotBackgroundPaint<>nil then InvPaint;
FOnHotBackgroundPaint(Self, FHotBackgroundCache.Canvas, R, bsHot);
if FOnDownBackgroundPaint<>nil then
FOnDownBackgroundPaint(Self, FDownBackgroundCache.Canvas, R, bsDown);
if FOnDisabledBackgroundPaint<>nil then
FOnDisabledBackgroundPaint(Self, FDisabledBackgroundCache.Canvas, R, bsDisabled);
end else begin
FEnabled:=true;
PaintBackground(bsUp,FNormalBackgroundCache);
PaintBackground(bsHot, FHotBackgroundCache);
PaintBackground(bsDown, FDownBackgroundCache);
FEnabled:=false;
PaintBackground(bsUp, FDisabledBackgroundCache);
FEnabled:=Enabled;
end;
FState:=FTempState;
end; end;
procedure TGradButton.GetBackgroundRect(var TheRect: TRect); procedure TGradButton.GetBackgroundRect(var TheRect: TRect);
begin begin
TheRect := Rect(0,0,Width,Height); TheRect := Rect(0,0,Width,Height);
//Top //Top
if (bsTopLine in BorderSides) then if (bsTopLine in BorderSides) then
begin begin
TheRect.Top := 2; TheRect.Top := 2;
end else end else
TheRect.Top := 0; TheRect.Top := 0;
//Left //Left
if (bsLeftLine in BorderSides) then if (bsLeftLine in BorderSides) then
begin begin
TheRect.Left := 2; TheRect.Left := 2;
end else end else
TheRect.Left := 0; TheRect.Left := 0;
//Right //Right
if (bsRightLine in BorderSides) then if (bsRightLine in BorderSides) then
begin begin
TheRect.Right := TheRect.Right-{$IFDEF windows}2{$ELSE}3{$ENDIF}; TheRect.Right := TheRect.Right-{$IFDEF windows}2{$ELSE}3{$ENDIF};
end; end;
//Bottom //Bottom
if (bsBottomLine in BorderSides) then if (bsBottomLine in BorderSides) then
begin begin
TheRect.Bottom := TheRect.Bottom - 2; TheRect.Bottom := TheRect.Bottom - 2;
end; end;
end; end;
procedure TGradButton.GetContentRect(var TheRect: TRect); procedure TGradButton.GetContentRect(var TheRect: TRect);
@ -707,59 +713,58 @@ begin
Result := FBackground.Canvas; Result := FBackground.Canvas;
end; end;
procedure TGradButton.PaintGradient(TrgCanvas: TCanvas; pr : TRect); procedure TGradButton.PaintGradient(TrgCanvas: TCanvas; pr : TRect);
var var
r : Integer; r : Integer;
t1,t2,t3 : TColor; t1,t2,t3 : TColor;
begin begin
case FState of
case FState of bsHot,bsDown : begin
bsHot,bsDown : begin t3 := FOverBlendColor;
t3 := FOverBlendColor; end;
end; else begin
else begin t3 := FNormalBlendColor;
t3 := FNormalBlendColor; end;
end;
end; end;
if FState = bsDown then begin if FState = bsDown then begin
t1 := FClickColor; t1 := FClickColor;
end else if FEnabled then begin end else if FEnabled then begin
t1 := FBaseColor; t1 := FBaseColor;
end else begin end else begin
t1 := FDisabledColor; t1 := FDisabledColor;
t3 := FNormalBlendColor; t3 := FNormalBlendColor;
end; end;
t2 := ColorBetween(t1, t3, FNormalBlend); t2 := ColorBetween(t1, t3, FNormalBlend);
if GradientType = gtHorizontal then
if GradientType = gtHorizontal then begin
begin if FState = bsDown then
if FState = bsDown then begin
begin for r := (pr.Bottom)-1 downto pr.Top do
begin
if (r > (pr.Bottom/2)) then
begin
TrgCanvas.Pen.Color:= ColorBetween(t1,t2,FOverBlend);
end else begin
TrgCanvas.Pen.Color := ColorsBetween([t1,t2], 1.0-(r / pr.Bottom));
end;
TrgCanvas.Line(pr.Left,r,pr.Right,r);
end;
end else
for r := (pr.Bottom)-1 downto pr.Top do for r := (pr.Bottom)-1 downto pr.Top do
begin begin
if (r > (pr.Bottom/2)) then if (r <= (pr.Bottom/2)) then
begin begin
//WriteLn('R: ', r, ' M: ', Trunc(pr.Bottom/2));
TrgCanvas.Pen.Color:= ColorBetween(t1,t2,FOverBlend); TrgCanvas.Pen.Color:= ColorBetween(t1,t2,FOverBlend);
end else begin end else begin
TrgCanvas.Pen.Color := ColorsBetween([t1,t2], 1.0-(r / pr.Bottom)); TrgCanvas.Pen.Color := ColorsBetween([t1,t2], r / pr.Bottom);
end; end;
TrgCanvas.Line(pr.Left,r,pr.Right,r); TrgCanvas.Line(pr.Left,r,pr.Right,r);
end;
end else
for r := (pr.Bottom)-1 downto pr.Top do
begin
if (r <= (pr.Bottom/2)) then
begin
//WriteLn('R: ', r, ' M: ', Trunc(pr.Bottom/2));
TrgCanvas.Pen.Color:= ColorBetween(t1,t2,FOverBlend);
end else begin
TrgCanvas.Pen.Color := ColorsBetween([t1,t2], r / pr.Bottom);
end;
TrgCanvas.Line(pr.Left,r,pr.Right,r);
end; end;
end else begin end else begin
if FState = bsDown then if FState = bsDown then
@ -814,62 +819,63 @@ end;
constructor TGradButton.Create(AOwner: TComponent); constructor TGradButton.Create(AOwner: TComponent);
begin begin
inherited; inherited;
Width:=80; Width:=80;
Height:=25; Height:=25;
FAutoWidthBorderSpacing:=15; FAutoWidthBorderSpacing:=15;
FAutoHeightBorderSpacing:=15; FAutoHeightBorderSpacing:=15;
FNormalBlend:=0.5; FNormalBlend:=0.5;
FOverBlend:=0.653; FOverBlend:=0.653;
FBaseColor:=clBlue; FBaseColor:=clBlue;
FNormalBlendColor:=clWhite; FNormalBlendColor:=clWhite;
FOverBlendColor:=clSilver; FOverBlendColor:=clSilver;
FBackgroundColor:=clBtnFace; FBackgroundColor:=clBtnFace;
FClickColor:=clBlue; FClickColor:=clBlue;
FDisabledColor:=clGray; FDisabledColor:=clGray;
FEnabled:=true; FEnabled:=true;
FAutoWidth:=false; FAutoWidth:=false;
FAutoHeight:=false; FAutoHeight:=false;
FOwnerBackgroundDraw := false;
FOnlyBackground:=false; FOnlyBackground:=false;
FShowFocusBorder:=true; FShowFocusBorder:=true;
FRotateDirection:=rdNormal; FRotateDirection:=rdNormal;
FTextAlignment:=taCenter; FTextAlignment:=taCenter;
FTextGlyphSpacing := 2; FTextGlyphSpacing := 2;
TabStop:=true; TabStop:=true;
ControlStyle := ControlStyle + [csAcceptsControls]; ControlStyle := ControlStyle + [csAcceptsControls];
DoubleBuffered:=true; DoubleBuffered:=true;
FBackground := TBitmap.Create; FBackground := TBitmap.Create;
with FBackground do with FBackground do
begin begin
Width:=Self.Width; Width:=Self.Width;
Height:=Self.Height; Height:=Self.Height;
end; end;
FRotatedGlyph := TRotatedGlyph.Create; FRotatedGlyph := TRotatedGlyph.Create;
FRotatedGlyph.OnChange := @GlyphChanged; FRotatedGlyph.OnChange := @GlyphChanged;
FRotatedText := TRotatedText.Create; FRotatedText := TRotatedText.Create;
FButtonLayout:=blGlyphLeft; FButtonLayout:=blGlyphLeft;
FGlyphBackgroundColor:=clWhite; FGlyphBackgroundColor:=clWhite;
FNormalBackgroundCache := TBitmap.Create; FNormalBackgroundCache := TBitmap.Create;
FHotBackgroundCache := TBitmap.Create; FHotBackgroundCache := TBitmap.Create;
FDownBackgroundCache := TBitmap.Create; FDownBackgroundCache := TBitmap.Create;
FDisabledBackgroundCache := TBitmap.Create; FDisabledBackgroundCache := TBitmap.Create;
FBorderSides:=[bsTopLine,bsBottomLine,bsLeftLine,bsRightLine];
bm := TBitmap.Create; FBorderSides:=[bsTopLine,bsBottomLine,bsLeftLine,bsRightLine];
UpdateBackground; bm := TBitmap.Create;
UpdateBackground;
Font.Color:=clWhite; Font.Color:=clWhite;
end; end;
destructor TGradButton.Destroy; destructor TGradButton.Destroy;
@ -918,20 +924,20 @@ end;
procedure TGradButton.SetNormalBlend(const Value: Extended); procedure TGradButton.SetNormalBlend(const Value: Extended);
begin begin
FNormalBlend:=Value; FNormalBlend:=Value;
UpdateBackground; UpdateBackground;
InvPaint; InvPaint;
end; end;
procedure TGradButton.SetOverBlend(const Value: Extended); procedure TGradButton.SetOverBlend(const Value: Extended);
begin begin
FOverBlend:=Value; FOverBlend:=Value;
UpdateBackground; UpdateBackground;
InvPaint; InvPaint;
end; end;
procedure TGradButton.SetBaseColor(const Value: TColor); procedure TGradButton.SetBaseColor(const Value: TColor);
@ -1089,7 +1095,6 @@ end;
procedure TGradButton.MouseEnter; procedure TGradButton.MouseEnter;
begin begin
//WriteLn('MouseEnter');
inherited; inherited;
if FState<>bsDown then if FState<>bsDown then