initial import of TGradButton and TGradTabControl

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@526 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
eugene1
2008-08-10 18:23:45 +00:00
parent fb3cd22f28
commit 92d9a5bf49
26 changed files with 7808 additions and 0 deletions

View File

@ -0,0 +1,3 @@
The Package gradtabcontrol is atm to buggy to use it.
Eugen Bolz

View File

@ -0,0 +1,483 @@
object Form1: TForm1
Left = 399
Height = 440
Top = 98
Width = 575
ActiveControl = TrackBar1
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = 'TGradButton-Demo'
ClientHeight = 440
ClientWidth = 575
OnCreate = FormCreate
LCLVersion = '0.9.25'
object Label1: TLabel
Left = 8
Height = 14
Top = 75
Width = 60
Caption = 'NormalBlend'
ParentColor = False
end
object Label2: TLabel
Left = 8
Height = 14
Top = 131
Width = 51
Caption = 'OverBlend'
ParentColor = False
end
object Label3: TLabel
Left = 88
Height = 14
Top = 75
Width = 1
ParentColor = False
end
object Label4: TLabel
Left = 88
Height = 14
Top = 131
Width = 1
ParentColor = False
end
object Label5: TLabel
Left = 45
Height = 14
Top = 16
Width = 52
Caption = 'Base Color'
ParentColor = False
end
object Label6: TLabel
Left = 151
Height = 14
Top = 16
Width = 91
Caption = 'Normal Blend Color'
ParentColor = False
end
object Label7: TLabel
Left = 272
Height = 14
Top = 16
Width = 82
Caption = 'Over Blend Color'
ParentColor = False
end
object Label8: TLabel
Left = 488
Height = 14
Top = 128
Width = 28
Caption = 'Glyph'
ParentColor = False
end
object Label9: TLabel
Left = 461
Height = 14
Top = 184
Width = 87
Caption = 'Glyph Background'
ParentColor = False
end
object Label10: TLabel
Left = 464
Height = 14
Top = 16
Width = 50
Caption = 'Click Color'
ParentColor = False
end
object Label11: TLabel
Left = 464
Height = 14
Top = 72
Width = 84
Caption = 'NotEnabled Color'
ParentColor = False
end
object TrackBar1: TTrackBar
Left = 8
Height = 30
Top = 96
Width = 368
Max = 100000
OnChange = TrackBar1Change
ScalePos = trBottom
TickStyle = tsNone
Align = alCustom
TabOrder = 0
end
object TrackBar2: TTrackBar
Left = 8
Height = 30
Top = 155
Width = 368
Max = 100000
OnChange = TrackBar2Change
ScalePos = trBottom
TabStop = False
TickStyle = tsNone
Align = alCustom
TabOrder = 1
end
object CheckGroup1: TCheckGroup
Left = 8
Height = 105
Top = 320
Width = 129
AutoFill = True
Caption = 'Border Sides'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
Items.Strings = (
'bsBottomLine'
'bsTopLine'
'bsLeftLine'
'bsRightLine'
)
OnItemClick = CheckGroup1ItemClick
TabOrder = 4
Data = {
0400000002020202
}
end
object CheckGroup2: TCheckGroup
Left = 8
Height = 89
Top = 216
Width = 129
AutoFill = True
Caption = 'Other'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
Items.Strings = (
'ShowFocusBorder'
'ShowGlyph'
'Enabled'
)
OnItemClick = CheckGroup2ItemClick
TabOrder = 6
Data = {
03000000020202
}
end
object RadioGroup1: TRadioGroup
Left = 432
Height = 65
Top = 240
Width = 129
AutoFill = True
Caption = 'Gradient Type'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 47
ClientWidth = 125
ItemIndex = 0
Items.Strings = (
'gtHorizontal'
'gtVertical'
)
OnClick = RadioGroup1Click
TabOrder = 8
end
object RadioGroup2: TRadioGroup
Left = 151
Height = 105
Top = 320
Width = 129
AutoFill = True
Caption = 'Rotated Direction'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 87
ClientWidth = 125
ItemIndex = 0
Items.Strings = (
'rdNormal'
'rdLeft'
'rdRight'
)
OnClick = RadioGroup2Click
TabOrder = 2
end
object RadioGroup3: TRadioGroup
Left = 296
Height = 105
Top = 320
Width = 121
AutoFill = True
Caption = 'Button Layout'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 87
ClientWidth = 117
ItemIndex = 1
Items.Strings = (
'blGlyphRight'
'blGlyphLeft'
'blGlyphTop'
'blGlyphBottom'
)
OnClick = RadioGroup3Click
TabOrder = 3
end
object RadioGroup4: TRadioGroup
Left = 432
Height = 106
Top = 320
Width = 129
AutoFill = True
Caption = 'Text Alignment'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 88
ClientWidth = 125
ItemIndex = 0
Items.Strings = (
'taCenter'
'taLeftJustify'
'taRightJustify'
)
OnClick = RadioGroup4Click
TabOrder = 5
end
object LabeledEdit1: TLabeledEdit
Left = 328
Height = 23
Top = 240
Width = 80
EditLabel.AnchorSideLeft.Control = LabeledEdit1
EditLabel.AnchorSideBottom.Control = LabeledEdit1
EditLabel.Left = 328
EditLabel.Height = 14
EditLabel.Top = 223
EditLabel.Width = 73
EditLabel.Caption = 'Button Caption'
EditLabel.ParentColor = False
ParentColor = False
TabOrder = 7
Text = 'Sample Text'
OnKeyUp = LabeledEdit1KeyUp
end
object b: TGradButton
Left = 152
Height = 96
Top = 200
Width = 168
Font.Height = -15
OnClick = bClick
TabOrder = 9
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'ÖÄÜÒ'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object GradButton1: TGradButton
Left = 16
Height = 25
Top = 35
Width = 104
OnClick = BaseColorClick
TabOrder = 10
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'GradButton1'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object GradButton2: TGradButton
Left = 144
Height = 25
Top = 35
Width = 104
OnClick = NormalBlendClick
TabOrder = 11
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'GradButton2'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object GradButton3: TGradButton
Left = 256
Height = 25
Top = 35
Width = 104
OnClick = OverBlendClick
TabOrder = 12
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'GradButton3'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object GradButton4: TGradButton
Left = 452
Height = 25
Top = 149
Width = 104
OnClick = GradButton4Click
TabOrder = 13
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'load Glyph'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object GradButton5: TGradButton
Left = 452
Height = 25
Top = 200
Width = 104
OnClick = GradButton5Click
TabOrder = 14
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'GradButton5'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object GradButton6: TGradButton
Left = 452
Height = 25
Top = 35
Width = 104
OnClick = GradButton6Click
TabOrder = 15
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'GradButton6'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object GradButton7: TGradButton
Left = 452
Height = 25
Top = 93
Width = 104
OnClick = GradButton7Click
TabOrder = 16
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'GradButton7'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object ColorDialog1: TColorDialog
Color = 11954481
left = 48
top = 176
end
object ImageList1: TImageList
left = 8
top = 176
end
object OpenPictureDialog1: TOpenPictureDialog
Filter = '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 Pixmap (*.ppm)|*.ppm|Portable Graymap'
left = 88
top = 176
end
end

View File

@ -0,0 +1,166 @@
{ Das ist eine automatisch erzeugte Lazarus-Ressourcendatei }
LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#143#1#6'Height'#3#184#1#3'Top'#2'b'#5'Wid'
+'th'#3'?'#2#13'ActiveControl'#7#9'TrackBar1'#11'BorderIcons'#11#12'biSystemM'
+'enu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#16'TGradBu'
+'tton-Demo'#12'ClientHeight'#3#184#1#11'ClientWidth'#3'?'#2#8'OnCreate'#7#10
+'FormCreate'#10'LCLVersion'#6#6'0.9.25'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6
+'Height'#2#14#3'Top'#2'K'#5'Width'#2'<'#7'Caption'#6#11'NormalBlend'#11'Pare'
+'ntColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#14#3'Top'#3#131#0
+#5'Width'#2'3'#7'Caption'#6#9'OverBlend'#11'ParentColor'#8#0#0#6'TLabel'#6'L'
+'abel3'#4'Left'#2'X'#6'Height'#2#14#3'Top'#2'K'#5'Width'#2#1#11'ParentColor'
+#8#0#0#6'TLabel'#6'Label4'#4'Left'#2'X'#6'Height'#2#14#3'Top'#3#131#0#5'Widt'
+'h'#2#1#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2'-'#6'Height'#2#14
+#3'Top'#2#16#5'Width'#2'4'#7'Caption'#6#10'Base Color'#11'ParentColor'#8#0#0
+#6'TLabel'#6'Label6'#4'Left'#3#151#0#6'Height'#2#14#3'Top'#2#16#5'Width'#2'['
+#7'Caption'#6#18'Normal Blend Color'#11'ParentColor'#8#0#0#6'TLabel'#6'Label'
+'7'#4'Left'#3#16#1#6'Height'#2#14#3'Top'#2#16#5'Width'#2'R'#7'Caption'#6#16
+'Over Blend Color'#11'ParentColor'#8#0#0#6'TLabel'#6'Label8'#4'Left'#3#232#1
+#6'Height'#2#14#3'Top'#3#128#0#5'Width'#2#28#7'Caption'#6#5'Glyph'#11'Parent'
+'Color'#8#0#0#6'TLabel'#6'Label9'#4'Left'#3#205#1#6'Height'#2#14#3'Top'#3#184
+#0#5'Width'#2'W'#7'Caption'#6#16'Glyph Background'#11'ParentColor'#8#0#0#6'T'
+'Label'#7'Label10'#4'Left'#3#208#1#6'Height'#2#14#3'Top'#2#16#5'Width'#2'2'#7
+'Caption'#6#11'Click Color'#11'ParentColor'#8#0#0#6'TLabel'#7'Label11'#4'Lef'
+'t'#3#208#1#6'Height'#2#14#3'Top'#2'H'#5'Width'#2'T'#7'Caption'#6#16'NotEnab'
+'led Color'#11'ParentColor'#8#0#0#9'TTrackBar'#9'TrackBar1'#4'Left'#2#8#6'He'
+'ight'#2#30#3'Top'#2'`'#5'Width'#3'p'#1#3'Max'#4#160#134#1#0#8'OnChange'#7#15
+'TrackBar1Change'#8'ScalePos'#7#8'trBottom'#9'TickStyle'#7#6'tsNone'#5'Align'
+#7#8'alCustom'#8'TabOrder'#2#0#0#0#9'TTrackBar'#9'TrackBar2'#4'Left'#2#8#6'H'
+'eight'#2#30#3'Top'#3#155#0#5'Width'#3'p'#1#3'Max'#4#160#134#1#0#8'OnChange'
+#7#15'TrackBar2Change'#8'ScalePos'#7#8'trBottom'#7'TabStop'#8#9'TickStyle'#7
+#6'tsNone'#5'Align'#7#8'alCustom'#8'TabOrder'#2#1#0#0#11'TCheckGroup'#11'Che'
+'ckGroup1'#4'Left'#2#8#6'Height'#2'i'#3'Top'#3'@'#1#5'Width'#3#129#0#8'AutoF'
+'ill'#9#7'Caption'#6#12'Border Sides'#28'ChildSizing.LeftRightSpacing'#2#6#28
+'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'cr'
+'sHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousC'
+'hildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildS'
+'izing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclL'
+'eftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#13'Items.Str'
+'ings'#1#6#12'bsBottomLine'#6#9'bsTopLine'#6#10'bsLeftLine'#6#11'bsRightLine'
+#0#11'OnItemClick'#7#20'CheckGroup1ItemClick'#8'TabOrder'#2#4#4'Data'#10#8#0
+#0#0#4#0#0#0#2#2#2#2#0#0#11'TCheckGroup'#11'CheckGroup2'#4'Left'#2#8#6'Heigh'
+'t'#2'Y'#3'Top'#3#216#0#5'Width'#3#129#0#8'AutoFill'#9#7'Caption'#6#5'Other'
+#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29
+'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizin'
+'g.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHori'
+'zontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleCh'
+'ilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSi'
+'zing.ControlsPerLine'#2#1#13'Items.Strings'#1#6#15'ShowFocusBorder'#6#9'Sho'
+'wGlyph'#6#7'Enabled'#0#11'OnItemClick'#7#20'CheckGroup2ItemClick'#8'TabOrde'
+'r'#2#6#4'Data'#10#7#0#0#0#3#0#0#0#2#2#2#0#0#11'TRadioGroup'#11'RadioGroup1'
+#4'Left'#3#176#1#6'Height'#2'A'#3'Top'#3#240#0#5'Width'#3#129#0#8'AutoFill'#9
+#7'Caption'#6#13'Gradient Type'#28'ChildSizing.LeftRightSpacing'#2#6#28'Chil'
+'dSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHom'
+'ogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChild'
+'Resize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizin'
+'g.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftT'
+'oRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'
+#2'/'#11'ClientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#12'gtHoriz'
+'ontal'#6#10'gtVertical'#0#7'OnClick'#7#16'RadioGroup1Click'#8'TabOrder'#2#8
+#0#0#11'TRadioGroup'#11'RadioGroup2'#4'Left'#3#151#0#6'Height'#2'i'#3'Top'#3
+'@'#1#5'Width'#3#129#0#8'AutoFill'#9#7'Caption'#6#17'Rotated Direction'#28'C'
+'hildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'Ch'
+'ildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.'
+'EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizo'
+'ntal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChil'
+'ds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizi'
,'ng.ControlsPerLine'#2#1#12'ClientHeight'#2'W'#11'ClientWidth'#2'}'#9'ItemIn'
+'dex'#2#0#13'Items.Strings'#1#6#8'rdNormal'#6#6'rdLeft'#6#7'rdRight'#0#7'OnC'
+'lick'#7#16'RadioGroup2Click'#8'TabOrder'#2#2#0#0#11'TRadioGroup'#11'RadioGr'
+'oup3'#4'Left'#3'('#1#6'Height'#2'i'#3'Top'#3'@'#1#5'Width'#2'y'#8'AutoFill'
+#9#7'Caption'#6#13'Button Layout'#28'ChildSizing.LeftRightSpacing'#2#6#28'Ch'
+'ildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsH'
+'omogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChi'
+'ldResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSiz'
+'ing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLef'
+'tToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeigh'
+'t'#2'W'#11'ClientWidth'#2'u'#9'ItemIndex'#2#1#13'Items.Strings'#1#6#12'blGl'
+'yphRight'#6#11'blGlyphLeft'#6#10'blGlyphTop'#6#13'blGlyphBottom'#0#7'OnClic'
+'k'#7#16'RadioGroup3Click'#8'TabOrder'#2#3#0#0#11'TRadioGroup'#11'RadioGroup'
+'4'#4'Left'#3#176#1#6'Height'#2'j'#3'Top'#3'@'#1#5'Width'#3#129#0#8'AutoFill'
+#9#7'Caption'#6#14'Text Alignment'#28'ChildSizing.LeftRightSpacing'#2#6#28'C'
+'hildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crs'
+'HomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousCh'
+'ildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSi'
+'zing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLe'
+'ftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeig'
+'ht'#2'X'#11'ClientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#8'taCe'
+'nter'#6#13'taLeftJustify'#6#14'taRightJustify'#0#7'OnClick'#7#16'RadioGroup'
+'4Click'#8'TabOrder'#2#5#0#0#12'TLabeledEdit'#12'LabeledEdit1'#4'Left'#3'H'#1
+#6'Height'#2#23#3'Top'#3#240#0#5'Width'#2'P EditLabel.AnchorSideLeft.Control'
+#7#12'LabeledEdit1"EditLabel.AnchorSideBottom.Control'#7#12'LabeledEdit1'#14
+'EditLabel.Left'#3'H'#1#16'EditLabel.Height'#2#14#13'EditLabel.Top'#3#223#0
+#15'EditLabel.Width'#2'I'#17'EditLabel.Caption'#6#14'Button Caption'#21'Edit'
+'Label.ParentColor'#8#11'ParentColor'#8#8'TabOrder'#2#7#4'Text'#6#11'Sample '
+'Text'#7'OnKeyUp'#7#17'LabeledEdit1KeyUp'#0#0#11'TGradButton'#1'b'#4'Left'#3
+#152#0#6'Height'#2'`'#3'Top'#3#200#0#5'Width'#3#168#0#11'Font.Height'#2#241#7
+'OnClick'#7#6'bClick'#8'TabOrder'#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'?'#7'Caption'#6#8
+#195#150#195#132#195#156#195#146#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'#11'BorderSides'#11#9'bsTopLine'#12'bsBottomLi'
+'ne'#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBorder'#9#20'GlyphBackgrou'
+'ndColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0#11'TGradButton'#11'Gra'
+'dButton1'#4'Left'#2#16#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#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'?'#7'Caption'#6#11
+'GradButton1'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendCo'
+'lor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9
+'clBtnFace'#11'BorderSides'#11#9'bsTopLine'#12'bsBottomLine'#10'bsLeftLine'
+#11'bsRightLine'#0#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhit'
+'e'#10'ClickColor'#7#6'clBlue'#0#0#11'TGradButton'#11'GradButton2'#4'Left'#3
+#144#0#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'OnClick'#7#16'NormalBlendC'
+'lick'#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'?'#7'Caption'#6#11'GradButton2'
+#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWh'
+'ite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#11
+'BorderSides'#11#9'bsTopLine'#12'bsBottomLine'#10'bsLeftLine'#11'bsRightLine'
+#0#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'
+#7#6'clBlue'#0#0#11'TGradButton'#11'GradButton3'#4'Left'#3#0#1#6'Height'#2#25
+#3'Top'#2'#'#5'Width'#2'h'#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'?'#7'Caption'#6#11'GradButton3'#9'BaseColor'#7#6'clBlue'
+#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7
+#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#11'BorderSides'#11#9'bsTopLi'
+'ne'#12'bsBottomLine'#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBorder'#9
+#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0#11'TGr'
+'adButton'#11'GradButton4'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#3#149#0#5'W'
+'idth'#2'h'#7'OnClick'#7#16'GradButton4Click'#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'?'#7'Caption'#6#10'load Glyph'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6
,'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'
+#15'BackgroundColor'#7#9'clBtnFace'#11'BorderSides'#11#9'bsTopLine'#12'bsBot'
+'tomLine'#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBorder'#9#20'GlyphBac'
+'kgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0#11'TGradButton'#11
+'GradButton5'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#3#200#0#5'Width'#2'h'#7
+'OnClick'#7#16'GradButton5Click'#8'TabOrder'#2#14#7'TabStop'#9#11'NormalBlen'
+'d'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#7
+'Caption'#6#11'GradButton5'#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'#11'BorderSides'#11#9'bsTopLine'#12'bsBottomLine'#10
+'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'
+#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0#11'TGradButton'#11'GradButton6'
+#4'Left'#3#196#1#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'OnClick'#7#16'Gr'
+'adButton6Click'#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'?'#7'Caption'#6#11'G'
+'radButton6'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendCol'
+'or'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'c'
+'lBtnFace'#11'BorderSides'#11#9'bsTopLine'#12'bsBottomLine'#10'bsLeftLine'#11
+'bsRightLine'#0#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'
+#10'ClickColor'#7#6'clBlue'#0#0#11'TGradButton'#11'GradButton7'#4'Left'#3#196
+#1#6'Height'#2#25#3'Top'#2']'#5'Width'#2'h'#7'OnClick'#7#16'GradButton7Click'
+#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'?'#7'Caption'#6#11'GradButton7'#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'#11'Bord'
+'erSides'#11#9'bsTopLine'#12'bsBottomLine'#10'bsLeftLine'#11'bsRightLine'#0
+#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7
+#6'clBlue'#0#0#12'TColorDialog'#12'ColorDialog1'#5'Color'#4'1i'#182#0#4'left'
+#2'0'#3'top'#3#176#0#0#0#10'TImageList'#10'ImageList1'#4'left'#2#8#3'top'#3
+#176#0#0#0#18'TOpenPictureDialog'#18'OpenPictureDialog1'#6'Filter'#6#255'Gra'
+'phic (*.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 Pixmap (*.'
+'ppm)|*.ppm|Portable Graymap'#4'left'#2'X'#3'top'#3#176#0#0#0#0
]);

View File

@ -0,0 +1,325 @@
unit main;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, ExtCtrls, ugradbtn, Buttons, ComCtrls,
LCLType, ExtDlgs, urotatebitmap;
type
{ TForm1 }
TForm1 = class(TForm)
CheckGroup1: TCheckGroup;
CheckGroup2: TCheckGroup;
ColorDialog1: TColorDialog;
b: TGradButton;
GradButton1: TGradButton;
GradButton2: TGradButton;
GradButton3: TGradButton;
GradButton4: TGradButton;
GradButton5: TGradButton;
GradButton6: TGradButton;
GradButton7: TGradButton;
ImageList1: TImageList;
Label1: TLabel;
Label10: TLabel;
Label11: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
LabeledEdit1: TLabeledEdit;
OpenPictureDialog1: TOpenPictureDialog;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
RadioGroup3: TRadioGroup;
RadioGroup4: TRadioGroup;
TrackBar1: TTrackBar;
TrackBar2: TTrackBar;
procedure bClick(Sender: TObject);
procedure CheckGroup1ItemClick(Sender: TObject; Index: integer);
procedure CheckGroup2ItemClick(Sender: TObject; Index: integer);
procedure BaseColorClick(Sender: TObject);
procedure GradButton4Click(Sender: TObject);
procedure GradButton5Click(Sender: TObject);
procedure GradButton6Click(Sender: TObject);
procedure GradButton7Click(Sender: TObject);
procedure NormalBlendClick(Sender: TObject);
procedure OverBlendClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure RadioGroup3Click(Sender: TObject);
procedure RadioGroup4Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure LabeledEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
end;
var
Form1: TForm1;
implementation
uses
GraphType, LazPNG;
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
TrackBar1.Position:= trunc(b.NormalBlend * TrackBar1.Max);
TrackBar1Change(TrackBar1);
TrackBar2.Position:= trunc(b.OverBlend * TrackBar2.Max);
TrackBar2Change(TrackBar2);
with GradButton1 do
begin
BaseColor:=b.BaseColor;
Caption:=ColorToString(BaseColor);
end;
with GradButton2 do
begin
BaseColor:=b.NormalBlendColor;
Caption:=ColorToString(BaseColor);
end;
with GradButton3 do
begin
BaseColor:=b.OverBlendColor;
Caption:=ColorToString(BaseColor);
end;
CheckGroup1.Checked[0]:=true;
CheckGroup1.Checked[1]:=true;
CheckGroup1.Checked[2]:=true;
CheckGroup1.Checked[3]:=true;
CheckGroup2.Checked[0]:=b.ShowFocusBorder;
CheckGroup2.Checked[2]:=true;
//ImageList1.AddLazarusResource('house');
//ImageList1.GetBitmap(0,b.Glyph,gdeHighlighted);
//ImageList1.GetBitmap();
b.GlyphBackgroundColor:=clWhite;
GradButton5.BaseColor:=clWhite;
GradButton5.Caption:=ColorToString(clWhite);
GradButton6.Caption:=ColorToString(GradButton6.BaseColor);
GradButton7.Caption:=ColorToString(b.NotEnabledColor);
GradButton7.BaseColor:=b.NotEnabledColor;
b.ClickColor:=GradButton6.BaseColor;
b.Caption:=LabeledEdit1.Text;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex = 0 then
b.GradientType := gtHorizontal
else
b.GradientType := gtVertical;
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
if RadioGroup2.ItemIndex = 0 then
b.RotateDirection := rdNormal
else if RadioGroup2.ItemIndex = 1 then
b.RotateDirection := rdLeft
else
b.RotateDirection := rdRight;
end;
procedure TForm1.RadioGroup3Click(Sender: TObject);
begin
if RadioGroup3.ItemIndex = 0 then
b.ButtonLayout := blGlyphRight
else if RadioGroup3.ItemIndex = 1 then
b.ButtonLayout := blGlyphLeft
else if RadioGroup3.ItemIndex = 2 then
b.ButtonLayout := blGlyphTop
else b.ButtonLayout := blGlyphBottom;
end;
procedure TForm1.RadioGroup4Click(Sender: TObject);
begin
case RadioGroup4.ItemIndex of
0 : b.TextAlignment := taCenter;
1 : b.TextAlignment := taLeftJustify;
2 : b.TextAlignment := taRightJustify;
end;
end;
procedure TForm1.BaseColorClick(Sender: TObject);
begin
ColorDialog1.Color:=GradButton1.BaseColor;
if ColorDialog1.Execute then
begin
b.BaseColor:=ColorDialog1.Color;
GradButton1.BaseColor:=ColorDialog1.Color;
GradButton1.Caption:=ColorToString(GradButton1.BaseColor);
end;
end;
procedure TForm1.GradButton4Click(Sender: TObject);
var
tempPicture : TPicture;
png : TPNGImage;
begin
if OpenPictureDialog1.Execute then
begin
ImageList1.Clear;
try
tempPicture := TPicture.Create;
tempPicture.LoadFromFile(OpenPictureDialog1.FileName);
//png := TPNGImage.Create;
//png.LoadFromFile(OpenPictureDialog1.FileName);
GradButton4.Glyph.Assign(tempPicture.Graphic);
b.Glyph.Assign(tempPicture.Graphic);
GradButton4.UpdateButton;
b.UpdateButton;
//ImageList1.;
//Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
//tempPicture.Picture.Bitmap.Canvas.Pixels[1,2]:=clRed;
//ImageList1.AddMasked(tempPicture.Picture.Bitmap,clNone);
//ImageList1.GetBitmap(0,b.Glyph);
//mageList1.GetBitmap(0,);
//GradButton4.Glyph := Image1.Picture.Bitmap;
//Image1.Picture.Bitmap := tempPicture.Picture.Bitmap;
GradButton4.ShowGlyph:=true;
GradButton4.Caption:='';
finally
tempPicture.Free;
//png.Free;
end;
end;
end;
procedure TForm1.GradButton5Click(Sender: TObject);
begin
ColorDialog1.Color:=b.GlyphBackgroundColor;
if ColorDialog1.Execute then
begin
b.GlyphBackgroundColor:=ColorDialog1.Color;
GradButton5.BaseColor:=ColorDialog1.Color;
GradButton5.Caption:=ColorToString(GradButton5.BaseColor);
end;
end;
procedure TForm1.GradButton6Click(Sender: TObject);
begin
ColorDialog1.Color:=b.ClickColor;
if ColorDialog1.Execute then
begin
b.ClickColor:=ColorDialog1.Color;
GradButton6.BaseColor:=ColorDialog1.Color;
GradButton6.Caption:=ColorToString(GradButton6.BaseColor);
end;
end;
procedure TForm1.GradButton7Click(Sender: TObject);
begin
ColorDialog1.Color:=b.NotEnabledColor;
if ColorDialog1.Execute then
begin
b.NotEnabledColor:=ColorDialog1.Color;
GradButton7.BaseColor:=ColorDialog1.Color;
GradButton7.Caption:=ColorToString(GradButton7.BaseColor);
end;
end;
procedure TForm1.LabeledEdit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
b.Caption:=LabeledEdit1.Text;
end;
procedure TForm1.NormalBlendClick(Sender: TObject);
begin
ColorDialog1.Color:=b.NormalBlendColor;
if ColorDialog1.Execute then
begin
b.NormalBlendColor:=ColorDialog1.Color;
GradButton2.BaseColor:=ColorDialog1.Color;
GradButton2.Caption:=ColorToString(GradButton2.BaseColor);
end;
end;
procedure TForm1.OverBlendClick(Sender: TObject);
begin
ColorDialog1.Color:=b.OverBlendColor;
if ColorDialog1.Execute then
begin
b.OverBlendColor:=ColorDialog1.Color;
GradButton3.BaseColor:=ColorDialog1.Color;
GradButton3.Caption:=ColorToString(GradButton3.BaseColor);
end;
end;
procedure TForm1.bClick(Sender: TObject);
begin
end;
procedure TForm1.CheckGroup1ItemClick(Sender: TObject; Index: integer);
var
bs : TBorderSides;
begin
bs := [];
if CheckGroup1.Checked[0] then bs := bs + [bsBottomLine];
if CheckGroup1.Checked[1] then bs := bs + [bsTopLine];
if CheckGroup1.Checked[2] then bs := bs + [bsLeftLine];
if CheckGroup1.Checked[3] then bs := bs + [bsRightLine];
b.BorderSides:=bs;
end;
procedure TForm1.CheckGroup2ItemClick(Sender: TObject; Index: integer);
begin
b.ShowFocusBorder:=CheckGroup2.Checked[0];
b.ShowGlyph:=CheckGroup2.Checked[1];
b.Enabled:=CheckGroup2.Checked[2];
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
var
blend : Extended;
begin
blend := TrackBar1.Position / TrackBar1.Max;
b.NormalBlend:=blend;
Label3.Caption:=FloatToStr(blend);
end;
procedure TForm1.TrackBar2Change(Sender: TObject);
var
blend : Extended;
begin
blend := TrackBar2.Position / TrackBar2.Max;
b.OverBlend:=blend;
Label4.Caption:=FloatToStr(blend);
end;
initialization
{$I main.lrs}
end.

View File

@ -0,0 +1,711 @@
object Form1: TForm1
Left = 121
Height = 500
Top = 184
Width = 898
Caption = 'Form1'
ClientHeight = 500
ClientWidth = 898
OnCreate = FormCreate
OnDestroy = FormDestroy
LCLVersion = '0.9.25'
object GradButton1: TGradButton
Left = 24
Height = 104
Top = 88
Width = 176
OnClick = GradButton1Click
OnMouseDown = GradButton1MouseDown
OnMouseEnter = GradButton1MouseEnter
OnMouseLeave = GradButton1MouseLeave
OnMouseMove = GradButton1MouseMove
OnMouseUp = GradButton1MouseUp
TabOrder = 0
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'GradButton1'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object Panel1: TPanel
Height = 500
Width = 759
Align = alLeft
Anchors = [akTop, akLeft, akRight, akBottom]
Caption = 'Panel1'
ClientHeight = 500
ClientWidth = 759
TabOrder = 1
object GradTabControl1: TGradTabControl
Left = 248
Height = 498
Top = 1
Width = 376
Align = alClient
ControlStyle = [csAcceptsControls, csDesignInteractive, csOpaque, csMenuEvents, csParentBackground, csOwnedChildsSelectable]
ActivePage = GradTabPage3
OnTabButtonClick = GradTabControl1TabButtonClick
OnTabButtonMouseUp = GradTabControl1TabButtonMouseUp
PageIndex = 2
TabHeight = 20
object GradTabPage1: TGradTabPage
Left = 2
Height = 567
Top = 22
Width = 506
ControlState = [csVisibleSetInLoading]
ControlStyle = [csAcceptsControls, csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks, csNoDesignVisible, csDesignFixedBounds, csNoDesignSelectable]
Caption = 'GradTabPage1'
ShowCloseButton = True
object Edit1: TEdit
Height = 567
Width = 506
Align = alClient
TabOrder = 0
Text = 'Edit1'
end
end
object GradTabPage2: TGradTabPage
Left = 2
Height = 567
Top = 22
Width = 506
ControlState = [csVisibleSetInLoading]
ControlStyle = [csAcceptsControls, csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks, csNoDesignVisible, csDesignFixedBounds, csNoDesignSelectable]
PageIndex = 1
Caption = 'GradTabPage2'
end
object GradTabPage3: TGradTabPage
Left = 2
Height = 474
Top = 22
Width = 372
ControlState = [csVisibleSetInLoading]
ControlStyle = [csAcceptsControls, csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks, csDesignFixedBounds]
PageIndex = 2
Caption = 'GradTabPage3'
object Memo1: TMemo
Height = 474
Width = 372
Align = alClient
Lines.Strings = (
'Memo1'
)
TabOrder = 0
end
end
end
object GradTabControl2: TGradTabControl
Left = 1
Height = 498
Top = 1
Width = 247
Align = alLeft
ControlStyle = [csAcceptsControls]
ActivePage = GradTabPage5
OnTabButtonClick = GradTabControl2TabButtonClick
PageIndex = 1
TabHeight = 25
TabPosition = tpRight
object GradTabPage4: TGradTabPage
Left = 2
Height = 587
Top = 2
Width = 218
ControlState = [csVisibleSetInLoading]
ControlStyle = [csAcceptsControls, csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks, csNoDesignVisible, csDesignFixedBounds, csNoDesignSelectable]
TabVisible = False
Caption = 'GradTabPage4'
object SynEdit1: TSynEdit
Height = 587
Width = 218
Align = alClient
Font.Height = 12
Font.Name = 'Courier'
Font.Pitch = fpFixed
ParentColor = False
TabOrder = 0
Highlighter = SynPHPSyn1
Keystrokes = <
item
Command = 3
ShortCut = 38
end
item
Command = 103
ShortCut = 8230
end
item
Command = 211
ShortCut = 16422
end
item
Command = 4
ShortCut = 40
end
item
Command = 104
ShortCut = 8232
end
item
Command = 212
ShortCut = 16424
end
item
Command = 1
ShortCut = 37
end
item
Command = 101
ShortCut = 8229
end
item
Command = 5
ShortCut = 16421
end
item
Command = 105
ShortCut = 24613
end
item
Command = 2
ShortCut = 39
end
item
Command = 102
ShortCut = 8231
end
item
Command = 6
ShortCut = 16423
end
item
Command = 106
ShortCut = 24615
end
item
Command = 10
ShortCut = 34
end
item
Command = 110
ShortCut = 8226
end
item
Command = 14
ShortCut = 16418
end
item
Command = 114
ShortCut = 24610
end
item
Command = 9
ShortCut = 33
end
item
Command = 109
ShortCut = 8225
end
item
Command = 13
ShortCut = 16417
end
item
Command = 113
ShortCut = 24609
end
item
Command = 7
ShortCut = 36
end
item
Command = 107
ShortCut = 8228
end
item
Command = 15
ShortCut = 16420
end
item
Command = 115
ShortCut = 24612
end
item
Command = 8
ShortCut = 35
end
item
Command = 108
ShortCut = 8227
end
item
Command = 16
ShortCut = 16419
end
item
Command = 116
ShortCut = 24611
end
item
Command = 223
ShortCut = 45
end
item
Command = 201
ShortCut = 16429
end
item
Command = 604
ShortCut = 8237
end
item
Command = 502
ShortCut = 46
end
item
Command = 603
ShortCut = 8238
end
item
Command = 501
ShortCut = 8
end
item
Command = 501
ShortCut = 8200
end
item
Command = 504
ShortCut = 16392
end
item
Command = 601
ShortCut = 32776
end
item
Command = 602
ShortCut = 40968
end
item
Command = 509
ShortCut = 13
end
item
Command = 199
ShortCut = 16449
end
item
Command = 201
ShortCut = 16451
end
item
Command = 610
ShortCut = 24649
end
item
Command = 509
ShortCut = 16461
end
item
Command = 510
ShortCut = 16462
end
item
Command = 503
ShortCut = 16468
end
item
Command = 611
ShortCut = 24661
end
item
Command = 604
ShortCut = 16470
end
item
Command = 603
ShortCut = 16472
end
item
Command = 507
ShortCut = 16473
end
item
Command = 506
ShortCut = 24665
end
item
Command = 601
ShortCut = 16474
end
item
Command = 602
ShortCut = 24666
end
item
Command = 301
ShortCut = 16432
end
item
Command = 302
ShortCut = 16433
end
item
Command = 303
ShortCut = 16434
end
item
Command = 304
ShortCut = 16435
end
item
Command = 305
ShortCut = 16436
end
item
Command = 306
ShortCut = 16437
end
item
Command = 307
ShortCut = 16438
end
item
Command = 308
ShortCut = 16439
end
item
Command = 309
ShortCut = 16440
end
item
Command = 310
ShortCut = 16441
end
item
Command = 351
ShortCut = 24624
end
item
Command = 352
ShortCut = 24625
end
item
Command = 353
ShortCut = 24626
end
item
Command = 354
ShortCut = 24627
end
item
Command = 355
ShortCut = 24628
end
item
Command = 356
ShortCut = 24629
end
item
Command = 357
ShortCut = 24630
end
item
Command = 358
ShortCut = 24631
end
item
Command = 359
ShortCut = 24632
end
item
Command = 360
ShortCut = 24633
end
item
Command = 231
ShortCut = 24654
end
item
Command = 232
ShortCut = 24643
end
item
Command = 233
ShortCut = 24652
end
item
Command = 612
ShortCut = 9
end
item
Command = 613
ShortCut = 8201
end
item
Command = 250
ShortCut = 24642
end>
Lines.Strings = (
'<?'
''
'echo "string";'
''
'?>'
)
end
end
object GradTabPage5: TGradTabPage
Left = 2
Height = 494
Top = 2
Width = 218
ControlState = [csVisibleSetInLoading]
ControlStyle = [csAcceptsControls, csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks, csDesignFixedBounds]
PageIndex = 1
Caption = 'GradTabPage5'
ShowCloseButton = True
object StringGrid1: TStringGrid
Height = 494
Width = 218
Align = alClient
ColCount = 5
ExtendedSelect = True
FixedColor = clBtnFace
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goSmoothScroll]
RowCount = 5
TabOrder = 0
end
end
end
object GradTabControl3: TGradTabControl
Left = 624
Height = 498
Top = 1
Width = 134
Align = alRight
ControlStyle = [csAcceptsControls]
ActivePage = GradTabPage7
PageIndex = 1
TabHeight = 30
TabPosition = tpLeft
object GradTabPage6: TGradTabPage
Left = 32
Height = 587
Top = 2
Width = 100
ControlState = [csVisibleSetInLoading]
ControlStyle = [csAcceptsControls, csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks, csNoDesignVisible, csDesignFixedBounds, csNoDesignSelectable]
Caption = 'GradTabPage6'
ShowCloseButton = True
end
object GradTabPage7: TGradTabPage
Left = 32
Height = 494
Top = 2
Width = 100
ControlState = [csVisibleSetInLoading]
ControlStyle = [csAcceptsControls, csCaptureMouse, csClickEvents, csSetCaption, csDoubleClicks, csDesignFixedBounds]
PageIndex = 1
Caption = 'GradTabPage7'
end
end
end
object Panel2: TPanel
Left = 764
Height = 500
Width = 134
Align = alClient
Caption = 'Panel2'
ClientHeight = 500
ClientWidth = 134
TabOrder = 2
object ComboBox1: TComboBox
Left = 16
Height = 21
Top = 16
Width = 100
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
ItemHeight = 13
OnChange = ComboBox1Change
Style = csDropDownList
TabOrder = 0
end
object GradButton3: TGradButton
Left = 16
Height = 25
Top = 48
Width = 100
OnClick = GradButton3Click
TabOrder = 1
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'Add'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object GradButton4: TGradButton
Left = 16
Height = 25
Top = 112
Width = 100
OnClick = GradButton4Click
TabOrder = 2
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'Delete'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object GradButton2: TGradButton
Left = 16
Height = 25
Top = 80
Width = 100
OnClick = GradButton2Click
TabOrder = 3
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'Add Custom Page'
BaseColor = clBlue
Color = clBlue
NormalBlendColor = clWhite
OverBlendColor = clSilver
BackgroundColor = clBtnFace
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
GlyphBackgroundColor = clWhite
ClickColor = clBlue
end
object RadioGroup1: TRadioGroup
Left = 16
Height = 113
Top = 152
Width = 100
AutoFill = True
Caption = 'Tab Position'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 95
ClientWidth = 96
ItemIndex = 0
Items.Strings = (
'tpTop'
'tpBottom'
'tpLeft'
'tpRight'
)
OnClick = RadioGroup1Click
TabOrder = 4
end
object CheckBox1: TCheckBox
Left = 15
Height = 19
Top = 276
Width = 75
Caption = 'Long Tabs'
OnClick = CheckBox1Click
TabOrder = 5
end
object SpinEdit1: TSpinEdit
Left = 95
Height = 19
Top = 276
Width = 34
MaxValue = 50
OnEditingDone = SpinEdit1EditingDone
TabOrder = 6
Value = 50
end
object Arrow1: TArrow
Left = 31
Height = 10
Top = 456
Width = 10
end
object GradButton5: TGradButton
Left = 23
Height = 24
Top = 344
Width = 21
Font.Name = 'System'
Font.Style = [fsBold]
TabOrder = 8
TabStop = True
NormalBlend = 0.5
OverBlend = 0.653
Caption = 'X'
BaseColor = clBtnFace
Color = clBtnFace
NormalBlendColor = clBtnFace
OverBlendColor = clWhite
BackgroundColor = clBtnFace
AutoWidth = True
BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine]
ShowFocusBorder = True
RotateDirection = rdRight
GlyphBackgroundColor = clWhite
ClickColor = clBtnFace
end
object ScrollBox1: TScrollBox
Left = -34
Height = 150
Top = 400
Width = 150
HorzScrollBar.Page = 145
VertScrollBar.Page = 145
AutoScroll = False
TabOrder = 9
end
end
object Splitter1: TSplitter
Left = 759
Height = 500
Width = 5
end
object PopupMenu1: TPopupMenu
left = 734
top = 397
object MenuItem1: TMenuItem
Caption = 'New Item1'
end
end
object SynPHPSyn1: TSynPHPSyn
DefaultFilter = 'PHP-Dateien (*.php,*.php3,*.phtml,*.inc)|*.php;*.php3;*.phtml;*.inc'
Enabled = False
left = 115
top = 255
end
end

View File

@ -0,0 +1,183 @@
{ Das ist eine automatisch erzeugte Lazarus-Ressourcendatei }
LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#2'y'#6'Height'#3#244#1#3'Top'#3#184#0#5'Wid'
+'th'#3#130#3#7'Caption'#6#5'Form1'#12'ClientHeight'#3#244#1#11'ClientWidth'#3
+#130#3#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy'#10'LCLVer'
+'sion'#6#6'0.9.25'#0#11'TGradButton'#11'GradButton1'#4'Left'#2#24#6'Height'#2
+'h'#3'Top'#2'X'#5'Width'#3#176#0#7'OnClick'#7#16'GradButton1Click'#11'OnMous'
+'eDown'#7#20'GradButton1MouseDown'#12'OnMouseEnter'#7#21'GradButton1MouseEnt'
+'er'#12'OnMouseLeave'#7#21'GradButton1MouseLeave'#11'OnMouseMove'#7#20'GradB'
+'utton1MouseMove'#9'OnMouseUp'#7#18'GradButton1MouseUp'#8'TabOrder'#2#0#7'Ta'
+'bStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186
+'I'#12#2'+'#167#254'?'#7'Caption'#6#11'GradButton1'#9'BaseColor'#7#6'clBlue'
+#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7
+#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#11'BorderSides'#11#9'bsTopLi'
+'ne'#12'bsBottomLine'#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBorder'#9
+#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0#6'TPan'
+'el'#6'Panel1'#6'Height'#3#244#1#5'Width'#3#247#2#5'Align'#7#6'alLeft'#7'Anc'
+'hors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Caption'#6#6'Panel1'
+#12'ClientHeight'#3#244#1#11'ClientWidth'#3#247#2#8'TabOrder'#2#1#0#15'TGrad'
+'TabControl'#15'GradTabControl1'#4'Left'#3#248#0#6'Height'#3#242#1#3'Top'#2#1
+#5'Width'#3'x'#1#5'Align'#7#8'alClient'#12'ControlStyle'#11#17'csAcceptsCont'
+'rols'#19'csDesignInteractive'#8'csOpaque'#12'csMenuEvents'#18'csParentBackg'
+'round'#23'csOwnedChildsSelectable'#0#10'ActivePage'#7#12'GradTabPage3'#16'O'
+'nTabButtonClick'#7#29'GradTabControl1TabButtonClick'#18'OnTabButtonMouseUp'
+#7#31'GradTabControl1TabButtonMouseUp'#9'PageIndex'#2#2#9'TabHeight'#2#20#0
+#12'TGradTabPage'#12'GradTabPage1'#4'Left'#2#2#6'Height'#3'7'#2#3'Top'#2#22#5
+'Width'#3#250#1#12'ControlState'#11#21'csVisibleSetInLoading'#0#12'ControlSt'
+'yle'#11#17'csAcceptsControls'#14'csCaptureMouse'#13'csClickEvents'#12'csSet'
+'Caption'#14'csDoubleClicks'#17'csNoDesignVisible'#19'csDesignFixedBounds'#20
+'csNoDesignSelectable'#0#7'Caption'#6#12'GradTabPage1'#15'ShowCloseButton'#9
+#0#5'TEdit'#5'Edit1'#6'Height'#3'7'#2#5'Width'#3#250#1#5'Align'#7#8'alClient'
+#8'TabOrder'#2#0#4'Text'#6#5'Edit1'#0#0#0#12'TGradTabPage'#12'GradTabPage2'#4
+'Left'#2#2#6'Height'#3'7'#2#3'Top'#2#22#5'Width'#3#250#1#12'ControlState'#11
+#21'csVisibleSetInLoading'#0#12'ControlStyle'#11#17'csAcceptsControls'#14'cs'
+'CaptureMouse'#13'csClickEvents'#12'csSetCaption'#14'csDoubleClicks'#17'csNo'
+'DesignVisible'#19'csDesignFixedBounds'#20'csNoDesignSelectable'#0#9'PageInd'
+'ex'#2#1#7'Caption'#6#12'GradTabPage2'#0#0#12'TGradTabPage'#12'GradTabPage3'
+#4'Left'#2#2#6'Height'#3#218#1#3'Top'#2#22#5'Width'#3't'#1#12'ControlState'
+#11#21'csVisibleSetInLoading'#0#12'ControlStyle'#11#17'csAcceptsControls'#14
+'csCaptureMouse'#13'csClickEvents'#12'csSetCaption'#14'csDoubleClicks'#19'cs'
+'DesignFixedBounds'#0#9'PageIndex'#2#2#7'Caption'#6#12'GradTabPage3'#0#5'TMe'
+'mo'#5'Memo1'#6'Height'#3#218#1#5'Width'#3't'#1#5'Align'#7#8'alClient'#13'Li'
+'nes.Strings'#1#6#5'Memo1'#0#8'TabOrder'#2#0#0#0#0#0#15'TGradTabControl'#15
+'GradTabControl2'#4'Left'#2#1#6'Height'#3#242#1#3'Top'#2#1#5'Width'#3#247#0#5
+'Align'#7#6'alLeft'#12'ControlStyle'#11#17'csAcceptsControls'#0#10'ActivePag'
+'e'#7#12'GradTabPage5'#16'OnTabButtonClick'#7#29'GradTabControl2TabButtonCli'
+'ck'#9'PageIndex'#2#1#9'TabHeight'#2#25#11'TabPosition'#7#7'tpRight'#0#12'TG'
+'radTabPage'#12'GradTabPage4'#4'Left'#2#2#6'Height'#3'K'#2#3'Top'#2#2#5'Widt'
+'h'#3#218#0#12'ControlState'#11#21'csVisibleSetInLoading'#0#12'ControlStyle'
+#11#17'csAcceptsControls'#14'csCaptureMouse'#13'csClickEvents'#12'csSetCapti'
+'on'#14'csDoubleClicks'#17'csNoDesignVisible'#19'csDesignFixedBounds'#20'csN'
+'oDesignSelectable'#0#10'TabVisible'#8#7'Caption'#6#12'GradTabPage4'#0#8'TSy'
+'nEdit'#8'SynEdit1'#6'Height'#3'K'#2#5'Width'#3#218#0#5'Align'#7#8'alClient'
+#11'Font.Height'#2#12#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'
+#11'ParentColor'#8#8'TabOrder'#2#0#11'Highlighter'#7#10'SynPHPSyn1'#10'Keyst'
+'rokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'
+#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCu'
+'t'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'Shor'
+'tCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'Short'
+'Cut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'Short'
+'Cut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'Short'
+'Cut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'Sho'
+'rtCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'Sh'
+'ortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'S'
+'hortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'Sh'
+'ortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'S'
,'hortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'Sh'
+'ortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'S'
+'hortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'Sh'
+'ortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'S'
+'hortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201
+#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3
+#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman'
+'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7
+'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8
+#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1
+#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3
+#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
+'nd'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7
+'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X'
+'@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC'
+'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S'
+'hortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1
+#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3
+'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Comman'
+'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C'
+'ommand'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1
+#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'
+#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3
+'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu'
+'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh'
+'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1
+#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3
+#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
+'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7
+'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'
+#0#0#13'Lines.Strings'#1#6#2'<?'#6#0#6#14'echo "string";'#6#0#6#2'?>'#0#0#0#0
+#12'TGradTabPage'#12'GradTabPage5'#4'Left'#2#2#6'Height'#3#238#1#3'Top'#2#2#5
+'Width'#3#218#0#12'ControlState'#11#21'csVisibleSetInLoading'#0#12'ControlSt'
+'yle'#11#17'csAcceptsControls'#14'csCaptureMouse'#13'csClickEvents'#12'csSet'
+'Caption'#14'csDoubleClicks'#19'csDesignFixedBounds'#0#9'PageIndex'#2#1#7'Ca'
+'ption'#6#12'GradTabPage5'#15'ShowCloseButton'#9#0#11'TStringGrid'#11'String'
+'Grid1'#6'Height'#3#238#1#5'Width'#3#218#0#5'Align'#7#8'alClient'#8'ColCount'
+#2#5#14'ExtendedSelect'#9#10'FixedColor'#7#9'clBtnFace'#7'Options'#11#15'goF'
+'ixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRangeS'
+'elect'#14'goSmoothScroll'#0#8'RowCount'#2#5#8'TabOrder'#2#0#0#0#0#0#15'TGra'
+'dTabControl'#15'GradTabControl3'#4'Left'#3'p'#2#6'Height'#3#242#1#3'Top'#2#1
+#5'Width'#3#134#0#5'Align'#7#7'alRight'#12'ControlStyle'#11#17'csAcceptsCont'
+'rols'#0#10'ActivePage'#7#12'GradTabPage7'#9'PageIndex'#2#1#9'TabHeight'#2#30
+#11'TabPosition'#7#6'tpLeft'#0#12'TGradTabPage'#12'GradTabPage6'#4'Left'#2' '
+#6'Height'#3'K'#2#3'Top'#2#2#5'Width'#2'd'#12'ControlState'#11#21'csVisibleS'
+'etInLoading'#0#12'ControlStyle'#11#17'csAcceptsControls'#14'csCaptureMouse'
+#13'csClickEvents'#12'csSetCaption'#14'csDoubleClicks'#17'csNoDesignVisible'
+#19'csDesignFixedBounds'#20'csNoDesignSelectable'#0#7'Caption'#6#12'GradTabP'
+'age6'#15'ShowCloseButton'#9#0#0#12'TGradTabPage'#12'GradTabPage7'#4'Left'#2
+' '#6'Height'#3#238#1#3'Top'#2#2#5'Width'#2'd'#12'ControlState'#11#21'csVisi'
+'bleSetInLoading'#0#12'ControlStyle'#11#17'csAcceptsControls'#14'csCaptureMo'
+'use'#13'csClickEvents'#12'csSetCaption'#14'csDoubleClicks'#19'csDesignFixed'
+'Bounds'#0#9'PageIndex'#2#1#7'Caption'#6#12'GradTabPage7'#0#0#0#0#6'TPanel'#6
+'Panel2'#4'Left'#3#252#2#6'Height'#3#244#1#5'Width'#3#134#0#5'Align'#7#8'alC'
+'lient'#7'Caption'#6#6'Panel2'#12'ClientHeight'#3#244#1#11'ClientWidth'#3#134
+#0#8'TabOrder'#2#2#0#9'TComboBox'#9'ComboBox1'#4'Left'#2#16#6'Height'#2#21#3
+'Top'#2#16#5'Width'#2'd'#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'
+#20'cbactSearchAscending'#0#10'ItemHeight'#2#13#8'OnChange'#7#15'ComboBox1Ch'
+'ange'#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#0#0#0#11'TGradButton'#11
+'GradButton3'#4'Left'#2#16#6'Height'#2#25#3'Top'#2'0'#5'Width'#2'd'#7'OnClic'
+'k'#7#16'GradButton3Click'#8'TabOrder'#2#1#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'?'#7'Caption'
+#6#3'Add'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'
,#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtn'
+'Face'#11'BorderSides'#11#9'bsTopLine'#12'bsBottomLine'#10'bsLeftLine'#11'bs'
+'RightLine'#0#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10
+'ClickColor'#7#6'clBlue'#0#0#11'TGradButton'#11'GradButton4'#4'Left'#2#16#6
+'Height'#2#25#3'Top'#2'p'#5'Width'#2'd'#7'OnClick'#7#16'GradButton4Click'#8
+'TabOrder'#2#2#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'Ove'
+'rBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#7'Caption'#6#6'Delete'#9'BaseColor'
+#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverB'
+'lendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#11'BorderSides'
+#11#9'bsTopLine'#12'bsBottomLine'#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFo'
+'cusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlu'
+'e'#0#0#11'TGradButton'#11'GradButton2'#4'Left'#2#16#6'Height'#2#25#3'Top'#2
+'P'#5'Width'#2'd'#7'OnClick'#7#16'GradButton2Click'#8'TabOrder'#2#3#7'TabSto'
+'p'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12
+#2'+'#167#254'?'#7'Caption'#6#15'Add Custom Page'#9'BaseColor'#7#6'clBlue'#5
+'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8
+'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#11'BorderSides'#11#9'bsTopLine'
+#12'bsBottomLine'#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBorder'#9#20
+'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0#11'TRadio'
+'Group'#11'RadioGroup1'#4'Left'#2#16#6'Height'#2'q'#3'Top'#3#152#0#5'Width'#2
+'d'#8'AutoFill'#9#7'Caption'#6#12'Tab Position'#28'ChildSizing.LeftRightSpac'
+'ing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizon'
+'tal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'cr'
+'sHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChild'
+'s'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layou'
+'t'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1
+#12'ClientHeight'#2'_'#11'ClientWidth'#2'`'#9'ItemIndex'#2#0#13'Items.String'
+'s'#1#6#5'tpTop'#6#8'tpBottom'#6#6'tpLeft'#6#7'tpRight'#0#7'OnClick'#7#16'Ra'
+'dioGroup1Click'#8'TabOrder'#2#4#0#0#9'TCheckBox'#9'CheckBox1'#4'Left'#2#15#6
+'Height'#2#19#3'Top'#3#20#1#5'Width'#2'K'#7'Caption'#6#9'Long Tabs'#7'OnClic'
+'k'#7#14'CheckBox1Click'#8'TabOrder'#2#5#0#0#9'TSpinEdit'#9'SpinEdit1'#4'Lef'
+'t'#2'_'#6'Height'#2#19#3'Top'#3#20#1#5'Width'#2'"'#8'MaxValue'#2'2'#13'OnEd'
+'itingDone'#7#20'SpinEdit1EditingDone'#8'TabOrder'#2#6#5'Value'#2'2'#0#0#6'T'
+'Arrow'#6'Arrow1'#4'Left'#2#31#6'Height'#2#10#3'Top'#3#200#1#5'Width'#2#10#0
+#0#11'TGradButton'#11'GradButton5'#4'Left'#2#23#6'Height'#2#24#3'Top'#3'X'#1
+#5'Width'#2#21#9'Font.Name'#6#6'System'#10'Font.Style'#11#6'fsBold'#0#8'TabO'
+'rder'#2#8#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBle'
+'nd'#5'5^'#186'I'#12#2'+'#167#254'?'#7'Caption'#6#1'X'#9'BaseColor'#7#9'clBt'
+'nFace'#5'Color'#7#9'clBtnFace'#16'NormalBlendColor'#7#9'clBtnFace'#14'OverB'
+'lendColor'#7#7'clWhite'#15'BackgroundColor'#7#9'clBtnFace'#9'AutoWidth'#9#11
+'BorderSides'#11#9'bsTopLine'#12'bsBottomLine'#10'bsLeftLine'#11'bsRightLine'
+#0#15'ShowFocusBorder'#9#15'RotateDirection'#7#7'rdRight'#20'GlyphBackground'
+'Color'#7#7'clWhite'#10'ClickColor'#7#9'clBtnFace'#0#0#10'TScrollBox'#10'Scr'
+'ollBox1'#4'Left'#2#222#6'Height'#3#150#0#3'Top'#3#144#1#5'Width'#3#150#0#18
+'HorzScrollBar.Page'#3#145#0#18'VertScrollBar.Page'#3#145#0#10'AutoScroll'#8
+#8'TabOrder'#2#9#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3#247#2#6'Height'#3
+#244#1#5'Width'#2#5#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3#222#2#3'top'
+#3#141#1#0#9'TMenuItem'#9'MenuItem1'#7'Caption'#6#9'New Item1'#0#0#0#10'TSyn'
+'PHPSyn'#10'SynPHPSyn1'#13'DefaultFilter'#6'CPHP-Dateien (*.php,*.php3,*.pht'
+'ml,*.inc)|*.php;*.php3;*.phtml;*.inc'#7'Enabled'#8#4'left'#2's'#3'top'#3#255
+#0#0#0#0
]);

View File

@ -0,0 +1,399 @@
unit Unit1;
{$mode objfpc}{$H+}
(*
ich denke mal das beste wäre erstmal die TGradTabPages mit der TGradTabControl
richtig zu "verlinken", ich habe auch noch ne TabListe hinzufügt diese müsste man dann auch noch
bei der TGradTabPages einbauen damit die Tabs schon mal automatisch erstellt und
gelöscht werden ^^
ToDo:
- TGradTabBar & TGradTabPagesBar mit sortieren von Tabs "ausstatten"
- TabPosition einbauen, sowie das zeichnen und anordnen der Tabs/Pages ändern
- CurrentPage-Button ohne Abstand
- IDE Testen hoffe es geht *g*
Danach:
- Eigene Page Classen zu ordnen ( bräuchte ich zumindest ^^ ) - Feddich
- Tabs disable-n
- noch welche Wünsche? xD
- Testen testen testen und voila wir haben eine neue komponente :D
- Irgendwann mal eine TGradDrawer klasse um mehre
*)
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
ugradbtn, StdCtrls, ComCtrls, LCLType, LCLProc, Buttons, ugradtabcontrol,
Menus, Spin, ButtonPanel,
MaskEdit, DBGrids, DbCtrls, EditBtn, Arrow,
SynHighlighterPHP, Grids, SynEdit;
type
TTryOutPage = class(TGradTabPage)
end;
{ TForm1 }
TForm1 = class(TForm)
Arrow1: TArrow;
CheckBox1: TCheckBox;
ComboBox1: TComboBox;
Edit1: TEdit;
GradButton1: TGradButton;
GradButton2: TGradButton;
GradButton3: TGradButton;
GradButton4: TGradButton;
GradButton5: TGradButton;
GradTabControl1: TGradTabControl;
GradTabControl2: TGradTabControl;
GradTabControl3: TGradTabControl;
GradTabPage1: TGradTabPage;
GradTabPage2: TGradTabPage;
GradTabPage3: TGradTabPage;
GradTabPage4: TGradTabPage;
GradTabPage5: TGradTabPage;
GradTabPage6: TGradTabPage;
GradTabPage7: TGradTabPage;
Memo1: TMemo;
MenuItem1: TMenuItem;
Panel1: TPanel;
Panel2: TPanel;
PopupMenu1: TPopupMenu;
RadioGroup1: TRadioGroup;
ScrollBox1: TScrollBox;
SpinEdit1: TSpinEdit;
Splitter1: TSplitter;
StringGrid1: TStringGrid;
SynEdit1: TSynEdit;
SynPHPSyn1: TSynPHPSyn;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure GradButton1Click(Sender: TObject);
procedure GradButton1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure GradButton1MouseEnter(Sender: TObject);
procedure GradButton1MouseLeave(Sender: TObject);
procedure GradButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure GradButton1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure GradButton2Click(Sender: TObject);
procedure GradButton3Click(Sender: TObject);
procedure GradButton4Click(Sender: TObject);
procedure GradTabControl1TabButtonClick(GradTabControl: TGradTabControl;
AIndex: Integer);
procedure GradTabControl1TabButtonMouseUp(GradTabControl: TGradTabControl;
Button: TMouseButton; Shift: TShiftState; X, Y, AIndex: Integer);
procedure GradTabControl2TabButtonClick(GradTabControl: TGradTabControl;
AIndex: Integer);
procedure RadioGroup1Click(Sender: TObject);
procedure SpinEdit1EditingDone(Sender: TObject);
//procedure FormPaint(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
//GradTabControl1 : TGradTabControl;
FControlWidth : Integer;
FLastIndex : Integer;
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
var
TestPage : TGradTabPage;
begin
{ GradTabControl1 := TGradTabControl.Create(nil);
with GradTabControl1 do
begin
ControlStyle:=ControlStyle+[csAcceptsControls];
Top := 1;
Left := 1;
Width := 400;
Height := 400;
Parent := Panel1;
Anchors:=[akLeft,akTop];
Align:=alClient;
//BorderStyle:=bsSingle;
end; }
GradTabControl1.Align:=alClient;
GradTabControl1.TabPosition:=tpTop;
{ with TGradButton.Create(GradTabControl1) do
begin
Top := 0;
Height:=30;
Left := 2;
Caption := 'Tab1';
Name := 'Tab1';
Parent := GradTabControl1;
BorderSides:=BorderSides-[bsBottomLine];
OnClick:=@GradTabControl1.TabButtonClick;
end;
with TGradButton.Create(GradTabControl1) do
begin
Top := 3;
Height:=27;
Left := 82;
Caption := 'Tab2';
Name := 'Tab2';
Parent := GradTabControl1;
Color := clGreen;
BorderSides:=BorderSides-[bsBottomLine];
OnClick:=@GradTabControl1.TabButtonClick;
end;
with TGradTabPage.Create(GradTabControl1) do
begin
Name := 'page1';
Left := 2;
Top := 32;
Width:=496;
Height:=466;
Color:=clBlue;
Parent:=GradTabControl1;
Align:=alClient;
end;
with TGradTabPage.Create(GradTabControl1) do
begin
Name := 'page2';
Left := 2;
Top := 32;
Width:=496;
Height:=466;
Color:=clGreen;
Visible:=false;
Parent:=GradTabControl1;
Align:=alClient;
end; }
{WriteLn(GradTabControl1.Tabs.Add('tab_0'));
ComboBox1.Items.Add('tab_0');
WriteLn(GradTabControl1.Tabs.Add('tab_1'));
ComboBox1.Items.Add('tab_1');
}//WriteLn(GradTabControl1.Tabs.Add('BLA2'));
{
GradButton3.PopupMenu := PopupMenu1;
WriteLn(BoolToStr(GradTabControl1.Pages[0] <> nil,true));
GradButton1.Parent := GradTabControl1.Pages[0];
BitBtn1.Parent := GradTabControl1.Pages[0];
}
//GradButton3Click(GradButton3);
//GradButton3Click(GradButton3);
{TestPage := TGradTabPage(GradTabControl1.PageList.Items[0]);
Memo1.Lines.Add(TestPage.Name+' '+TestPage.Caption);
//GradTabControl1.Tabs.Text:='a';
Memo1.Parent := GradTabControl1.Pages[0];
Memo1.Align:=alClient;
Memo1.Lines.Add(TestPage.Name+' '+TestPage.Caption);
}
{TestPage.Name:='GradTabPage1';
TestPage.Caption:='GradTabPage1';
TestPage.Parent := GradTabControl1;
}
//ComboBox1.Items.AddStrings(GradTabControl1.Tabs);
//ComboBox1.Items.Add('a');
//ComboBox1.Items.Add('GradTabPage1');
FControlWidth:=247;
FLastIndex:=1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
(GradTabControl1.ControlByName('page1') as TGradTabPage).Align:=alClient;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
GradTabControl1.Tabs.Add('No2');
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
GradTabControl1.LongWidth:=SpinEdit1.Value;
GradTabControl1.LongTabs:=CheckBox1.Checked;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
GradTabControl1.CurrentPageNum:=GradTabControl1.Tabs.IndexOf(ComboBox1.Text);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
GradTabControl1.Free;
end;
procedure TForm1.GradButton1Click(Sender: TObject);
begin
end;
procedure TForm1.GradButton1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
end;
procedure TForm1.GradButton1MouseEnter(Sender: TObject);
begin
end;
procedure TForm1.GradButton1MouseLeave(Sender: TObject);
begin
end;
procedure TForm1.GradButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
end;
procedure TForm1.GradButton1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
end;
procedure TForm1.GradButton2Click(Sender: TObject);
var
C : Integer;
begin
with TTryOutPage.Create(Self) do
begin
Parent := GradTabControl1;
C := PageIndex;
end;
ComboBox1.ItemIndex:=ComboBox1.Items.Add('Custom_'+IntToStr(GradTabControl1.Tabs.Count-1));
WriteLn('CustomIndex: ', IntToStr(C));
GradTabControl1.Pages[C].Color:=clRed;
GradTabControl1.Pages[C].Caption:=ComboBox1.Text; //WICHTIG, eine Caption muss für
//die Eigenschaft Tabs gesetzt werden!
GradTabControl1.Pages[C].TabPopupMenu := PopupMenu1;
GradTabControl1.Pages[C].PopupMenu:= PopupMenu1;
end;
procedure TForm1.GradButton3Click(Sender: TObject);
var
C,R,G,B : Integer;
begin
C := GradTabControl1.Tabs.Count;
GradTabControl1.Tabs.Add('tab_'+IntToStr(C));
Randomize;
R := Random(255)+1;
G := Random(255)+1;
B := Random(255)+1;
//WriteLn(R, ' ', G, ' ', B, ColorToString(RGBToColor(R,G,B)));
GradTabControl1.CurrentPage.Caption:='tab_'+IntToStr(C);
GradTabControl1.CurrentPage.Color:=RGBToColor(R, G, B);
GradTabControl1.CurrentPage.TabPopupMenu := PopupMenu1;
GradTabControl1.CurrentPage.PopupMenu:= PopupMenu1;
ComboBox1.ItemIndex:=ComboBox1.Items.Add('tab_'+IntToStr(C));
end;
procedure TForm1.GradButton4Click(Sender: TObject);
begin
if GradTabControl1.Tabs.IndexOf(ComboBox1.Text) <> -1 then
begin
GradTabControl1.Tabs.Delete(GradTabControl1.Tabs.IndexOf(ComboBox1.Text));
ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(ComboBox1.Text));
ComboBox1.ItemIndex:=GradTabControl1.CurrentPageNum;
end;
end;
procedure TForm1.GradTabControl1TabButtonClick(GradTabControl: TGradTabControl;
AIndex: Integer);
begin
ShowMessage('TabClicked: Index: '+IntToStr(AIndex)+' Caption: '+GradTabControl.Page[AIndex].Caption);
end;
procedure TForm1.GradTabControl1TabButtonMouseUp(
GradTabControl: TGradTabControl; Button: TMouseButton; Shift: TShiftState; X,
Y, AIndex: Integer);
begin
ShowMessage('TabMouseUp: Index: '+IntToStr(AIndex)+' Caption: '+GradTabControl.Page[AIndex].Caption);
if Button=mbMiddle then
begin
//GradTabControl.Tabs.Delete(AIndex);
GradTabControl.Page[AIndex].Free;
end;
end;
procedure TForm1.GradTabControl2TabButtonClick(GradTabControl: TGradTabControl;
AIndex: Integer);
begin
if AIndex = FLastIndex then
begin
if GradTabControl.Width=GradTabControl.TabHeight then
GradTabControl.Width:=FControlWidth
else
GradTabControl.Width:=GradTabControl.TabHeight;
end else begin
GradTabControl.Width:=FControlWidth;
FLastIndex:=AIndex;
end;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: GradTabControl1.TabPosition := tpTop;
1: GradTabControl1.TabPosition := tpBottom;
2: GradTabControl1.TabPosition := tpLeft;
3: GradTabControl1.TabPosition := tpRight;
end;
end;
procedure TForm1.SpinEdit1EditingDone(Sender: TObject);
begin
GradTabControl1.LongWidth:=SpinEdit1.Value;
end;
initialization
{$I unit1.lrs}
end.

View File

@ -0,0 +1,698 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="6"/>
<General>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<Title Value="TGradButton-Demo"/>
<ActiveEditorIndexAtStart Value="2"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="3">
<Item1>
<PackageName Value="ImagesForLazarus"/>
</Item1>
<Item2>
<PackageName Value="gradbutton"/>
<MinVersion Valid="True"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</RequiredPackages>
<Units Count="92">
<Unit0>
<Filename Value="gradbuttontest.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="gradbuttontest"/>
<CursorPos X="71" Y="11"/>
<TopLine Value="1"/>
<EditorIndex Value="0"/>
<UsageCount Value="166"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
<Filename Value="main.pas"/>
<ComponentName Value="Form1"/>
<ResourceFilename Value="main.lrs"/>
<UnitName Value="main"/>
<CursorPos X="26" Y="19"/>
<TopLine Value="1"/>
<UsageCount Value="48"/>
</Unit1>
<Unit2>
<Filename Value="Forms\main.pas"/>
<ComponentName Value="Form1"/>
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Forms\main.lrs"/>
<UnitName Value="main"/>
<CursorPos X="10" Y="4"/>
<TopLine Value="1"/>
<EditorIndex Value="2"/>
<UsageCount Value="166"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
<Filename Value="tableaddfrm.lrs"/>
<CursorPos X="1" Y="44"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<Filename Value="tableaddfrm.lfm"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
<SyntaxHighlighter Value="LFM"/>
</Unit4>
<Unit5>
<Filename Value="PageExtControl.pas"/>
<UnitName Value="PageExtControl"/>
<CursorPos X="66" Y="138"/>
<TopLine Value="49"/>
<UsageCount Value="9"/>
</Unit5>
<Unit6>
<Filename Value="GradBtn.pas"/>
<UnitName Value="Gradbtn"/>
<CursorPos X="9" Y="278"/>
<TopLine Value="252"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<Filename Value="..\..\..\fpc\2.2.0\source\rtl\win\wininc\messages.inc"/>
<CursorPos X="6" Y="1040"/>
<TopLine Value="8"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<Filename Value="..\..\..\lcl\forms.pp"/>
<UnitName Value="Forms"/>
<CursorPos X="19" Y="480"/>
<TopLine Value="467"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<Filename Value="..\..\..\lcl\lmessages.pp"/>
<UnitName Value="LMessages"/>
<CursorPos X="15" Y="415"/>
<TopLine Value="389"/>
<UsageCount Value="3"/>
</Unit9>
<Unit10>
<Filename Value="..\..\..\lcl\graphics.pp"/>
<UnitName Value="Graphics"/>
<CursorPos X="16" Y="973"/>
<TopLine Value="958"/>
<UsageCount Value="2"/>
</Unit10>
<Unit11>
<Filename Value="..\..\lazgradient\gradient.pas"/>
<UnitName Value="Gradient"/>
<CursorPos X="1" Y="130"/>
<TopLine Value="202"/>
<UsageCount Value="10"/>
</Unit11>
<Unit12>
<Filename Value="..\..\..\fpc\2.2.0\source\rtl\objpas\math.pp"/>
<UnitName Value="math"/>
<CursorPos X="18" Y="69"/>
<TopLine Value="12"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="Units\ugradbtn.pas"/>
<UnitName Value="ugradbtn"/>
<CursorPos X="56" Y="277"/>
<TopLine Value="251"/>
<UsageCount Value="49"/>
</Unit13>
<Unit14>
<Filename Value="..\..\..\lcl\extctrls.pp"/>
<UnitName Value="ExtCtrls"/>
<CursorPos X="24" Y="1079"/>
<TopLine Value="1026"/>
<UsageCount Value="20"/>
</Unit14>
<Unit15>
<Filename Value="..\..\..\lcl\controls.pp"/>
<UnitName Value="Controls"/>
<CursorPos X="14" Y="1249"/>
<TopLine Value="1234"/>
<UsageCount Value="20"/>
</Unit15>
<Unit16>
<Filename Value="..\..\..\fpc\2.2.0\source\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="54" Y="110"/>
<TopLine Value="95"/>
<UsageCount Value="3"/>
</Unit16>
<Unit17>
<Filename Value="..\..\..\lcl\include\control.inc"/>
<CursorPos X="1" Y="864"/>
<TopLine Value="849"/>
<UsageCount Value="19"/>
</Unit17>
<Unit18>
<Filename Value="..\..\..\lcl\include\customform.inc"/>
<CursorPos X="1" Y="1384"/>
<TopLine Value="1369"/>
<UsageCount Value="2"/>
</Unit18>
<Unit19>
<Filename Value="..\..\..\lcl\include\winapih.inc"/>
<CursorPos X="10" Y="101"/>
<TopLine Value="86"/>
<UsageCount Value="10"/>
</Unit19>
<Unit20>
<Filename Value="..\..\..\lcl\buttons.pp"/>
<UnitName Value="Buttons"/>
<CursorPos X="7" Y="351"/>
<TopLine Value="1"/>
<UsageCount Value="19"/>
</Unit20>
<Unit21>
<Filename Value="..\..\..\lcl\include\speedbutton.inc"/>
<CursorPos X="17" Y="500"/>
<TopLine Value="493"/>
<UsageCount Value="15"/>
</Unit21>
<Unit22>
<Filename Value="..\..\..\lcl\themes.pas"/>
<UnitName Value="Themes"/>
<CursorPos X="10" Y="479"/>
<TopLine Value="119"/>
<UsageCount Value="14"/>
</Unit22>
<Unit23>
<Filename Value="..\..\..\lcl\stdctrls.pp"/>
<UnitName Value="StdCtrls"/>
<CursorPos X="15" Y="119"/>
<TopLine Value="365"/>
<UsageCount Value="2"/>
</Unit23>
<Unit24>
<Filename Value="..\..\..\lcl\include\buttons.inc"/>
<CursorPos X="1" Y="26"/>
<TopLine Value="11"/>
<UsageCount Value="2"/>
</Unit24>
<Unit25>
<Filename Value="..\..\..\lcl\include\bitbtn.inc"/>
<CursorPos X="1" Y="44"/>
<TopLine Value="44"/>
<UsageCount Value="6"/>
</Unit25>
<Unit26>
<Filename Value="..\..\..\lcl\graphtype.pp"/>
<UnitName Value="GraphType"/>
<CursorPos X="14" Y="48"/>
<TopLine Value="30"/>
<UsageCount Value="5"/>
</Unit26>
<Unit27>
<Filename Value="..\..\..\lcl\dialogs.pp"/>
<UnitName Value="Dialogs"/>
<CursorPos X="11" Y="489"/>
<TopLine Value="474"/>
<UsageCount Value="5"/>
</Unit27>
<Unit28>
<Filename Value="Forms\main.lrs"/>
<CursorPos X="1" Y="140"/>
<TopLine Value="110"/>
<UsageCount Value="20"/>
</Unit28>
<Unit29>
<Filename Value="Forms\main.lfm"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<EditorIndex Value="1"/>
<UsageCount Value="47"/>
<Loaded Value="True"/>
<SyntaxHighlighter Value="LFM"/>
</Unit29>
<Unit30>
<Filename Value="..\..\..\lcl\interfaces\win32\interfaces.pp"/>
<UnitName Value="Interfaces"/>
<CursorPos X="54" Y="11"/>
<TopLine Value="1"/>
<UsageCount Value="5"/>
</Unit30>
<Unit31>
<Filename Value="..\..\..\lcl\include\wincontrol.inc"/>
<CursorPos X="25" Y="5894"/>
<TopLine Value="5879"/>
<UsageCount Value="3"/>
</Unit31>
<Unit32>
<Filename Value="..\..\..\fpc\2.2.0\source\rtl\inc\systemh.inc"/>
<CursorPos X="14" Y="87"/>
<TopLine Value="72"/>
<UsageCount Value="3"/>
</Unit32>
<Unit33>
<Filename Value="..\..\..\lcl\lcltype.pp"/>
<UnitName Value="LCLType"/>
<CursorPos X="3" Y="1114"/>
<TopLine Value="7"/>
<UsageCount Value="4"/>
</Unit33>
<Unit34>
<Filename Value="..\..\..\fpc\2.2.0\source\rtl\win32\windows.pp"/>
<UnitName Value="windows"/>
<CursorPos X="8" Y="33"/>
<TopLine Value="15"/>
<UsageCount Value="3"/>
</Unit34>
<Unit35>
<Filename Value="..\..\..\fpc\2.2.0\source\rtl\win\wininc\defines.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="265"/>
<UsageCount Value="3"/>
</Unit35>
<Unit36>
<Filename Value="..\..\..\lcl\comctrls.pp"/>
<UnitName Value="ComCtrls"/>
<CursorPos X="5" Y="2676"/>
<TopLine Value="2654"/>
<UsageCount Value="5"/>
</Unit36>
<Unit37>
<Filename Value="..\..\..\lcl\include\trackbar.inc"/>
<CursorPos X="3" Y="296"/>
<TopLine Value="48"/>
<UsageCount Value="5"/>
</Unit37>
<Unit38>
<Filename Value="..\..\..\lcl\widgetset\wscomctrls.pp"/>
<UnitName Value="WSComCtrls"/>
<CursorPos X="1" Y="481"/>
<TopLine Value="484"/>
<UsageCount Value="3"/>
</Unit38>
<Unit39>
<Filename Value="..\gradbutton.pas"/>
<UnitName Value="gradbutton"/>
<CursorPos X="21" Y="10"/>
<TopLine Value="1"/>
<UsageCount Value="38"/>
</Unit39>
<Unit40>
<Filename Value="..\..\..\lcl\colorbox.pas"/>
<UnitName Value="ColorBox"/>
<CursorPos X="1" Y="194"/>
<TopLine Value="341"/>
<UsageCount Value="4"/>
</Unit40>
<Unit41>
<Filename Value="..\ugradbtn.pas"/>
<UnitName Value="ugradbtn"/>
<CursorPos X="19" Y="797"/>
<TopLine Value="789"/>
<UsageCount Value="63"/>
</Unit41>
<Unit42>
<Filename Value="..\..\..\packager\registration\lazaruspackageintf.pas"/>
<UnitName Value="LazarusPackageIntf"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="52"/>
<UsageCount Value="3"/>
</Unit42>
<Unit43>
<Filename Value="..\..\..\SVN\lcl\comctrls.pp"/>
<UnitName Value="ComCtrls"/>
<CursorPos X="10" Y="1435"/>
<TopLine Value="1435"/>
<UsageCount Value="33"/>
</Unit43>
<Unit44>
<Filename Value="..\..\..\SVN\fpc\2.2.3\source\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="15" Y="32"/>
<TopLine Value="21"/>
<UsageCount Value="33"/>
</Unit44>
<Unit45>
<Filename Value="..\..\..\SVN\fpc\2.2.3\source\rtl\objpas\types.pp"/>
<UnitName Value="types"/>
<CursorPos X="10" Y="279"/>
<TopLine Value="251"/>
<UsageCount Value="19"/>
</Unit45>
<Unit46>
<Filename Value="..\..\..\SVN\lcl\graphics.pp"/>
<UnitName Value="Graphics"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="45"/>
</Unit46>
<Unit47>
<Filename Value="silkicons.lrs"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="27"/>
</Unit47>
<Unit48>
<Filename Value="..\..\..\SVN\lcl\include\graphic.inc"/>
<CursorPos X="17" Y="19"/>
<TopLine Value="4"/>
<UsageCount Value="25"/>
</Unit48>
<Unit49>
<Filename Value="..\..\..\SVN\components\images\lazpng.pas"/>
<UnitName Value="LazPNG"/>
<CursorPos X="22" Y="27"/>
<TopLine Value="1"/>
<UsageCount Value="25"/>
</Unit49>
<Unit50>
<Filename Value="..\..\..\SVN\lcl\buttons.pp"/>
<UnitName Value="Buttons"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="35"/>
</Unit50>
<Unit51>
<Filename Value="..\..\..\SVN\lcl\include\bitbtn.inc"/>
<CursorPos X="1" Y="21"/>
<TopLine Value="42"/>
<UsageCount Value="29"/>
</Unit51>
<Unit52>
<Filename Value="..\..\..\SVN\lcl\controls.pp"/>
<UnitName Value="Controls"/>
<CursorPos X="28" Y="1848"/>
<TopLine Value="1829"/>
<UsageCount Value="34"/>
</Unit52>
<Unit53>
<Filename Value="..\..\..\SVN\lcl\imglist.pp"/>
<UnitName Value="ImgList"/>
<CursorPos X="15" Y="179"/>
<TopLine Value="164"/>
<UsageCount Value="28"/>
</Unit53>
<Unit54>
<Filename Value="..\..\..\SVN\lcl\graphtype.pp"/>
<UnitName Value="GraphType"/>
<CursorPos X="5" Y="53"/>
<TopLine Value="24"/>
<UsageCount Value="28"/>
</Unit54>
<Unit55>
<Filename Value="..\..\..\SVN\lcl\arrow.pp"/>
<UnitName Value="Arrow"/>
<CursorPos X="20" Y="133"/>
<TopLine Value="115"/>
<UsageCount Value="20"/>
</Unit55>
<Unit56>
<Filename Value="..\..\..\SVN\components\virtualtrees-4.0.17.26\virtualtrees.pas"/>
<UnitName Value="VirtualTrees"/>
<CursorPos X="80" Y="1815"/>
<TopLine Value="1802"/>
<UsageCount Value="5"/>
</Unit56>
<Unit57>
<Filename Value="..\..\..\SVN\fpc\2.2.3\source\packages\libpng\src\png.pp"/>
<UnitName Value="png"/>
<CursorPos X="1" Y="612"/>
<TopLine Value="612"/>
<UsageCount Value="6"/>
</Unit57>
<Unit58>
<Filename Value="..\..\..\SVN\fpc\2.2.3\source\packages\fcl-image\src\pngcomn.pp"/>
<UnitName Value="PNGcomn"/>
<CursorPos X="17" Y="20"/>
<TopLine Value="2"/>
<UsageCount Value="6"/>
</Unit58>
<Unit59>
<Filename Value="..\..\..\SVN\fpc\2.2.3\source\packages\fcl-image\src\fpimage.pp"/>
<UnitName Value="FPimage"/>
<CursorPos X="1" Y="82"/>
<TopLine Value="82"/>
<UsageCount Value="6"/>
</Unit59>
<Unit60>
<Filename Value="..\..\..\SVN\lcl\include\picture.inc"/>
<CursorPos X="14" Y="364"/>
<TopLine Value="358"/>
<UsageCount Value="26"/>
</Unit60>
<Unit61>
<Filename Value="..\..\..\SVN\lcl\include\imglist.inc"/>
<CursorPos X="40" Y="550"/>
<TopLine Value="529"/>
<UsageCount Value="13"/>
</Unit61>
<Unit62>
<Filename Value="..\..\..\SVN\lcl\include\control.inc"/>
<CursorPos X="3" Y="4276"/>
<TopLine Value="4267"/>
<UsageCount Value="13"/>
</Unit62>
<Unit63>
<Filename Value="..\..\..\SVN\components\zeos\src\component\ZAbstractRODataset.pas"/>
<UnitName Value="ZAbstractRODataset"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit63>
<Unit64>
<Filename Value="..\..\..\SVN\fpc\2.3.1\packages\fcl-db\src\base\db.pas"/>
<UnitName Value="db"/>
<CursorPos X="50" Y="110"/>
<TopLine Value="95"/>
<UsageCount Value="10"/>
</Unit64>
<Unit65>
<Filename Value="..\..\..\SVN\ide\lazarus.pp"/>
<UnitName Value="Lazarus"/>
<CursorPos X="1" Y="43"/>
<TopLine Value="22"/>
<UsageCount Value="10"/>
</Unit65>
<Unit66>
<Filename Value="..\..\..\SVN\lcl\lresources.pp"/>
<UnitName Value="LResources"/>
<CursorPos X="1" Y="2855"/>
<TopLine Value="2840"/>
<UsageCount Value="12"/>
</Unit66>
<Unit67>
<Filename Value="..\urotatebitmap.pas"/>
<UnitName Value="urotatebitmap"/>
<CursorPos X="5" Y="129"/>
<TopLine Value="127"/>
<UsageCount Value="17"/>
</Unit67>
<Unit68>
<Filename Value="..\..\..\SVN\ide\sourceeditor.pp"/>
<ComponentName Value="SourceNotebook"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="SourceEditor"/>
<CursorPos X="5" Y="6318"/>
<TopLine Value="6318"/>
<UsageCount Value="9"/>
</Unit68>
<Unit69>
<Filename Value="..\..\..\SVN\components\synedit\synedit.pp"/>
<UnitName Value="SynEdit"/>
<CursorPos X="14" Y="821"/>
<TopLine Value="806"/>
<UsageCount Value="9"/>
</Unit69>
<Unit70>
<Filename Value="..\..\..\SVN\lcl\intfgraphics.pas"/>
<UnitName Value="IntfGraphics"/>
<CursorPos X="1" Y="3157"/>
<TopLine Value="3142"/>
<UsageCount Value="9"/>
</Unit70>
<Unit71>
<Filename Value="..\..\..\SVN\lcl\stdctrls.pp"/>
<UnitName Value="StdCtrls"/>
<CursorPos X="3" Y="1022"/>
<TopLine Value="1037"/>
<UsageCount Value="11"/>
</Unit71>
<Unit72>
<Filename Value="..\..\..\SVN\lcl\include\buttoncontrol.inc"/>
<CursorPos X="3" Y="69"/>
<TopLine Value="67"/>
<UsageCount Value="9"/>
</Unit72>
<Unit73>
<Filename Value="..\..\..\SVN\lcl\include\buttons.inc"/>
<CursorPos X="26" Y="243"/>
<TopLine Value="243"/>
<UsageCount Value="14"/>
</Unit73>
<Unit74>
<Filename Value="..\..\..\SVN\lcl\include\speedbutton.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="14"/>
</Unit74>
<Unit75>
<Filename Value="..\..\..\SVN\fpc\2.3.1\rtl\win\sysutils.pp"/>
<UnitName Value="sysutils"/>
<CursorPos X="9" Y="34"/>
<TopLine Value="16"/>
<UsageCount Value="10"/>
</Unit75>
<Unit76>
<Filename Value="..\..\..\SVN\fpc\2.3.1\rtl\win32\windows.pp"/>
<UnitName Value="windows"/>
<CursorPos X="8" Y="33"/>
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit76>
<Unit77>
<Filename Value="..\..\..\SVN\fpc\2.3.1\rtl\win\wininc\base.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="478"/>
<UsageCount Value="10"/>
</Unit77>
<Unit78>
<Filename Value="..\..\..\SVN\fpc\2.3.1\rtl\objpas\sysutils\sysutilh.inc"/>
<CursorPos X="39" Y="242"/>
<TopLine Value="241"/>
<UsageCount Value="10"/>
</Unit78>
<Unit79>
<Filename Value="..\..\..\SVN\lcl\include\wincontrol.inc"/>
<CursorPos X="5" Y="4915"/>
<TopLine Value="4901"/>
<UsageCount Value="11"/>
</Unit79>
<Unit80>
<Filename Value="..\..\..\SVN\lcl\include\winapih.inc"/>
<CursorPos X="15" Y="211"/>
<TopLine Value="196"/>
<UsageCount Value="11"/>
</Unit80>
<Unit81>
<Filename Value="..\..\..\SVN\lcl\include\intfbasewinapi.inc"/>
<CursorPos X="3" Y="1394"/>
<TopLine Value="1392"/>
<UsageCount Value="11"/>
</Unit81>
<Unit82>
<Filename Value="..\..\..\SVN\lcl\themes.pas"/>
<UnitName Value="Themes"/>
<CursorPos X="8" Y="451"/>
<TopLine Value="451"/>
<UsageCount Value="10"/>
</Unit82>
<Unit83>
<Filename Value="..\..\..\SVN\lcl\include\buttonglyph.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="13"/>
</Unit83>
<Unit84>
<Filename Value="..\..\..\SVN\lcl\include\lclintfh.inc"/>
<CursorPos X="30" Y="68"/>
<TopLine Value="53"/>
<UsageCount Value="13"/>
</Unit84>
<Unit85>
<Filename Value="..\..\..\SVN\fpc\2.3.1\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="3" Y="161"/>
<TopLine Value="146"/>
<UsageCount Value="13"/>
</Unit85>
<Unit86>
<Filename Value="..\..\..\SVN\lcl\include\rasterimage.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="11"/>
</Unit86>
<Unit87>
<Filename Value="..\..\..\SVN\components\CCR\components\virtualtreeview\virtualstringtree.pas"/>
<UnitName Value="VirtualStringTree"/>
<CursorPos X="25" Y="375"/>
<TopLine Value="351"/>
<UsageCount Value="11"/>
</Unit87>
<Unit88>
<Filename Value="..\..\..\SVN\components\CCR\components\virtualtreeview\virtualtrees.pas"/>
<UnitName Value="VirtualTrees"/>
<CursorPos X="36" Y="1465"/>
<TopLine Value="1447"/>
<UsageCount Value="11"/>
</Unit88>
<Unit89>
<Filename Value="..\..\..\SVN\ide\ideprocs.pp"/>
<UnitName Value="IDEProcs"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="11"/>
</Unit89>
<Unit90>
<Filename Value="..\..\..\SVN\lcl\avglvltree.pas"/>
<UnitName Value="AvgLvlTree"/>
<CursorPos X="72" Y="190"/>
<TopLine Value="175"/>
<UsageCount Value="10"/>
</Unit90>
<Unit91>
<Filename Value="..\..\..\SVN\fpc\2.3.1\packages\fcl-image\src\fpcanvas.pp"/>
<UnitName Value="FPCanvas"/>
<CursorPos X="3" Y="82"/>
<TopLine Value="73"/>
<UsageCount Value="10"/>
</Unit91>
</Units>
<JumpHistory Count="2" HistoryIndex="1">
<Position1>
<Filename Value="Forms\main.pas"/>
<Caret Line="190" Column="48" TopLine="180"/>
</Position1>
<Position2>
<Filename Value="Forms\main.pas"/>
<Caret Line="75" Column="23" TopLine="60"/>
</Position2>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<OtherUnitFiles Value="Forms\"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Linking>
<Debugging>
<UseHeaptrc Value="True"/>
</Debugging>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</CONFIG>

View File

@ -0,0 +1,19 @@
program gradbuttontest;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms
{ you can add units after this }, main, gradbutton, ImagesForLazarus;
begin
Application.Title:='TGradButton-Demo';
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

View File

@ -0,0 +1,467 @@
<?xml version="1.0"?>
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="6"/>
<General>
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<Title Value="gradcontroltest"/>
<UseAppBundle Value="False"/>
<UseXPManifest Value="True"/>
<ActiveEditorIndexAtStart Value="0"/>
</General>
<VersionInfo>
<UseVersionInfo Value="True"/>
<AutoIncrementBuild Value="True"/>
<CurrentBuildNr Value="490"/>
<ProjectVersion Value="0.0.0.0"/>
</VersionInfo>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
<RequiredPackages Count="5">
<Item1>
<PackageName Value="SynEdit"/>
<MinVersion Major="1" Valid="True"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
<MinVersion Major="1" Valid="True"/>
</Item2>
<Item3>
<PackageName Value="gradtabcontrol"/>
</Item3>
<Item4>
<PackageName Value="gradbutton"/>
<MinVersion Major="1" Minor="2" Valid="True"/>
</Item4>
<Item5>
<PackageName Value="LCL"/>
</Item5>
</RequiredPackages>
<Units Count="58">
<Unit0>
<Filename Value="gradcontroltest.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="gradcontroltest"/>
<CursorPos X="38" Y="19"/>
<TopLine Value="1"/>
<EditorIndex Value="0"/>
<UsageCount Value="144"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
<Filename Value="unit1.pas"/>
<ComponentName Value="Form1"/>
<ResourceBaseClass Value="Form"/>
<ResourceFilename Value="unit1.lrs"/>
<UnitName Value="unit1"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="144"/>
</Unit1>
<Unit2>
<Filename Value="..\..\gradbutton\ugradbtn.pas"/>
<UnitName Value="ugradbtn"/>
<CursorPos X="58" Y="91"/>
<TopLine Value="66"/>
<UsageCount Value="61"/>
</Unit2>
<Unit3>
<Filename Value="..\..\fpc\2.2.3\source\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="19" Y="635"/>
<TopLine Value="606"/>
<UsageCount Value="13"/>
</Unit3>
<Unit4>
<Filename Value="..\testcomp\testcomp.pas"/>
<UnitName Value="testcomp"/>
<CursorPos X="13" Y="53"/>
<TopLine Value="31"/>
<UsageCount Value="16"/>
</Unit4>
<Unit5>
<Filename Value="..\..\lcl\controls.pp"/>
<UnitName Value="Controls"/>
<CursorPos X="14" Y="1271"/>
<TopLine Value="1256"/>
<UsageCount Value="66"/>
</Unit5>
<Unit6>
<Filename Value="unit1.lrs"/>
<CursorPos X="1" Y="50"/>
<TopLine Value="21"/>
<UsageCount Value="15"/>
</Unit6>
<Unit7>
<Filename Value="..\..\lcl\include\control.inc"/>
<CursorPos X="81" Y="3024"/>
<TopLine Value="3009"/>
<UsageCount Value="33"/>
</Unit7>
<Unit8>
<Filename Value="..\..\lcl\include\wincontrol.inc"/>
<CursorPos X="18" Y="5853"/>
<TopLine Value="5834"/>
<UsageCount Value="15"/>
</Unit8>
<Unit9>
<Filename Value="..\..\lcl\graphics.pp"/>
<UnitName Value="Graphics"/>
<CursorPos X="44" Y="985"/>
<TopLine Value="970"/>
<UsageCount Value="19"/>
</Unit9>
<Unit10>
<Filename Value="..\..\lcl\include\canvas.inc"/>
<CursorPos X="80" Y="1529"/>
<TopLine Value="1520"/>
<UsageCount Value="11"/>
</Unit10>
<Unit11>
<Filename Value="..\..\lcl\include\winapih.inc"/>
<CursorPos X="10" Y="122"/>
<TopLine Value="94"/>
<UsageCount Value="13"/>
</Unit11>
<Unit12>
<Filename Value="..\..\fpc\2.2.3\source\rtl\objpas\classes\stringl.inc"/>
<CursorPos X="3" Y="1090"/>
<TopLine Value="1085"/>
<UsageCount Value="13"/>
</Unit12>
<Unit13>
<Filename Value="..\..\lcl\comctrls.pp"/>
<UnitName Value="ComCtrls"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="53"/>
</Unit13>
<Unit14>
<Filename Value="..\..\lcl\extctrls.pp"/>
<UnitName Value="ExtCtrls"/>
<CursorPos X="5" Y="79"/>
<TopLine Value="59"/>
<UsageCount Value="53"/>
</Unit14>
<Unit15>
<Filename Value="..\..\lcl\include\customnotebook.inc"/>
<CursorPos X="3" Y="509"/>
<TopLine Value="507"/>
<UsageCount Value="51"/>
</Unit15>
<Unit16>
<Filename Value="..\..\lcl\lcltype.pp"/>
<UnitName Value="LCLType"/>
<CursorPos X="3" Y="2258"/>
<TopLine Value="2244"/>
<UsageCount Value="18"/>
</Unit16>
<Unit17>
<Filename Value="..\..\lcl\lclproc.pas"/>
<UnitName Value="LCLProc"/>
<CursorPos X="1" Y="790"/>
<TopLine Value="776"/>
<UsageCount Value="43"/>
</Unit17>
<Unit18>
<Filename Value="..\..\lcl\buttons.pp"/>
<UnitName Value="Buttons"/>
<CursorPos X="9" Y="74"/>
<TopLine Value="59"/>
<UsageCount Value="23"/>
</Unit18>
<Unit19>
<Filename Value="..\..\lcl\include\application.inc"/>
<CursorPos X="32" Y="111"/>
<TopLine Value="92"/>
<UsageCount Value="1"/>
</Unit19>
<Unit20>
<Filename Value="..\..\fpc\2.3.1\rtl\objpas\classes\classesh.inc"/>
<CursorPos X="14" Y="542"/>
<TopLine Value="528"/>
<UsageCount Value="35"/>
</Unit20>
<Unit21>
<Filename Value="..\..\fpc\2.3.1\rtl\objpas\classes\lists.inc"/>
<CursorPos X="3" Y="626"/>
<TopLine Value="624"/>
<UsageCount Value="9"/>
</Unit21>
<Unit22>
<Filename Value="..\..\fpc\2.3.1\rtl\inc\systemh.inc"/>
<CursorPos X="16" Y="534"/>
<TopLine Value="521"/>
<UsageCount Value="5"/>
</Unit22>
<Unit23>
<Filename Value="..\..\fpc\2.3.1\rtl\inc\system.inc"/>
<CursorPos X="3" Y="537"/>
<TopLine Value="529"/>
<UsageCount Value="5"/>
</Unit23>
<Unit24>
<Filename Value="ugradtabcontrol.pas"/>
<UnitName Value="ugradtabcontrol"/>
<CursorPos X="17" Y="289"/>
<TopLine Value="278"/>
<UsageCount Value="75"/>
</Unit24>
<Unit25>
<Filename Value="..\..\lcl\menus.pp"/>
<UnitName Value="Menus"/>
<CursorPos X="3" Y="511"/>
<TopLine Value="212"/>
<UsageCount Value="14"/>
</Unit25>
<Unit26>
<Filename Value="..\..\lcl\stdctrls.pp"/>
<UnitName Value="StdCtrls"/>
<CursorPos X="31" Y="983"/>
<TopLine Value="980"/>
<UsageCount Value="14"/>
</Unit26>
<Unit27>
<Filename Value="..\..\lcl\include\buttons.inc"/>
<CursorPos X="21" Y="26"/>
<TopLine Value="10"/>
<UsageCount Value="14"/>
</Unit27>
<Unit28>
<Filename Value="..\..\lcl\include\custompage.inc"/>
<CursorPos X="1" Y="58"/>
<TopLine Value="54"/>
<UsageCount Value="43"/>
</Unit28>
<Unit29>
<Filename Value="..\..\lcl\lresources.pp"/>
<UnitName Value="LResources"/>
<CursorPos X="8" Y="2844"/>
<TopLine Value="2841"/>
<UsageCount Value="18"/>
</Unit29>
<Unit30>
<Filename Value="..\..\lcl\include\pagecontrol.inc"/>
<CursorPos X="3" Y="53"/>
<TopLine Value="111"/>
<UsageCount Value="38"/>
</Unit30>
<Unit31>
<Filename Value="..\..\lcl\include\tabsheet.inc"/>
<CursorPos X="18" Y="44"/>
<TopLine Value="16"/>
<UsageCount Value="43"/>
</Unit31>
<Unit32>
<Filename Value="..\..\lcl\include\statuspanel.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="7"/>
</Unit32>
<Unit33>
<Filename Value="unit1.lfm"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="37"/>
<SyntaxHighlighter Value="LFM"/>
</Unit33>
<Unit34>
<Filename Value="..\..\fpc\2.3.1\rtl\inc\objpash.inc"/>
<CursorPos X="21" Y="184"/>
<TopLine Value="169"/>
<UsageCount Value="15"/>
</Unit34>
<Unit35>
<Filename Value="..\..\lcl\dialogs.pp"/>
<UnitName Value="Dialogs"/>
<CursorPos X="50" Y="621"/>
<TopLine Value="602"/>
<UsageCount Value="6"/>
</Unit35>
<Unit36>
<Filename Value="..\..\lcl\include\promptdialog.inc"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="196"/>
<UsageCount Value="6"/>
</Unit36>
<Unit37>
<Filename Value="..\..\lcl\include\commondialog.inc"/>
<CursorPos X="18" Y="27"/>
<TopLine Value="16"/>
<UsageCount Value="6"/>
</Unit37>
<Unit38>
<Filename Value="..\..\lcl\widgetset\wscomctrls.pp"/>
<UnitName Value="WSComCtrls"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="139"/>
<UsageCount Value="6"/>
</Unit38>
<Unit39>
<Filename Value="..\..\lcl\include\inputdialog.inc"/>
<CursorPos X="10" Y="17"/>
<TopLine Value="77"/>
<UsageCount Value="6"/>
</Unit39>
<Unit40>
<Filename Value="..\..\fpc\2.3.1\rtl\inc\wstringh.inc"/>
<CursorPos X="11" Y="29"/>
<TopLine Value="15"/>
<UsageCount Value="11"/>
</Unit40>
<Unit41>
<Filename Value="..\ComponentWizard\source\Boxes.pas"/>
<UnitName Value="Boxes"/>
<CursorPos X="45" Y="458"/>
<TopLine Value="444"/>
<UsageCount Value="11"/>
</Unit41>
<Unit42>
<Filename Value="..\..\lcl\graphtype.pp"/>
<UnitName Value="GraphType"/>
<CursorPos X="3" Y="45"/>
<TopLine Value="31"/>
<UsageCount Value="11"/>
</Unit42>
<Unit43>
<Filename Value="..\ComponentWizard\source\ccreg.pas"/>
<UnitName Value="ccreg"/>
<CursorPos X="14" Y="73"/>
<TopLine Value="70"/>
<UsageCount Value="11"/>
</Unit43>
<Unit44>
<Filename Value="..\..\fpc\2.3.1\rtl\objpas\classes\compon.inc"/>
<CursorPos X="6" Y="328"/>
<TopLine Value="324"/>
<UsageCount Value="11"/>
</Unit44>
<Unit45>
<Filename Value="..\..\lcl\widgetset\wsextctrls.pp"/>
<UnitName Value="WSExtCtrls"/>
<CursorPos X="1" Y="199"/>
<TopLine Value="188"/>
<UsageCount Value="9"/>
</Unit45>
<Unit46>
<Filename Value="..\..\ideintf\componenteditors.pas"/>
<UnitName Value="ComponentEditors"/>
<CursorPos X="1" Y="789"/>
<TopLine Value="789"/>
<UsageCount Value="33"/>
</Unit46>
<Unit47>
<Filename Value="gradtabcontrol.pas"/>
<UnitName Value="gradtabcontrol"/>
<CursorPos X="56" Y="17"/>
<TopLine Value="1"/>
<UsageCount Value="33"/>
</Unit47>
<Unit48>
<Filename Value="..\..\ideintf\objinspstrconsts.pas"/>
<UnitName Value="ObjInspStrConsts"/>
<CursorPos X="3" Y="158"/>
<TopLine Value="144"/>
<UsageCount Value="8"/>
</Unit48>
<Unit49>
<Filename Value="gradtabcontroleditor.pas"/>
<UnitName Value="gradtabcontroleditor"/>
<CursorPos X="7" Y="205"/>
<TopLine Value="195"/>
<UsageCount Value="33"/>
</Unit49>
<Unit50>
<Filename Value="..\..\ideintf\propedits.pp"/>
<UnitName Value="PropEdits"/>
<CursorPos X="3" Y="1210"/>
<TopLine Value="1196"/>
<UsageCount Value="7"/>
</Unit50>
<Unit51>
<Filename Value="..\..\lcl\include\customcontrol.inc"/>
<CursorPos X="15" Y="61"/>
<TopLine Value="50"/>
<UsageCount Value="7"/>
</Unit51>
<Unit52>
<Filename Value="..\..\fpc\2.3.1\rtl\inc\objpas.inc"/>
<CursorPos X="12" Y="147"/>
<TopLine Value="141"/>
<UsageCount Value="7"/>
</Unit52>
<Unit53>
<Filename Value="..\..\lcl\intfgraphics.pas"/>
<UnitName Value="IntfGraphics"/>
<CursorPos X="1" Y="3149"/>
<TopLine Value="3135"/>
<UsageCount Value="31"/>
</Unit53>
<Unit54>
<Filename Value="..\..\lcl\arrow.pp"/>
<UnitName Value="Arrow"/>
<CursorPos X="17" Y="119"/>
<TopLine Value="103"/>
<UsageCount Value="12"/>
</Unit54>
<Unit55>
<Filename Value="..\..\lcl\interfacebase.pp"/>
<UnitName Value="InterfaceBase"/>
<CursorPos X="3" Y="77"/>
<TopLine Value="66"/>
<UsageCount Value="12"/>
</Unit55>
<Unit56>
<Filename Value="..\..\lcl\include\lclintfh.inc"/>
<CursorPos X="11" Y="68"/>
<TopLine Value="138"/>
<UsageCount Value="12"/>
</Unit56>
<Unit57>
<Filename Value="Forms\unit1.pas"/>
<ComponentName Value="Form1"/>
<HasResources Value="True"/>
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Forms\unit1.lrs"/>
<UnitName Value="Unit1"/>
<CursorPos X="16" Y="31"/>
<TopLine Value="13"/>
<EditorIndex Value="1"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
</Unit57>
</Units>
<JumpHistory Count="1" HistoryIndex="0">
<Position1>
<Filename Value="Forms\unit1.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position1>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<OtherUnitFiles Value="Forms/\"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
</CONFIG>

View File

@ -0,0 +1,22 @@
program gradcontroltest;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms
{ you can add units after this }, gradbutton, gradtabcontrol, unit1;
{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}
{$IFDEF WINDOWS}{$R manifest.rc}{$ENDIF}
begin
Application.Initialize;
Application.CreateForm(TForm1,Form1);
Application.Run;
end.

View File

@ -0,0 +1,25 @@
#define RT_MANIFEST 24
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2
#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST MOVEABLE PURE
{
"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>"
"<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">"
"<assemblyIdentity version=""1.0.0.0"" processorArchitecture=""*"" name=""CompanyName.ProductName.YourApp"" type=""win32""/>"
"<description>Your application description here.</description>"
"<dependency>"
"<dependentAssembly>"
"<assemblyIdentity type=""win32"" name=""Microsoft.Windows.Common-Controls"" version=""6.0.0.0"" processorArchitecture=""*"" publicKeyToken=""6595b64144ccf1df"" language=""*""/>"
"</dependentAssembly>"
"</dependency>"
"<trustInfo xmlns=""urn:schemas-microsoft-com:asm.v3"">"
"<security>"
"<requestedPrivileges>"
"<requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>"
"</requestedPrivileges>"
"</security>"
"</trustInfo>"
"</assembly>"
}

View File

@ -0,0 +1,25 @@
1 VERSIONINFO
FILEVERSION 0,0,0,491
PRODUCTVERSION 0,0,0,0
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "Comments", "\000"
VALUE "CompanyName", "\000"
VALUE "FileDescription", "\000"
VALUE "FileVersion", "0.0.0.491\000"
VALUE "InternalName", "\000"
VALUE "LegalCopyright", "\000"
VALUE "LegalTrademarks", "\000"
VALUE "OriginalFilename", "\000"
VALUE "ProductName", "\000"
VALUE "ProductVersion", "0.0.0.0\000"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x0409, 0x04E4
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 B

View File

@ -0,0 +1,50 @@
<?xml version="1.0"?>
<CONFIG>
<Package Version="3">
<PathDelim Value="\"/>
<Name Value="gradbutton"/>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<OtherUnitFiles Value="C:\Programme\Lazarus\SVN\components\CCR\components\gradcontrols\src\"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Version Major="1" Minor="4"/>
<Files Count="2">
<Item1>
<Filename Value="..\src\ugradbtn.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="ugradbtn"/>
</Item1>
<Item2>
<Filename Value="..\src\urotatebitmap.pas"/>
<UnitName Value="urotatebitmap"/>
</Item2>
</Files>
<Type Value="RunAndDesignTime"/>
<RequiredPkgs Count="2">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="FCL"/>
<MinVersion Major="1" Valid="True"/>
</Item2>
</RequiredPkgs>
<UsageOptions>
<UnitPath Value="$(PkgOutDir)\"/>
</UsageOptions>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
</PublishOptions>
</Package>
</CONFIG>

View File

@ -0,0 +1,22 @@
{ Diese Datei wurde automatisch von Lazarus erzeugt. Sie darf nicht bearbeitet
werden!
Dieser Quelltext dient nur dem Übersetzen und Installieren des Packages.
}
unit gradbutton;
interface
uses
ugradbtn, urotatebitmap, LazarusPackageIntf;
implementation
procedure Register;
begin
RegisterUnit('ugradbtn', @ugradbtn.Register);
end;
initialization
RegisterPackage('gradbutton', @Register);
end.

View File

@ -0,0 +1,56 @@
<?xml version="1.0"?>
<CONFIG>
<Package Version="3">
<PathDelim Value="\"/>
<Name Value="gradtabcontrol"/>
<CompilerOptions>
<Version Value="5"/>
<PathDelim Value="\"/>
<SearchPaths>
<OtherUnitFiles Value="C:\Programme\Lazarus\SVN\components\CCR\components\gradcontrols\src\"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)\"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
<Version Minor="1"/>
<Files Count="2">
<Item1>
<Filename Value="..\src\ugradtabcontrol.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="ugradtabcontrol"/>
</Item1>
<Item2>
<Filename Value="..\src\gradtabcontroleditor.pas"/>
<UnitName Value="gradtabcontroleditor"/>
</Item2>
</Files>
<Type Value="RunAndDesignTime"/>
<RequiredPkgs Count="4">
<Item1>
<PackageName Value="IDEIntf"/>
</Item1>
<Item2>
<PackageName Value="gradbutton"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
<Item4>
<PackageName Value="FCL"/>
<MinVersion Major="1" Valid="True"/>
</Item4>
</RequiredPkgs>
<UsageOptions>
<UnitPath Value="$(PkgOutDir)\"/>
</UsageOptions>
<PublishOptions>
<Version Value="2"/>
<IgnoreBinaries Value="False"/>
</PublishOptions>
</Package>
</CONFIG>

View File

@ -0,0 +1,22 @@
{ Diese Datei wurde automatisch von Lazarus erzeugt. Sie darf nicht bearbeitet
werden!
Dieser Quelltext dient nur dem Übersetzen und Installieren des Packages.
}
unit gradtabcontrol;
interface
uses
ugradtabcontrol, gradtabcontroleditor, LazarusPackageIntf;
implementation
procedure Register;
begin
RegisterUnit('ugradtabcontrol', @ugradtabcontrol.Register);
end;
initialization
RegisterPackage('gradtabcontrol', @Register);
end.

View File

@ -0,0 +1,224 @@
unit gradtabcontroleditor;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, ugradtabcontrol, ComponentEditors, Menus, PropEdits;
type
{ TGradTabControlComponentEditor
The default component editor for TGradTabControl. }
TGradTabControlComponentEditor = class(TDefaultComponentEditor)
protected
procedure AddNewPageToDesigner(Index: integer); virtual;
procedure DoAddPage; virtual;
procedure DoInsertPage; virtual;
procedure DoDeletePage; virtual;
procedure DoMoveActivePageLeft; virtual;
procedure DoMoveActivePageRight; virtual;
procedure DoMovePage(CurIndex, NewIndex: Integer); virtual;
procedure AddMenuItemsForPages(ParentMenuItem: TMenuItem); virtual;
procedure ShowPageMenuItemClick(Sender: TObject);
public
procedure ExecuteVerb(Index: Integer); override;
function GetVerb(Index: Integer): string; override;
function GetVerbCount: Integer; override;
procedure PrepareItem(Index: Integer; const AnItem: TMenuItem); override;
function GradTabControl: TGradTabControl; virtual;
end;
{ TPageComponentEditor
The default component editor for TCustomPage. }
TGradTabPageComponentEditor = class(TGradTabControlComponentEditor)
protected
public
function GradTabControl: TGradTabControl; override;
function Page: TGradTabPage; virtual;
end;
implementation
uses
ObjInspStrConsts;
{ TNotebookComponentEditor }
const
nbvAddPage = 0;
nbvInsertPage = 1;
nbvDeletePage = 2;
nbvMovePageLeft = 3;
nbvMovePageRight = 4;
nbvShowPage = 5;
procedure TGradTabControlComponentEditor.ShowPageMenuItemClick(Sender: TObject);
var
AMenuItem: TMenuItem;
NewPageIndex: integer;
begin
AMenuItem:=TMenuItem(Sender);
if (AMenuItem=nil) or (not (AMenuItem is TMenuItem)) then exit;
NewPageIndex:=AMenuItem.MenuIndex;
if (NewPageIndex<0) or (NewPageIndex>=GradTabControl.PageCount) then exit;
GradTabControl.PageIndex:=NewPageIndex;
GetDesigner.SelectOnlyThisComponent(GradTabControl.Page[GradTabControl.PageIndex]);
end;
procedure TGradTabControlComponentEditor.AddNewPageToDesigner(Index: integer);
var
Hook: TPropertyEditorHook;
NewPage: TGradTabPage;
NewName: string;
begin
Hook:=nil;
if not GetHook(Hook) then exit;
NewPage:=GradTabControl.Page[Index];
NewName:=GetDesigner.CreateUniqueComponentName(NewPage.ClassName);
NewPage.Caption:=NewName;
NewPage.Name:=NewName;
GradTabControl.PageIndex:=Index;
Hook.PersistentAdded(NewPage,true);
Modified;
end;
procedure TGradTabControlComponentEditor.DoAddPage;
begin
if not HasHook then exit;
GradTabControl.Tabs.Add('');
AddNewPageToDesigner(GradTabControl.PageCount-1);
end;
procedure TGradTabControlComponentEditor.DoInsertPage;
var
NewIndex: integer;
begin
if not HasHook then exit;
NewIndex:=GradTabControl.PageIndex;
if NewIndex<0 then NewIndex:=0;
GradTabControl.Tabs.Insert(NewIndex,'');
AddNewPageToDesigner(NewIndex);
end;
procedure TGradTabControlComponentEditor.DoDeletePage;
var
Hook: TPropertyEditorHook;
OldIndex: integer;
PageComponent: TComponent;
begin
OldIndex:=GradTabControl.PageIndex;
if (OldIndex>=0) and (OldIndex<GradTabControl.PageCount) then begin
if not GetHook(Hook) then exit;
PageComponent:=TComponent(GradTabControl.Tabs.Objects[OldIndex]);
Hook.DeletePersistent(PageComponent);
end;
end;
procedure TGradTabControlComponentEditor.DoMoveActivePageLeft;
var
Index: integer;
begin
Index:=GradTabControl.PageIndex;
if (Index<0) then exit;
DoMovePage(Index,Index-1);
end;
procedure TGradTabControlComponentEditor.DoMoveActivePageRight;
var
Index: integer;
begin
Index:=GradTabControl.PageIndex;
if (Index>=0)
and (Index>=GradTabControl.PageCount-1) then exit;
DoMovePage(Index,Index+1);
end;
procedure TGradTabControlComponentEditor.DoMovePage(
CurIndex, NewIndex: Integer);
begin
GradTabControl.Tabs.Move(CurIndex,NewIndex);
Modified;
end;
procedure TGradTabControlComponentEditor.AddMenuItemsForPages(
ParentMenuItem: TMenuItem);
var
i: integer;
NewMenuItem: TMenuItem;
begin
ParentMenuItem.Enabled:=GradTabControl.PageCount>0;
for i:=0 to GradTabControl.PageCount-1 do begin
NewMenuItem:=TMenuItem.Create(ParentMenuItem);
NewMenuItem.Name:='ShowPage'+IntToStr(i);
NewMenuItem.Caption:=GradTabControl.Page[i].Name+' "'+GradTabControl.Tabs[i]+'"';
NewMenuItem.OnClick:=@ShowPageMenuItemClick;
ParentMenuItem.Add(NewMenuItem);
end;
end;
procedure TGradTabControlComponentEditor.ExecuteVerb(Index: Integer);
begin
case Index of
nbvAddPage: DoAddPage;
nbvInsertPage: DoInsertPage;
nbvDeletePage: DoDeletePage; // beware: this can free the editor itself
nbvMovePageLeft: DoMoveActivePageLeft;
nbvMovePageRight: DoMoveActivePageRight;
end;
end;
function TGradTabControlComponentEditor.GetVerb(Index: Integer): string;
begin
case Index of
nbvAddPage: Result:=nbcesAddPage;
nbvInsertPage: Result:=nbcesInsertPage;
nbvDeletePage: Result:=nbcesDeletePage;
nbvMovePageLeft: Result:=nbcesMovePageLeft;
nbvMovePageRight: Result:=nbcesMovePageRight;
nbvShowPage: Result:=nbcesShowPage;
else
Result:='';
end;
end;
function TGradTabControlComponentEditor.GetVerbCount: Integer;
begin
Result:=6;
end;
procedure TGradTabControlComponentEditor.PrepareItem(Index: Integer;
const AnItem: TMenuItem);
begin
inherited PrepareItem(Index, AnItem);
case Index of
nbvAddPage: ;
nbvInsertPage: AnItem.Enabled:=GradTabControl.PageIndex>=0;
nbvDeletePage: AnItem.Enabled:=GradTabControl.PageIndex>=0;
nbvMovePageLeft: AnItem.Enabled:=GradTabControl.PageIndex>0;
nbvMovePageRight: AnItem.Enabled:=GradTabControl.PageIndex<GradTabControl.PageCount-1;
nbvShowPage: AddMenuItemsForPages(AnItem);
end;
end;
function TGradTabControlComponentEditor.GradTabControl: TGradTabControl;
begin
Result:=TGradTabControl(GetComponent);
end;
function TGradTabPageComponentEditor.GradTabControl: TGradTabControl;
var
APage: TGradTabPage;
begin
APage:=Page;
if (APage.Parent<>nil) and (APage.Parent is TGradTabControl) then
Result:=TGradTabControl(APage.Parent);
end;
function TGradTabPageComponentEditor.Page: TGradTabPage;
begin
Result:=TGradTabPage(GetComponent);
end;
end.

View File

@ -0,0 +1,329 @@
LazarusResources.Add('tgradbutton','JPG',[
#255#216#255#224#0#16'JFIF'#0#1#2#1#0'H'#0'H'#0#0#255#225#4'eExif'#0#0'MM'#0
+'*'#0#0#0#8#0#7#1#18#0#3#0#0#0#1#0#1#0#0#1#26#0#5#0#0#0#1#0#0#0'b'#1#27#0#5#0
+#0#0#1#0#0#0'j'#1'('#0#3#0#0#0#1#0#2#0#0#1'1'#0#2#0#0#0#28#0#0#0'r'#1'2'#0#2
+#0#0#0#20#0#0#0#142#135'i'#0#4#0#0#0#1#0#0#0#164#0#0#0#208#0#10#252#218#0#0
+''''#16#0#10#252#218#0#0''''#16'Adobe Photoshop CS3 Windows'#0'2008:07:06 04'
+':02:47'#0#0#0#0#3#160#1#0#3#0#0#0#1#0#1#0#0#160#2#0#4#0#0#0#1#0#0#0#23#160#3
+#0#4#0#0#0#1#0#0#0#18#0#0#0#0#0#0#0#6#1#3#0#3#0#0#0#1#0#6#0#0#1#26#0#5#0#0#0
+#1#0#0#1#30#1#27#0#5#0#0#0#1#0#0#1'&'#1'('#0#3#0#0#0#1#0#2#0#0#2#1#0#4#0#0#0
+#1#0#0#1'.'#2#2#0#4#0#0#0#1#0#0#3'/'#0#0#0#0#0#0#0'H'#0#0#0#1#0#0#0'H'#0#0#0
+#1#255#216#255#224#0#16'JFIF'#0#1#2#0#0'H'#0'H'#0#0#255#237#0#12'Adobe_CM'#0
+#1#255#238#0#14'Adobe'#0'd'#128#0#0#0#1#255#219#0#132#0#12#8#8#8#9#8#12#9#9
+#12#17#11#10#11#17#21#15#12#12#15#21#24#19#19#21#19#19#24#17#12#12#12#12#12
+#12#17#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12
+#12#12#12#12#12#1#13#11#11#13#14#13#16#14#14#16#20#14#14#14#20#20#14#14#14#14
+#20#17#12#12#12#12#12#17#17#12#12#12#12#12#12#17#12#12#12#12#12#12#12#12#12
+#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#255#192#0#17#8#0#18
+#0#23#3#1'"'#0#2#17#1#3#17#1#255#221#0#4#0#2#255#196#1'?'#0#0#1#5#1#1#1#1#1#1
+#0#0#0#0#0#0#0#3#0#1#2#4#5#6#7#8#9#10#11#1#0#1#5#1#1#1#1#1#1#0#0#0#0#0#0#0#1
+#0#2#3#4#5#6#7#8#9#10#11#16#0#1#4#1#3#2#4#2#5#7#6#8#5#3#12'3'#1#0#2#17#3#4'!'
+#18'1'#5'AQa'#19'"q'#129'2'#6#20#145#161#177'B#$'#21'R'#193'b34r'#130#209'C'
+#7'%'#146'S'#240#225#241'cs5'#22#162#178#131'&D'#147'TdE'#194#163't6'#23#210
+'U'#226'e'#242#179#132#195#211'u'#227#243'F'''#148#164#133#180#149#196#212
+#228#244#165#181#197#213#229#245'Vfv'#134#150#166#182#198#214#230#246'7GWgw'
+#135#151#167#183#199#215#231#247#17#0#2#2#1#2#4#4#3#4#5#6#7#7#6#5'5'#1#0#2#17
+#3'!1'#18#4'AQaq"'#19#5'2'#129#145#20#161#177'B#'#193'R'#209#240'3$b'#225'r'
+#130#146'CS'#21'cs4'#241'%'#6#22#162#178#131#7'&5'#194#210'D'#147'T'#163#23
+'dEU6te'#226#242#179#132#195#211'u'#227#243'F'#148#164#133#180#149#196#212
+#228#244#165#181#197#213#229#245'Vfv'#134#150#166#182#198#214#230#246'''7GWg'
+'w'#135#151#167#183#199#255#218#0#12#3#1#0#2#17#3#17#0'?'#0#176#214#227#228
+#227#226#229'eb'#226#229'd'#229'b'#227#228'_~F=7X'#235'.'#166#171#237's'#173
+#190#171','#219#234'Y'#250'*'#191#154#199#171'f>;*'#162#170#235'K'#236#221'?'
+#255#0'+'#176'?'#246#11#27#255#0'H)'#226'co'#233#189'9'#209#206#6#23#254#219
+'P'#137#246'O%'#179#135#22#19#138#4#194'$'#152#198#253'1'#236#231#228#158'N9'
+'T'#165#185#234#130#198#227#227#226'_~6..='#141#244'XM8'#244#214#30#203#242
+'q'#176#178'('#200'eU1'#153'8'#246#227#228#218#215'c'#228'z'#180#239#244#239
+#217#235#211'M'#149#165'<'#204'm'#189';''O'#164#252'F'#253#249#216')(81'#253
+#239#135#134'<'#28';P'#225#255#0#21#151#138'~'#197#217#226#189#239'W'#255#208
+#177#212''#229#28#191#252'S?o'#252#129#255#0''''#253'71'#255#0'v'#191#242
+#211#255#0'6'#191'mU'#255#0#250#252'^T'#146'J}w'#3#250'A'#255#0#197'7'#243'7'
+#255#0#202#255#0'O'#249#155#191#228#15#252#223#255#0#220'o'#251#165#251'A%'
+#228'I$'#167#255#217#255#237#9#154'Photoshop 3.0'#0'8BIM'#4'%'#0#0#0#0#0#16#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'8BIM'#4'/'#0#0#0#0#0'J'#152'J'#1#0'H'#0#0#0'H'
+#0#0#0#0#0#0#0#0#0#0#0#208#2#0#0'@'#2#0#0#0#0#0#0#0#0#0#0#24#3#0#0'd'#2#0#0#0
+#1#192#3#0#0#176#4#0#0#1#0#15''''#1#0'llun'#0#0#0#0#0#0#0#0#0#0'8BIM'#3#237#0
+#0#0#0#0#16#0'H'#2'N'#0#1#0#2#0'H'#2'N'#0#1#0#2'8BIM'#4'&'#0#0#0#0#0#14#0#0#0
+#0#0#0#0#0#0#0'?'#128#0#0'8BIM'#4#13#0#0#0#0#0#4#0#0#0'x8BIM'#4#25#0#0#0#0#0
+#4#0#0#0#30'8BIM'#3#243#0#0#0#0#0#9#0#0#0#0#0#0#0#0#1#0'8BIM'#4#10#0#0#0#0#0
+#1#0#0'8BIM'''#16#0#0#0#0#0#10#0#1#0#0#0#0#0#0#0#2'8BIM'#3#245#0#0#0#0#0'H'#0
+'/ff'#0#1#0'lff'#0#6#0#0#0#0#0#1#0'/ff'#0#1#0#161#153#154#0#6#0#0#0#0#0#1#0
+'2'#0#0#0#1#0'Z'#0#0#0#6#0#0#0#0#0#1#0'5'#0#0#0#1#0'-'#0#0#0#6#0#0#0#0#0#1'8'
+'BIM'#3#248#0#0#0#0#0'p'#0#0#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#3#232#0#0#0#0#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#3#232#0
+#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#3#232#0#0#0#0#255#255#255#255#255#255#255#255#255#255
+#255#255#255#255#255#255#255#255#255#255#255#255#3#232#0#0'8BIM'#4#0#0#0#0#0
+#0#2#0#1'8BIM'#4#2#0#0#0#0#0#4#0#0#0#0'8BIM'#4'0'#0#0#0#0#0#2#1#1'8BIM'#4'-'
+#0#0#0#0#0#6#0#1#0#0#0#2'8BIM'#4#8#0#0#0#0#0#16#0#0#0#1#0#0#2'@'#0#0#2'@'#0#0
+#0#0'8BIM'#4#30#0#0#0#0#0#4#0#0#0#0'8BIM'#4#26#0#0#0#0#3'K'#0#0#0#6#0#0#0#0#0
+#0#0#0#0#0#0#18#0#0#0#23#0#0#0#11#0'U'#0'n'#0'b'#0'e'#0'n'#0'a'#0'n'#0'n'#0
+'t'#0'-'#0'1'#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#0#0#0#0#0
+#0#0#0#23#0#0#0#18#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#16#0#0#0#1#0#0#0#0#0#0'null'#0#0#0#2#0#0#0#6'boundsObjc'#0#0#0
+#1#0#0#0#0#0#0'Rct1'#0#0#0#4#0#0#0#0'Top long'#0#0#0#0#0#0#0#0'Leftlong'#0#0
,#0#0#0#0#0#0'Btomlong'#0#0#0#18#0#0#0#0'Rghtlong'#0#0#0#23#0#0#0#6'slicesVlL'
+'s'#0#0#0#1'Objc'#0#0#0#1#0#0#0#0#0#5'slice'#0#0#0#18#0#0#0#7'sliceIDlong'#0
+#0#0#0#0#0#0#7'groupIDlong'#0#0#0#0#0#0#0#6'originenum'#0#0#0#12'ESliceOrigi'
+'n'#0#0#0#13'autoGenerated'#0#0#0#0'Typeenum'#0#0#0#10'ESliceType'#0#0#0#0'I'
+'mg '#0#0#0#6'boundsObjc'#0#0#0#1#0#0#0#0#0#0'Rct1'#0#0#0#4#0#0#0#0'Top long'
+#0#0#0#0#0#0#0#0'Leftlong'#0#0#0#0#0#0#0#0'Btomlong'#0#0#0#18#0#0#0#0'Rghtlo'
+'ng'#0#0#0#23#0#0#0#3'urlTEXT'#0#0#0#1#0#0#0#0#0#0'nullTEXT'#0#0#0#1#0#0#0#0
+#0#0'MsgeTEXT'#0#0#0#1#0#0#0#0#0#6'altTagTEXT'#0#0#0#1#0#0#0#0#0#14'cellText'
+'IsHTMLbool'#1#0#0#0#8'cellTextTEXT'#0#0#0#1#0#0#0#0#0#9'horzAlignenum'#0#0#0
+#15'ESliceHorzAlign'#0#0#0#7'default'#0#0#0#9'vertAlignenum'#0#0#0#15'ESlice'
+'VertAlign'#0#0#0#7'default'#0#0#0#11'bgColorTypeenum'#0#0#0#17'ESliceBGColo'
+'rType'#0#0#0#0'None'#0#0#0#9'topOutsetlong'#0#0#0#0#0#0#0#10'leftOutsetlong'
+#0#0#0#0#0#0#0#12'bottomOutsetlong'#0#0#0#0#0#0#0#11'rightOutsetlong'#0#0#0#0
+#0'8BIM'#4'('#0#0#0#0#0#12#0#0#0#1'?'#240#0#0#0#0#0#0'8BIM'#4#20#0#0#0#0#0#4
+#0#0#0#2'8BIM'#4#12#0#0#0#0#3'K'#0#0#0#1#0#0#0#23#0#0#0#18#0#0#0'H'#0#0#5#16
+#0#0#3'/'#0#24#0#1#255#216#255#224#0#16'JFIF'#0#1#2#0#0'H'#0'H'#0#0#255#237#0
+#12'Adobe_CM'#0#1#255#238#0#14'Adobe'#0'd'#128#0#0#0#1#255#219#0#132#0#12#8#8
+#8#9#8#12#9#9#12#17#11#10#11#17#21#15#12#12#15#21#24#19#19#21#19#19#24#17#12
+#12#12#12#12#12#17#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12
+#12#12#12#12#12#12#12#12#12#1#13#11#11#13#14#13#16#14#14#16#20#14#14#14#20#20
+#14#14#14#14#20#17#12#12#12#12#12#17#17#12#12#12#12#12#12#17#12#12#12#12#12
+#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#12#255#192
+#0#17#8#0#18#0#23#3#1'"'#0#2#17#1#3#17#1#255#221#0#4#0#2#255#196#1'?'#0#0#1#5
+#1#1#1#1#1#1#0#0#0#0#0#0#0#3#0#1#2#4#5#6#7#8#9#10#11#1#0#1#5#1#1#1#1#1#1#0#0
+#0#0#0#0#0#1#0#2#3#4#5#6#7#8#9#10#11#16#0#1#4#1#3#2#4#2#5#7#6#8#5#3#12'3'#1#0
+#2#17#3#4'!'#18'1'#5'AQa'#19'"q'#129'2'#6#20#145#161#177'B#$'#21'R'#193'b34r'
+#130#209'C'#7'%'#146'S'#240#225#241'cs5'#22#162#178#131'&D'#147'TdE'#194#163
+'t6'#23#210'U'#226'e'#242#179#132#195#211'u'#227#243'F'''#148#164#133#180#149
+#196#212#228#244#165#181#197#213#229#245'Vfv'#134#150#166#182#198#214#230#246
+'7GWgw'#135#151#167#183#199#215#231#247#17#0#2#2#1#2#4#4#3#4#5#6#7#7#6#5'5'#1
+#0#2#17#3'!1'#18#4'AQaq"'#19#5'2'#129#145#20#161#177'B#'#193'R'#209#240'3$b'
+#225'r'#130#146'CS'#21'cs4'#241'%'#6#22#162#178#131#7'&5'#194#210'D'#147'T'
+#163#23'dEU6te'#226#242#179#132#195#211'u'#227#243'F'#148#164#133#180#149#196
+#212#228#244#165#181#197#213#229#245'Vfv'#134#150#166#182#198#214#230#246''''
+'7GWgw'#135#151#167#183#199#255#218#0#12#3#1#0#2#17#3#17#0'?'#0#176#214#227
+#228#227#226#229'eb'#226#229'd'#229'b'#227#228'_~F=7X'#235'.'#166#171#237's'
+#173#190#171','#219#234'Y'#250'*'#191#154#199#171'f>;*'#162#170#235'K'#236
+#221'?'#255#0'+'#176'?'#246#11#27#255#0'H)'#226'co'#233#189'9'#209#206#6#23
+#254#219'P'#137#246'O%'#179#135#22#19#138#4#194'$'#152#198#253'1'#236#231#228
+#158'N9T'#165#185#234#130#198#227#227#226'_~6..='#141#244'XM8'#244#214#30#203
+#242'q'#176#178'('#200'eU1'#153'8'#246#227#228#218#215'c'#228'z'#180#239#244
+#239#217#235#211'M'#149#165'<'#204'm'#189';''O'#164#252'F'#253#249#216')(81'
+#253#239#135#134'<'#28';P'#225#255#0#21#151#138'~'#197#217#226#189#239'W'#255
+#208#177#212''#229#28#191#252'S?o'#252#129#255#0''''#253'71'#255#0'v'#191
+#242#211#255#0'6'#191'mU'#255#0#250#252'^T'#146'J}w'#3#250'A'#255#0#197'7'
+#243'7'#255#0#202#255#0'O'#249#155#191#228#15#252#223#255#0#220'o'#251#165
+#251'A%'#228'I$'#167#255#217#0'8BIM'#4'!'#0#0#0#0#0'U'#0#0#0#1#1#0#0#0#15#0
+'A'#0'd'#0'o'#0'b'#0'e'#0' '#0'P'#0'h'#0'o'#0't'#0'o'#0's'#0'h'#0'o'#0'p'#0#0
+#0#19#0'A'#0'd'#0'o'#0'b'#0'e'#0' '#0'P'#0'h'#0'o'#0't'#0'o'#0's'#0'h'#0'o'#0
+'p'#0' '#0'C'#0'S'#0'3'#0#0#0#1#0'8BIM'#4#6#0#0#0#0#0#7#0#8#0#0#0#1#1#0#255
+#225#15#204'http://ns.adobe.com/xap/1.0/'#0'<?xpacket begin="'#239#187#191'"'
+' id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmpt'
+'k="Adobe XMP Core 4.1-c036 46.276720, Mon Feb 19 2007 22:40:08 "> <r'
+'df:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Descri'
+'ption rdf:about="" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xap="h'
+'ttp://ns.adobe.com/xap/1.0/" xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/" '
+'xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photosho'
+'p="http://ns.adobe.com/photoshop/1.0/" xmlns:tiff="http://ns.adobe.com/tiff'
+'/1.0/" xmlns:exif="http://ns.adobe.com/exif/1.0/" dc:format="image/jpeg" xa'
+'p:CreatorTool="Adobe Photoshop CS3 Windows" xap:CreateDate="2008-07-06T04:0'
+'2:47+02:00" xap:ModifyDate="2008-07-06T04:02:47+02:00" xap:MetadataDate="20'
+'08-07-06T04:02:47+02:00" xapMM:DocumentID="uuid:5DD90184FF4ADD11BDEEBAFB973'
+'BE798" xapMM:InstanceID="uuid:5ED90184FF4ADD11BDEEBAFB973BE798" photoshop:C'
+'olorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" photoshop:History="" '
,'tiff:Orientation="1" tiff:XResolution="720090/10000" tiff:YResolution="7200'
+'90/10000" tiff:ResolutionUnit="2" tiff:NativeDigest="256,257,258,259,262,27'
+'4,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,3'
+'3432;43EEA4872496B7AD01DA4CCA00B8774C" exif:PixelXDimension="23" exif:Pixel'
+'YDimension="18" exif:ColorSpace="1" exif:NativeDigest="36864,40960,40961,37'
+'121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855'
+',34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41'
+'483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986'
+',41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,'
+'6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;1704818C35DAE'
+'7A14CC7176F80D51B00"> <xapMM:DerivedFrom stRef:instanceID="uuid:5CD90184FF4'
+'ADD11BDEEBAFB973BE798" stRef:documentID="uuid:5CD90184FF4ADD11BDEEBAFB973BE'
+'798"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' '
+' <?'
+'xpacket end="w"?>'#255#226#12'XICC_PROFILE'#0#1#1#0#0#12'HLino'#2#16#0#0'mn'
+'trRGB XYZ '#7#206#0#2#0#9#0#6#0'1'#0#0'acspMSFT'#0#0#0#0'IEC sRGB'#0#0#0#0#0
+#0#0#0#0#0#0#1#0#0#246#214#0#1#0#0#0#0#211'-HP '#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#17'cprt'#0
+#0#1'P'#0#0#0'3desc'#0#0#1#132#0#0#0'lwtpt'#0#0#1#240#0#0#0#20'bkpt'#0#0#2#4
+#0#0#0#20'rXYZ'#0#0#2#24#0#0#0#20'gXYZ'#0#0#2','#0#0#0#20'bXYZ'#0#0#2'@'#0#0
+#0#20'dmnd'#0#0#2'T'#0#0#0'pdmdd'#0#0#2#196#0#0#0#136'vued'#0#0#3'L'#0#0#0
+#134'view'#0#0#3#212#0#0#0'$lumi'#0#0#3#248#0#0#0#20'meas'#0#0#4#12#0#0#0'$t'
+'ech'#0#0#4'0'#0#0#0#12'rTRC'#0#0#4'<'#0#0#8#12'gTRC'#0#0#4'<'#0#0#8#12'bTRC'
+#0#0#4'<'#0#0#8#12'text'#0#0#0#0'Copyright (c) 1998 Hewlett-Packard Company'
+#0#0'desc'#0#0#0#0#0#0#0#18'sRGB IEC61966-2.1'#0#0#0#0#0#0#0#0#0#0#0#18'sRGB'
+' IEC61966-2.1'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'XYZ '#0#0#0#0#0#0#243'Q'#0#1#0#0#0#1
+#22#204'XYZ '#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'XYZ '#0#0#0#0#0#0'o'#162#0#0'8'
+#245#0#0#3#144'XYZ '#0#0#0#0#0#0'b'#153#0#0#183#133#0#0#24#218'XYZ '#0#0#0#0
+#0#0'$'#160#0#0#15#132#0#0#182#207'desc'#0#0#0#0#0#0#0#22'IEC http://www.iec'
+'.ch'#0#0#0#0#0#0#0#0#0#0#0#22'IEC http://www.iec.ch'#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'desc'#0
+#0#0#0#0#0#0'.IEC 61966-2.1 Default RGB colour space - sRGB'#0#0#0#0#0#0#0#0
+#0#0#0'.IEC 61966-2.1 Default RGB colour space - sRGB'#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0'desc'#0#0#0#0#0#0#0',Reference Viewing Condition in I'
+'EC61966-2.1'#0#0#0#0#0#0#0#0#0#0#0',Reference Viewing Condition in IEC61966'
+'-2.1'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'view'#0#0#0#0#0#19
+#164#254#0#20'_.'#0#16#207#20#0#3#237#204#0#4#19#11#0#3'\'#158#0#0#0#1'XYZ '
,#0#0#0#0#0'L'#9'V'#0'P'#0#0#0'W'#31#231'meas'#0#0#0#0#0#0#0#1#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#2#143#0#0#0#2'sig '#0#0#0#0'CRT curv'#0#0#0#0#0#0#4#0#0
+#0#0#5#0#10#0#15#0#20#0#25#0#30#0'#'#0'('#0'-'#0'2'#0'7'#0';'#0'@'#0'E'#0'J'
+#0'O'#0'T'#0'Y'#0'^'#0'c'#0'h'#0'm'#0'r'#0'w'#0'|'#0#129#0#134#0#139#0#144#0
+#149#0#154#0#159#0#164#0#169#0#174#0#178#0#183#0#188#0#193#0#198#0#203#0#208
+#0#213#0#219#0#224#0#229#0#235#0#240#0#246#0#251#1#1#1#7#1#13#1#19#1#25#1#31
+#1'%'#1'+'#1'2'#1'8'#1'>'#1'E'#1'L'#1'R'#1'Y'#1'`'#1'g'#1'n'#1'u'#1'|'#1#131
+#1#139#1#146#1#154#1#161#1#169#1#177#1#185#1#193#1#201#1#209#1#217#1#225#1
+#233#1#242#1#250#2#3#2#12#2#20#2#29#2'&'#2'/'#2'8'#2'A'#2'K'#2'T'#2']'#2'g'#2
+'q'#2'z'#2#132#2#142#2#152#2#162#2#172#2#182#2#193#2#203#2#213#2#224#2#235#2
+#245#3#0#3#11#3#22#3'!'#3'-'#3'8'#3'C'#3'O'#3'Z'#3'f'#3'r'#3'~'#3#138#3#150#3
+#162#3#174#3#186#3#199#3#211#3#224#3#236#3#249#4#6#4#19#4' '#4'-'#4';'#4'H'#4
+'U'#4'c'#4'q'#4'~'#4#140#4#154#4#168#4#182#4#196#4#211#4#225#4#240#4#254#5#13
+#5#28#5'+'#5':'#5'I'#5'X'#5'g'#5'w'#5#134#5#150#5#166#5#181#5#197#5#213#5#229
+#5#246#6#6#6#22#6''''#6'7'#6'H'#6'Y'#6'j'#6'{'#6#140#6#157#6#175#6#192#6#209
+#6#227#6#245#7#7#7#25#7'+'#7'='#7'O'#7'a'#7't'#7#134#7#153#7#172#7#191#7#210
+#7#229#7#248#8#11#8#31#8'2'#8'F'#8'Z'#8'n'#8#130#8#150#8#170#8#190#8#210#8
+#231#8#251#9#16#9'%'#9':'#9'O'#9'd'#9'y'#9#143#9#164#9#186#9#207#9#229#9#251
+#10#17#10''''#10'='#10'T'#10'j'#10#129#10#152#10#174#10#197#10#220#10#243#11
+#11#11'"'#11'9'#11'Q'#11'i'#11#128#11#152#11#176#11#200#11#225#11#249#12#18
+#12'*'#12'C'#12'\'#12'u'#12#142#12#167#12#192#12#217#12#243#13#13#13'&'#13'@'
+#13'Z'#13't'#13#142#13#169#13#195#13#222#13#248#14#19#14'.'#14'I'#14'd'#14''
+#14#155#14#182#14#210#14#238#15#9#15'%'#15'A'#15'^'#15'z'#15#150#15#179#15
+#207#15#236#16#9#16'&'#16'C'#16'a'#16'~'#16#155#16#185#16#215#16#245#17#19#17
+'1'#17'O'#17'm'#17#140#17#170#17#201#17#232#18#7#18'&'#18'E'#18'd'#18#132#18
+#163#18#195#18#227#19#3#19'#'#19'C'#19'c'#19#131#19#164#19#197#19#229#20#6#20
+''''#20'I'#20'j'#20#139#20#173#20#206#20#240#21#18#21'4'#21'V'#21'x'#21#155
+#21#189#21#224#22#3#22'&'#22'I'#22'l'#22#143#22#178#22#214#22#250#23#29#23'A'
+#23'e'#23#137#23#174#23#210#23#247#24#27#24'@'#24'e'#24#138#24#175#24#213#24
+#250#25' '#25'E'#25'k'#25#145#25#183#25#221#26#4#26'*'#26'Q'#26'w'#26#158#26
+#197#26#236#27#20#27';'#27'c'#27#138#27#178#27#218#28#2#28'*'#28'R'#28'{'#28
+#163#28#204#28#245#29#30#29'G'#29'p'#29#153#29#195#29#236#30#22#30'@'#30'j'
+#30#148#30#190#30#233#31#19#31'>'#31'i'#31#148#31#191#31#234' '#21' A l '#152
+' '#196' '#240'!'#28'!H!u!'#161'!'#206'!'#251'"''"U"'#130'"'#175'"'#221'#'#10
+'#8#f#'#148'#'#194'#'#240'$'#31'$M$|$'#171'$'#218'%'#9'%8%h%'#151'%'#199'%'
+#247'&''&W&'#135'&'#183'&'#232''''#24'''I''z'''#171''''#220'('#13'(?(q('#162
+'('#212')'#6')8)k)'#157')'#208'*'#2'*5*h*'#155'*'#207'+'#2'+6+i+'#157'+'#209
+','#5',9,n,'#162','#215'-'#12'-A-v-'#171'-'#225'.'#22'.L.'#130'.'#183'.'#238
+'/$/Z/'#145'/'#199'/'#254'050l0'#164'0'#219'1'#18'1J1'#130'1'#186'1'#242'2*2'
+'c2'#155'2'#212'3'#13'3F33'#184'3'#241'4+4e4'#158'4'#216'5'#19'5M5'#135'5'
+#194'5'#253'676r6'#174'6'#233'7$7`7'#156'7'#215'8'#20'8P8'#140'8'#200'9'#5'9'
+'B99'#188'9'#249':6:t:'#178':'#239';-;k;'#170';'#232'<''<e<'#164'<'#227'="='
+'a='#161'='#224'> >`>'#160'>'#224'?!?a?'#162'?'#226'@#@d@'#166'@'#231'A)AjA'
+#172'A'#238'B0BrB'#181'B'#247'C:C}C'#192'D'#3'DGD'#138'D'#206'E'#18'EUE'#154
+'E'#222'F"FgF'#171'F'#240'G5G{G'#192'H'#5'HKH'#145'H'#215'I'#29'IcI'#169'I'
+#240'J7J}J'#196'K'#12'KSK'#154'K'#226'L*LrL'#186'M'#2'MJM'#147'M'#220'N%NnN'
+#183'O'#0'OIO'#147'O'#221'P''PqP'#187'Q'#6'QPQ'#155'Q'#230'R1R|R'#199'S'#19
+'S_S'#170'S'#246'TBT'#143'T'#219'U(UuU'#194'V'#15'V\V'#169'V'#247'WDW'#146'W'
+#224'X/X}X'#203'Y'#26'YiY'#184'Z'#7'ZVZ'#166'Z'#245'[E['#149'['#229'\5\'#134
+'\'#214']'']x]'#201'^'#26'^l^'#189'_'#15'_a_'#179'`'#5'`W`'#170'`'#252'aOa'
+#162'a'#245'bIb'#156'b'#240'cCc'#151'c'#235'd@d'#148'd'#233'e=e'#146'e'#231
+'f=f'#146'f'#232'g=g'#147'g'#233'h?h'#150'h'#236'iCi'#154'i'#241'jHj'#159'j'
+#247'kOk'#167'k'#255'lWl'#175'm'#8'm`m'#185'n'#18'nkn'#196'o'#30'oxo'#209'p+'
+'p'#134'p'#224'q:q'#149'q'#240'rKr'#166's'#1's]s'#184't'#20'tpt'#204'u(u'#133
+'u'#225'v>v'#155'v'#248'wVw'#179'x'#17'xnx'#204'y*y'#137'y'#231'zFz'#165'{'#4
+'{c{'#194'|!|'#129'|'#225'}A}'#161'~'#1'~b~'#194'#'#132''#229#128'G'#128
+#168#129#10#129'k'#129#205#130'0'#130#146#130#244#131'W'#131#186#132#29#132
+#128#132#227#133'G'#133#171#134#14#134'r'#134#215#135';'#135#159#136#4#136'i'
+#136#206#137'3'#137#153#137#254#138'd'#138#202#139'0'#139#150#139#252#140'c'
+#140#202#141'1'#141#152#141#255#142'f'#142#206#143'6'#143#158#144#6#144'n'
+#144#214#145'?'#145#168#146#17#146'z'#146#227#147'M'#147#182#148' '#148#138
+#148#244#149'_'#149#201#150'4'#150#159#151#10#151'u'#151#224#152'L'#152#184
+#153'$'#153#144#153#252#154'h'#154#213#155'B'#155#175#156#28#156#137#156#247
+#157'd'#157#210#158'@'#158#174#159#29#159#139#159#250#160'i'#160#216#161'G'
,#161#182#162'&'#162#150#163#6#163'v'#163#230#164'V'#164#199#165'8'#165#169
+#166#26#166#139#166#253#167'n'#167#224#168'R'#168#196#169'7'#169#169#170#28
+#170#143#171#2#171'u'#171#233#172'\'#172#208#173'D'#173#184#174'-'#174#161
+#175#22#175#139#176#0#176'u'#176#234#177'`'#177#214#178'K'#178#194#179'8'#179
+#174#180'%'#180#156#181#19#181#138#182#1#182'y'#182#240#183'h'#183#224#184'Y'
+#184#209#185'J'#185#194#186';'#186#181#187'.'#187#167#188'!'#188#155#189#21
+#189#143#190#10#190#132#190#255#191'z'#191#245#192'p'#192#236#193'g'#193#227
+#194'_'#194#219#195'X'#195#212#196'Q'#196#206#197'K'#197#200#198'F'#198#195
+#199'A'#199#191#200'='#200#188#201':'#201#185#202'8'#202#183#203'6'#203#182
+#204'5'#204#181#205'5'#205#181#206'6'#206#182#207'7'#207#184#208'9'#208#186
+#209'<'#209#190#210'?'#210#193#211'D'#211#198#212'I'#212#203#213'N'#213#209
+#214'U'#214#216#215'\'#215#224#216'd'#216#232#217'l'#217#241#218'v'#218#251
+#219#128#220#5#220#138#221#16#221#150#222#28#222#162#223')'#223#175#224'6'
+#224#189#225'D'#225#204#226'S'#226#219#227'c'#227#235#228's'#228#252#229#132
+#230#13#230#150#231#31#231#169#232'2'#232#188#233'F'#233#208#234'['#234#229
+#235'p'#235#251#236#134#237#17#237#156#238'('#238#180#239'@'#239#204#240'X'
+#240#229#241'r'#241#255#242#140#243#25#243#167#244'4'#244#194#245'P'#245#222
+#246'm'#246#251#247#138#248#25#248#168#249'8'#249#199#250'W'#250#231#251'w'
+#252#7#252#152#253')'#253#186#254'K'#254#220#255'm'#255#255#255#238#0#14'Ado'
+'be'#0'd@'#0#0#0#1#255#219#0#132#0#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1
+#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#1#2#2#2#2#2#2#2#2#2#2#2#3#3#3#3#3
+#3#3#3#3#3#1#1#1#1#1#1#1#1#1#1#1#2#2#1#2#2#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3
+#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#3#255#192#0#17
+#8#0#18#0#23#3#1#17#0#2#17#1#3#17#1#255#221#0#4#0#3#255#196#1#162#0#0#0#6#2#3
+#1#0#0#0#0#0#0#0#0#0#0#7#8#6#5#4#9#3#10#2#1#0#11#1#0#0#6#3#1#1#1#0#0#0#0#0#0
+#0#0#0#6#5#4#3#7#2#8#1#9#0#10#11#16#0#2#1#3#4#1#3#3#2#3#3#3#2#6#9'u'#1#2#3#4
+#17#5#18#6'!'#7#19'"'#0#8'1'#20'A2#'#21#9'QB'#22'a$3'#23'Rq'#129#24'b'#145'%'
+'C'#161#177#240'&4r'#10#25#193#209'5'''#225'S6'#130#241#146#162'DTsEF7Gc(UVW'
+#26#178#194#210#226#242'd'#131't'#147#132'e'#163#179#195#211#227')8f'#243'u*'
+'9:HIJXYZghijvwxyz'#133#134#135#136#137#138#148#149#150#151#152#153#154#164
+#165#166#167#168#169#170#180#181#182#183#184#185#186#196#197#198#199#200#201
+#202#212#213#214#215#216#217#218#228#229#230#231#232#233#234#244#245#246#247
+#248#249#250#17#0#2#1#3#2#4#4#3#5#4#4#4#6#6#5'm'#1#2#3#17#4'!'#18#5'1'#6#0'"'
+#19'AQ'#7'2a'#20'q'#8'B'#129'#'#145#21'R'#161'b'#22'3'#9#177'$'#193#209'Cr'
+#240#23#225#130'4%'#146'S'#24'cD'#241#162#178'&5'#25'T6Ed'''#10's'#131#147'F'
+'t'#194#210#226#242'UeuV7'#132#133#163#179#195#211#227#243')'#26#148#164#180
+#196#212#228#244#149#165#181#197#213#229#245'(GWf8v'#134#150#166#182#198#214
+#230#246'gw'#135#151#167#183#199#215#231#247'HXhx'#136#152#168#184#200#216
+#232#248'9IYiy'#137#153#169#185#201#217#233#249'*:JZjz'#138#154#170#186#202
+#218#234#250#255#218#0#12#3#1#0#2#17#3#17#0'?'#0#24#241'x'#190#191#236#254
+#191#232#142#220#237#206#136#248#187#221#157#179#221#159#23'~(w'#167'jv'#167
+'z|P'#248#213#221#253#151#189';/'#187#254'5uWk'#239#220#174'W~'#246#191'Uo'
+#13#216#184'%'#221#155#194#174#28#14#6#26#184#176#27'G'#1#21#22#7#3'E'#141
+#193'cq'#216#234'\'#249#246'['#217'ol'#249#187#219'>Z'#230'.b'#229#175#168
+#222'.>'#163#196#147#234'.'#227#213#225#221#207#18'vE: '#162'"'#175'j'#138
+#210#166#164#146'q'#139#220'Oq9'#199'c'#231#29#227'k'#218#247#143#10#194'/'
+#11'J'#248'P55A'#27#183's'#198#204'j'#204'NI'#165'h1A'#215'/'#244'o'#241#247
+#254#240#219#224#7#254#155#215#225#15#255#0'h'#31'r'#159#252#14'>'#204#255#0
+#211#27#255#0'gw'#223#246#211#208'+'#253'v'#189#193#255#0#163#255#0#253'P'
+#182#255#0#173'=q'#220'X'#190#191#235'n'#167#237#141#255#0#214#29#17#241'w'
+#170#183'F)'#190';'#236#186#218#190#169#248#161#241#171#172'q'#251#231#175'{'
+#247#230#167#198#31#140#253#199#213#189#189#183#246#31'Um'#237#187#221#189'E'
+#191#250'w'#186'3'#212'U'#219'GxRg6'#215#241'6'#199#230#163#161'L'#222#27#13
+#145#199#197#158#232#251'-'#237#159'-'#255#0#173#215#238'^Z'#240'~'#191#154
+'l,'#231#255#0#24#187''#18#218''#23#197#143#190'v'#211#171'J'#247#166#153
+#22#157#172'3'#208#215#146#253#196#231#29#219#250#217#251#195'x'#241'>'#155
+'e'#186#158'?'#210#129't'#203#30#141#15#219#24#173'*{Z'#170'|'#193#235#255
+#208'0'#221'S'#215'?'#199#190'9'#252'1'#202#248'K'#253#215#192#15#229#241#234
+#210'M'#252#31#9'z'#14#155#235#254#30#31'}:'#251#188#243#31#208'{='#202#22
+#158'%4}W'#243#189#185'?'#229#235#13#253#213#218'>'#171#159#183#233#244'WW'
+#129#252#173#225#31#228#233'_'#254#136#135#252#171#31#249' '#255#0#197'='#205
+#31#214#239#248'o'#248':'#143'?p'#255#0#194#250'Hv'#255#0'\'#255#0#8#248#235
+#220#255#0#178'W'#248#158#238#248'#'#136#253'$j'#251#223#230#155#240';'#211
+#254'7'#241'{'#133#253#231#230'?'#171#255#0'Z'#143#212#175#133#206#155'd'#159
,#239'>?'#249#250#144#253#190#218'<'#15#235#191'g'#199#203#215#137#251'|>'#191
+#255#209#23'>C'#255#0#217'C|'#128#255#0#184#162'?'#230'z'#247#23#253#184#191
+#254#221#169#255#0'3'#31's'#204#173#255#0#191#235#255#0'?'#223#254#255#0#239
+#247#211#221#159#227'n'#182'x'#158#129#255#0#253'O'#243#221'z'#215'C'#7'E'
+#199#255#0'_'#255#0'qD'#204#159#249'/'#255#0'oV'#255#0#143#255#0#254#201#155
+#184'?'#237#209'?'#248'7O'#249#226'?'#239#217#255#0''#189#217'?'#23#216'z'
+#216#243#251':'#255#217
]);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,464 @@
unit urotatebitmap;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Graphics, Buttons, LCLType,
IntfGraphics, fpImage, LCLIntf, Types;
type
TRotateDirection = (rdRight, rdNormal, rdLeft);
TRotatedBitmap = class( TObject )
private
FNormalImage, FRotatedImage : TLazIntfImage;
FRotateTo : TRotateDirection;
function GetBitmap : TBitmap;
procedure SetRotateTo(const Value : TRotateDirection);
procedure DoRotate;
protected
function GetWidth : Integer;
function GetHeight : Integer;
public
constructor Create; virtual;
destructor Destroy; override;
procedure Free;
procedure LoadBitmap(var b : TBitmap);
//property Bitmap : TBitmap read GetBitmap;
property Image : TLazIntfImage read FRotatedImage;
property RotateDirection : TRotateDirection read FRotateTo write SetRotateTo;
procedure Draw(X,Y: Integer;var b : TBitmap); virtual;
procedure Draw(X,Y: Integer;var b : TLazIntfImage); virtual;
procedure Draw(X,Y: Integer;var b : TBitmap;
TransparentColor : TColor); virtual;
procedure Draw(X,Y: Integer;var b : TLazIntfImage;
TransparentColor : TFPColor); virtual;
property Width : Integer read GetWidth;
property Height : Integer read GetHeight;
end;
TRotatedGlyph = class(TRotatedBitmap)
private
FNormalGlyphBitmap : TBitmap;
FNormalGlyph : TButtonGlyph;
FTransparentColor : TColor;
FButtonState : TButtonState;
function GetGlyph : TBitmap;
procedure SetGlyph(Value: TBitmap);
procedure SetButtonState(Value: TButtonState);
procedure SetTransparentColor(Value: TColor);
public
constructor Create; override;
destructor Destroy; override;
procedure Draw(X,Y: Integer;var b : TBitmap;
TransparentColor : TColor); override;
procedure Draw(X, Y: Integer; var b: TLazIntfImage;
TransparentColor: TFPColor); override;
procedure Update;
property State : TButtonState read FButtonState write SetButtonState;
property Glyph : TBitmap read GetGlyph write SetGlyph;
property TransparentColor: TColor read FTransparentColor write SetTransparentColor;
end;
TRotatedText = class(TRotatedBitmap)
private
FBitmap : TBitmap;
FText : String;
procedure SetText(Value: String);
function GetCanvas : TCanvas;
procedure PaintText;
public
constructor Create; override;
destructor Destroy; override;
procedure Update;
property Text : String read FText write SetText;
property Canvas : TCanvas read GetCanvas;
procedure Draw(X,Y: Integer;var b : TBitmap); override;
procedure Draw(X,Y: Integer;var b : TLazIntfImage); override;
end;
operator := (const b : TBitmap) : TLazIntfImage;
operator := (const i : TLazIntfImage) : TBitmap;
implementation
uses
LCLProc;
constructor TRotatedGlyph.Create;
begin
inherited;
FNormalGlyph := TButtonGlyph.Create;
//FNormalGlyph.SetTransparentMode(gtmTransparent);
FTransparentColor:=clFuchsia;
FNormalGlyphBitmap := TBitmap.Create;
FButtonState := bsUp;
end;
destructor TRotatedGlyph.Destroy;
begin
DebugLn('TRotatedGlyph.Destroy');
DebugLn('FNormalGlyph.Free Assigned: %s',[BoolToStr(Assigned(FNormalGlyph),true)]);
if Assigned(FNormalGlyph) then FNormalGlyph.Free;
DebugLn('FNormalGlyphBitmap.Free Assigned: %s',[BoolToStr(Assigned(FNormalGlyphBitmap),true)]);
if Assigned(FNormalGlyphBitmap) then FNormalGlyphBitmap.Free;
DebugLn('Inherited');
inherited;
end;
procedure TRotatedGlyph.SetTransparentColor(Value: TColor);
begin
FTransparentColor:=Value;
Update;
end;
function TRotatedGlyph.GetGlyph : TBitmap;
begin
Result := FNormalGlyphBitmap;
end;
procedure TRotatedGlyph.SetGlyph(Value: TBitmap);
begin
FNormalGlyphBitmap := Value;
//FNormalGlyph.Glyph.TransparentMode:=tmFixed;
//FNormalGlyph.Glyph.Transparent:=true;
Update;
end;
procedure TRotatedGlyph.SetButtonState(Value: TButtonState);
begin
FButtonState:=Value;
Update;
end;
procedure TRotatedGlyph.Update;
var
TempBitmap : TBitmap;
SrcIntf, TrgIntf : TLazIntfImage;
i, j : Integer;
begin
TempBitmap := TBitmap.Create;
TempBitmap.Width:=FNormalGlyphBitmap.Width;
TempBitmap.Height:=FNormalGlyphBitmap.Height;
TempBitmap.Canvas.Brush.Color:=clNone;
TempBitmap.Canvas.FillRect(0,0,TempBitmap.Width,TempBitmap.Height);
SrcIntf := FNormalGlyphBitmap;
TrgIntf := TempBitmap;
{TmpIntf.DataDescription := GetDescriptionFromDevice(0);
TmpIntf.SetSize(TempBitmap.Width, TempBitmap.Height);
}
for i := 0 to TempBitmap.Width-1 do
for j := 0 to TempBitmap.Height-1 do
if SrcIntf.Colors[i,j] <> TColorToFPColor(FTransparentColor) then
TrgIntf.Colors[i,j] := SrcIntf.Colors[i,j];
{FNormalGlyph.Draw(TempBitmap.Canvas,Rect(0,0,TempBitmap.Width,TempBitmap.Height),
Point(0,0), FButtonState, true, 0);
}
TempBitmap.Free;
TempBitmap := TrgIntf;
LoadBitmap(TempBitmap);
TempBitmap.Free;
TrgIntf.Free;
SrcIntf.Free;
end;
procedure TRotatedGlyph.Draw(X,Y: Integer;var b : TBitmap;
TransparentColor : TColor);
var
Temp : TLazIntfImage;
begin
Temp := b;
b.Free;
Draw(X,Y,Temp, TColorToFPColor(TransparentColor));
b := Temp;
Temp.Free;
end;
procedure TRotatedGlyph.Draw(X, Y: Integer; var b: TLazIntfImage;
TransparentColor: TFPColor);
var
TempBitmap,Trg : TBitmap;
begin
Trg := TBitmap.Create;
//First Rotate the Glyph then Draw it with an other State
inherited Draw(X,Y,b,TransparentColor);
TempBitmap := b;
b.Free;
Trg.Width:=b.Width;
Trg.Height:=b.Height;
FNormalGlyph.Glyph.Assign(TempBitmap);
FNormalGlyph.Draw(Trg.Canvas,Rect(0,0,Trg.Width,Trg.Height),
Point(0,0), FButtonState, true, 0);
b := Trg;
Trg.Free;
TempBitmap.Free;
end;
constructor TRotatedText.Create;
begin
inherited;
FBitmap := TBitmap.Create;
FText:='X';
SetText('');
end;
destructor TRotatedText.Destroy;
begin
FBitmap.Free;
inherited;
end;
procedure TRotatedText.Update;
begin
PaintText;
end;
procedure TRotatedText.SetText(Value: String);
begin
if FText <> Value then
begin
FText:=Value;
PaintText;
end;
end;
function TRotatedText.GetCanvas : TCanvas;
begin
Result := FBitmap.Canvas;
end;
procedure TRotatedText.PaintText;
var
TextSize : TSize;
begin
TextSize := FBitmap.Canvas.TextExtent(FText);
FBitmap.Width:=TextSize.cx;
FBitmap.Height:=TextSize.cy;
FBitmap.Canvas.FillRect(0,0,FBitmap.Width, FBitmap.Height);
FBitmap.Canvas.TextOut(0,0,FText);
Inherited LoadBitmap(FBitmap);
end;
procedure TRotatedText.Draw(X,Y: Integer;var b : TBitmap);
begin
Inherited Draw(X,Y,b,FBitmap.Canvas.Brush.Color);
end;
procedure TRotatedText.Draw(X,Y: Integer;var b : TLazIntfImage);
begin
Inherited Draw(X,Y,b,TColorToFPColor(FBitmap.Canvas.Brush.Color));
end;
operator := (const b : TBitmap) : TLazIntfImage;
begin
Result := TLazIntfImage.Create(0,0);
Result.LoadFromBitmap(b.Handle,b.MaskHandle);
end;
operator := (const i : TLazIntfImage) : TBitmap;
begin
Result := TBitmap.Create;
Result.LoadFromIntfImage(i);
end;
constructor TRotatedBitmap.Create;
begin
//inherited;
FRotateTo:=rdNormal;
end;
destructor TRotatedBitmap.Destroy;
begin
DebugLn('Destroy');
if Assigned(FNormalImage) then FNormalImage.Free;
if Assigned(FRotatedImage) then FRotatedImage.Free;
end;
procedure TRotatedBitmap.Free;
begin
inherited;
//if Self<>nil then
//Self.Destroy;
end;
function TRotatedBitmap.GetBitmap : TBitmap;
var
TempIntf : TLazIntfImage;
begin
if FRotateTo = rdNormal then
TempIntf := FNormalImage
else
TempIntf := FRotatedImage;
if Assigned(TempIntf) then
Result := TempIntf;
end;
procedure TRotatedBitmap.SetRotateTo(const Value : TRotateDirection);
begin
//WriteLn(FRotateTo<>Value);
if FRotateTo<>Value then
begin
//WriteLn('SetRotateTo');
FRotateTo:=Value;
DoRotate;
end;
end;
procedure TRotatedBitmap.LoadBitmap(var b : TBitmap);
begin
if FNormalImage <> nil then FNormalImage.Free;
if FRotatedImage = nil then begin
FRotatedImage := TLazIntfImage.Create(0,0);
FRotatedImage.DataDescription := GetDescriptionFromDevice(0);
end;
DebugLn('Assigned: B',BoolToStr(Assigned(FNormalImage),true));
FNormalImage := b;
//FNormalImage := TLazIntfImage.Create(0,0);
DebugLn('Assigned: A',BoolToStr(Assigned(FNormalImage),true));
if FRotateTo <> rdNormal then DoRotate;
end;
procedure TRotatedBitmap.DoRotate;
var
px, py, iw, ih, nx, ny : Integer;
CurColor: TFPColor;
begin
if FRotateTo=rdNormal then Exit;
{if Assigned(FRotatedImage) then
FRotatedImage.Free;
FRotatedImage := TLazIntfImage.Create(0,0);
FRotatedImage.DataDescription := GetDescriptionFromDevice(0);
}
FRotatedImage.SetSize({FNormalImage.Width,FNormalImage.Height}
FNormalImage.Height,FNormalImage.Width);
FRotatedImage.FillPixels(colWhite);
//WriteLn(FRotatedImage.Width, ' ', FRotatedImage.Height);
for px := 0 to FNormalImage.Width-1 do
for py := 0 to FNormalImage.Height-1 do
begin
if FRotateTo = rdRight then
begin
nx := FRotatedImage.Width-1-py;
ny := px;
end else begin
nx := py;
ny := FRotatedImage.Height-1-px;
end;
//WriteLn(nx, ' ', ny, ' ', px, ' ', py);
CurColor := FNormalImage.Colors[px,py];
FRotatedImage.Colors[nx,ny]:= CurColor;
end;
end;
procedure TRotatedBitmap.Draw(X,Y: Integer;var b : TBitmap);
begin
Draw(X,Y,b,clNone);
end;
procedure TRotatedBitmap.Draw(X,Y: Integer;var b : TLazIntfImage);
begin
Draw(X,Y,b,TColorToFPColor(clNone));
end;
procedure TRotatedBitmap.Draw(X,Y: Integer;var b : TBitmap; TransparentColor : TColor);
var
TempIntfImage : TLazIntfImage;
begin
TempIntfImage := b;
b.Free;
Draw(X,Y, TempIntfImage, TColorToFPColor(TransparentColor));
b := TempIntfImage;
TempIntfImage.Free;
end;
procedure TRotatedBitmap.Draw(X,Y: Integer;var b : TLazIntfImage; TransparentColor : TFPColor);
var
px, py : Integer;
TempIntf : TLazIntfImage;
begin
if FRotateTo = rdNormal then
TempIntf := FNormalImage
else
TempIntf := FRotatedImage;
//WriteLn(Assigned(FNormalImage));
//WriteLn(Assigned(FRotatedImage));
for px := 0 to TempIntf.Width-1 do
for py := 0 to TempIntf.Height-1 do
if (TempIntf.Colors[px,py] <> TransparentColor)
AND ((X+px) < b.Width) AND ((Y+py) < b.Height)
AND ((X+px) >= 0) AND ((Y+py) >= 0) then
begin
//WriteLn(px, ' ', py);
b.Colors[X+px,Y+py]:=TempIntf.Colors[px,py];
end;
end;
function TRotatedBitmap.GetWidth : Integer;
begin
Result := -1;
if (FRotateTo = rdNormal) AND Assigned(FNormalImage) then
Result := FNormalImage.Width
else if Assigned(FRotatedImage) then
Result := FRotatedImage.Width;
end;
function TRotatedBitmap.GetHeight : Integer;
begin
Result := -1;
if (FRotateTo = rdNormal) AND Assigned(FNormalImage) then
Result := FNormalImage.Height
else if Assigned(FRotatedImage) then
Result := FRotatedImage.Height;
end;
end.