diff --git a/components/gradcontrols/examples/Forms/main.lfm b/components/gradcontrols/examples/Forms/main.lfm index 22fead4d8..7eb0e8c3a 100644 --- a/components/gradcontrols/examples/Forms/main.lfm +++ b/components/gradcontrols/examples/Forms/main.lfm @@ -1,7 +1,7 @@ object Form1: TForm1 - Left = 292 + Left = 473 Height = 443 - Top = 151 + Top = 192 Width = 576 ActiveControl = TrackBar1 BorderIcons = [biSystemMenu, biMinimize] @@ -10,7 +10,8 @@ object Form1: TForm1 ClientHeight = 443 ClientWidth = 576 OnCreate = FormCreate - LCLVersion = '0.9.25' + ParentFont = False + LCLVersion = '0.9.27' object Label1: TLabel Left = 8 Height = 14 @@ -120,7 +121,7 @@ object Form1: TForm1 object TrackBar2: TTrackBar Left = 8 Height = 30 - Top = 155 + Top = 152 Width = 440 Max = 100000 OnChange = TrackBar2Change @@ -311,6 +312,7 @@ object Form1: TForm1 Top = 200 Width = 168 Caption = 'Sample Text' + Font.Color = clWhite Font.Height = -15 TabOrder = 9 TabStop = True @@ -321,10 +323,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 end object BaseColorButton: TGradButton Left = 8 @@ -332,6 +335,7 @@ object Form1: TForm1 Top = 35 Width = 104 Caption = 'BaseColorButton' + Font.Color = clWhite OnClick = BaseColorClick TabOrder = 10 TabStop = True @@ -342,10 +346,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 end object NormalBlendColorButton: TGradButton Left = 120 @@ -353,6 +358,7 @@ object Form1: TForm1 Top = 35 Width = 104 Caption = 'NormalBlendColorButton' + Font.Color = clWhite OnClick = NormalBlendClick TabOrder = 11 TabStop = True @@ -363,10 +369,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 end object OverBlendButton: TGradButton Left = 232 @@ -374,6 +381,7 @@ object Form1: TForm1 Top = 35 Width = 104 Caption = 'OverBlendButton' + Font.Color = clWhite OnClick = OverBlendClick TabOrder = 12 TabStop = True @@ -384,10 +392,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 end object LoadGlyphButton: TGradButton Left = 452 @@ -395,6 +404,7 @@ object Form1: TForm1 Top = 144 Width = 104 Caption = 'Load Glyph' + Font.Color = clWhite OnClick = LoadGlyphButtonClick TabOrder = 13 TabStop = True @@ -405,10 +415,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 end object GlyphBackgroundColorButton: TGradButton Left = 452 @@ -416,6 +427,7 @@ object Form1: TForm1 Top = 192 Width = 104 Caption = 'GlyphBackgroundColorButton' + Font.Color = clWhite OnClick = GlyphBackgroundColorButtonClick TabOrder = 14 TabStop = True @@ -426,10 +438,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 end object ClickColorButton: TGradButton Left = 452 @@ -437,6 +450,7 @@ object Form1: TForm1 Top = 35 Width = 104 Caption = 'ClickColorButton' + Font.Color = clWhite OnClick = ClickColorButtonClick TabOrder = 15 TabStop = True @@ -447,10 +461,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 end object DisabledColorButton: TGradButton Left = 452 @@ -458,6 +473,7 @@ object Form1: TForm1 Top = 93 Width = 104 Caption = 'DisabledColorButton' + Font.Color = clWhite OnClick = DisabledColorButtonClick TabOrder = 16 TabStop = True @@ -468,10 +484,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 end object UnderlineCheckBox: TCheckBox Left = 327 @@ -497,6 +514,7 @@ object Form1: TForm1 Top = 35 Width = 104 Caption = 'Text Color' + Font.Color = clWhite OnClick = TextColorButtonClick TabOrder = 19 TabStop = True @@ -507,10 +525,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 end object ItalicCheckBox: TCheckBox Left = 327 diff --git a/components/gradcontrols/examples/Forms/main.lrs b/components/gradcontrols/examples/Forms/main.lrs index 5f88c0b52..c782a3645 100644 --- a/components/gradcontrols/examples/Forms/main.lrs +++ b/components/gradcontrols/examples/Forms/main.lrs @@ -1,186 +1,188 @@ { This is an automatically generated lazarus resource file } LazarusResources.Add('TForm1','FORMDATA',[ - 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'$'#1#6'Height'#3#187#1#3'Top'#3#151#0#5'W' - +'idth'#3'@'#2#13'ActiveControl'#7#9'TrackBar1'#11'BorderIcons'#11#12'biSyste' - +'mMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#16'TGrad' - +'Button-Demo'#12'ClientHeight'#3#187#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'Pa' - +'rentColor'#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 - +'Label3'#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#133#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#240#0#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#176 - +#0#5'Width'#2'W'#7'Caption'#6#16'Glyph Background'#11'ParentColor'#8#0#0#6'T' - +'Label'#7'Label10'#4'Left'#3#216#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'E'#7'Caption'#6#14'Disable' - +'d Color'#11'ParentColor'#8#0#0#6'TLabel'#7'Label12'#4'Left'#3'p'#1#6'Height' - +#2#14#3'Top'#2#16#5'Width'#2'3'#7'Caption'#6#10'Text Color'#11'ParentColor'#8 - +#0#0#9'TTrackBar'#9'TrackBar1'#4'Left'#2#8#6'Height'#2#30#3'Top'#2'`'#5'Widt' - +'h'#3#184#1#3'Max'#4#160#134#1#0#8'OnChange'#7#15'TrackBar1Change'#8'ScalePo' - +'s'#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'Height'#2#30#3'Top'#3#155#0 - +#5'Width'#3#184#1#3'Max'#4#160#134#1#0#8'OnChange'#7#15'TrackBar2Change'#8'S' - +'calePos'#7#8'trBottom'#7'TabStop'#8#9'TickStyle'#7#6'tsNone'#5'Align'#7#8'a' - +'lCustom'#8'TabOrder'#2#1#0#0#11'TCheckGroup'#11'CheckGroup1'#4'Left'#2#8#6 - +'Height'#2'i'#3'Top'#3'@'#1#5'Width'#3#129#0#8'AutoFill'#9#7'Caption'#6#12'B' - +'order Sides'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomS' - +'pacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize' - +#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizi' - +'ng.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7 - +#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBotto' - +'m'#27'ChildSizing.ControlsPerLine'#2#1#13'Items.Strings'#1#6#12'bsBottomLin' - +'e'#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'Height'#2'Y'#3'Top'#3#216#0#5 - +'Width'#3#129#0#8'AutoFill'#9#7'Caption'#6#5'Other'#28'ChildSizing.LeftRight' - +'Spacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHor' - +'izontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24 - +'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChi' - +'lds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Lay' - +'out'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1 - +#13'Items.Strings'#1#6#15'ShowFocusBorder'#6#9'ShowGlyph'#6#7'Enabled'#0#11 - +'OnItemClick'#7#20'CheckGroup2ItemClick'#8'TabOrder'#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 T' - +'ype'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2 - +#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'Child' - +'Sizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.Shrin' - +'kHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsSc' - +'aleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'Ch' - +'ildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'/'#11'ClientWidth'#2'}'#9 - +'ItemIndex'#2#0#13'Items.Strings'#1#6#12'gtHorizontal'#6#10'gtVertical'#0#7 - +'OnClick'#7#16'RadioGroup1Click'#8'TabOrder'#2#8#0#0#11'TRadioGroup'#11'Radi' - +'oGroup2'#4'Left'#3#151#0#6'Height'#2'i'#3'Top'#3'@'#1#5'Width'#3#129#0#8'Au' - +'toFill'#9#7'Caption'#6#17'Rotated Direction'#28'ChildSizing.LeftRightSpacin' - +'g'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizonta' - +'l'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsH' - +'omogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds' - ,#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7 - +#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'Cl' - +'ientHeight'#2'W'#11'ClientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6 - +#8'rdNormal'#6#6'rdLeft'#6#7'rdRight'#0#7'OnClick'#7#16'RadioGroup2Click'#8 - +'TabOrder'#2#2#0#0#11'TRadioGroup'#11'RadioGroup3'#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'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#12'ClientHeight'#2'W'#11'ClientWidth'#2'u'#9'Item' - +'Index'#2#1#13'Items.Strings'#1#6#12'blGlyphRight'#6#11'blGlyphLeft'#6#10'bl' - +'GlyphTop'#6#13'blGlyphBottom'#0#7'OnClick'#7#16'RadioGroup3Click'#8'TabOrde' - +'r'#2#3#0#0#11'TRadioGroup'#11'RadioGroup4'#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'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#12'ClientHeight'#2'X'#11'ClientWidth'#2'}'#9'Item' - +'Index'#2#0#13'Items.Strings'#1#6#8'taCenter'#6#13'taLeftJustify'#6#14'taRig' - +'htJustify'#0#7'OnClick'#7#16'RadioGroup4Click'#8'TabOrder'#2#5#0#0#12'TLabe' - +'ledEdit'#12'LabeledEdit1'#4'Left'#3'H'#1#6'Height'#2#23#3'Top'#3#216#0#5'Wi' - +'dth'#2'P EditLabel.AnchorSideLeft.Control'#7#12'LabeledEdit1"EditLabel.Anch' - +'orSideBottom.Control'#7#12'LabeledEdit1'#14'EditLabel.Left'#3'H'#1#16'EditL' - +'abel.Height'#2#14#13'EditLabel.Top'#3#199#0#15'EditLabel.Width'#2'I'#17'Edi' - +'tLabel.Caption'#6#14'Button Caption'#21'EditLabel.ParentColor'#8#11'ParentC' - +'olor'#8#8'TabOrder'#2#7#4'Text'#6#11'Sample Text'#7'OnKeyUp'#7#17'LabeledEd' - +'it1KeyUp'#0#0#11'TGradButton'#1'b'#4'Left'#3#152#0#6'Height'#2'`'#3'Top'#3 - +#200#0#5'Width'#3#168#0#7'Caption'#6#11'Sample Text'#11'Font.Height'#2#241#8 - +'TabOrder'#2#9#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'Ove' - +'rBlend'#5#0'`'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7 - +#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver' - +#15'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'#15 - +'BaseColorButton'#4'Left'#2#8#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Cap' - +'tion'#6#15'BaseColorButton'#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#0'`' - +#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16 - +'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'Backgrou' - +'ndColor'#7#9'clBtnFace'#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'#22'NormalBlendC' - +'olorButton'#4'Left'#2'x'#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption' - +#6#22'NormalBlendColorButton'#7'OnClick'#7#16'NormalBlendClick'#8'TabOrder'#2 - +#11#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5#0 - +'`'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue' + 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#217#1#6'Height'#3#187#1#3'Top'#3#192#0#5 + +'Width'#3'@'#2#13'ActiveControl'#7#9'TrackBar1'#11'BorderIcons'#11#12'biSyst' + +'emMenu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#16'TGra' + +'dButton-Demo'#12'ClientHeight'#3#187#1#11'ClientWidth'#3'@'#2#8'OnCreate'#7 + +#10'FormCreate'#10'ParentFont'#8#10'LCLVersion'#6#6'0.9.27'#0#6'TLabel'#6'La' + +'bel1'#4'Left'#2#8#6'Height'#2#14#3'Top'#2'K'#5'Width'#2'<'#7'Caption'#6#11 + +'NormalBlend'#11'ParentColor'#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'Label3'#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'T' + +'op'#3#131#0#5'Width'#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#133#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'Label7'#4'Left'#3#240#0#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'ParentColor'#8#0#0#6'TLabel'#6'Label9'#4'Left'#3#205#1#6'Height'#2 + +#14#3'Top'#3#176#0#5'Width'#2'W'#7'Caption'#6#16'Glyph Background'#11'Parent' + +'Color'#8#0#0#6'TLabel'#7'Label10'#4'Left'#3#216#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'Left'#3#208#1#6'Height'#2#14#3'Top'#2'H'#5'Width'#2'E'#7'Caption' + +#6#14'Disabled Color'#11'ParentColor'#8#0#0#6'TLabel'#7'Label12'#4'Left'#3'p' + +#1#6'Height'#2#14#3'Top'#2#16#5'Width'#2'3'#7'Caption'#6#10'Text Color'#11'P' + +'arentColor'#8#0#0#9'TTrackBar'#9'TrackBar1'#4'Left'#2#8#6'Height'#2#30#3'To' + +'p'#2'`'#5'Width'#3#184#1#3'Max'#4#160#134#1#0#8'OnChange'#7#15'TrackBar1Cha' + +'nge'#8'ScalePos'#7#8'trBottom'#9'TickStyle'#7#6'tsNone'#5'Align'#7#8'alCust' + +'om'#8'TabOrder'#2#0#0#0#9'TTrackBar'#9'TrackBar2'#4'Left'#2#8#6'Height'#2#30 + +#3'Top'#3#152#0#5'Width'#3#184#1#3'Max'#4#160#134#1#0#8'OnChange'#7#15'Track' + +'Bar2Change'#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'CheckGroup1'#4 + +'Left'#2#8#6'Height'#2'i'#3'Top'#3'@'#1#5'Width'#3#129#0#8'AutoFill'#9#7'Cap' + +'tion'#6#12'Border Sides'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizin' + +'g.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenou' + +'sChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize' + +#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shrink' + +'Vertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightTh' + +'enTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#13'Items.Strings'#1#6#12 + +'bsBottomLine'#6#9'bsTopLine'#6#10'bsLeftLine'#6#11'bsRightLine'#0#11'OnItem' + +'Click'#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'Height'#2'Y'#3'To' + +'p'#3#216#0#5'Width'#3#129#0#8'AutoFill'#9#7'Caption'#6#5'Other'#28'ChildSiz' + +'ing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizi' + +'ng.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.Enlarge' + +'Vertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7 + +#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'C' + +'hildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Contr' + +'olsPerLine'#2#1#13'Items.Strings'#1#6#15'ShowFocusBorder'#6#9'ShowGlyph'#6#7 + +'Enabled'#0#11'OnItemClick'#7#20'CheckGroup2ItemClick'#8'TabOrder'#2#6#4'Dat' + +'a'#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'Captio' + +'n'#6#13'Gradient Type'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.' + +'TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousC' + +'hildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize' + +#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shrink' + +'Vertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightTh' + +'enTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'/'#11 + +'ClientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#12'gtHorizontal'#6 + +#10'gtVertical'#0#7'OnClick'#7#16'RadioGroup1Click'#8'TabOrder'#2#8#0#0#11'T' + +'RadioGroup'#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'ChildSiz' + +'ing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizi' + +'ng.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.Enlarge' + +'Vertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7 + ,#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'C' + +'hildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Contr' + +'olsPerLine'#2#1#12'ClientHeight'#2'W'#11'ClientWidth'#2'}'#9'ItemIndex'#2#0 + +#13'Items.Strings'#1#6#8'rdNormal'#6#6'rdLeft'#6#7'rdRight'#0#7'OnClick'#7#16 + +'RadioGroup2Click'#8'TabOrder'#2#2#0#0#11'TRadioGroup'#11'RadioGroup3'#4'Lef' + +'t'#3'('#1#6'Height'#2'i'#3'Top'#3'@'#1#5'Width'#2'y'#8'AutoFill'#9#7'Captio' + +'n'#6#13'Button Layout'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.' + +'TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousC' + +'hildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize' + +#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shrink' + +'Vertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightTh' + +'enTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'W'#11 + +'ClientWidth'#2'u'#9'ItemIndex'#2#1#13'Items.Strings'#1#6#12'blGlyphRight'#6 + +#11'blGlyphLeft'#6#10'blGlyphTop'#6#13'blGlyphBottom'#0#7'OnClick'#7#16'Radi' + +'oGroup3Click'#8'TabOrder'#2#3#0#0#11'TRadioGroup'#11'RadioGroup4'#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'ChildSizing.To' + +'pBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChi' + +'ldResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28 + +'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVer' + +'tical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenT' + +'opToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'X'#11'Cl' + +'ientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#8'taCenter'#6#13'taL' + +'eftJustify'#6#14'taRightJustify'#0#7'OnClick'#7#16'RadioGroup4Click'#8'TabO' + +'rder'#2#5#0#0#12'TLabeledEdit'#12'LabeledEdit1'#4'Left'#3'H'#1#6'Height'#2 + +#23#3'Top'#3#216#0#5'Width'#2'P EditLabel.AnchorSideLeft.Control'#7#12'Label' + +'edEdit1"EditLabel.AnchorSideBottom.Control'#7#12'LabeledEdit1'#14'EditLabel' + +'.Left'#3'H'#1#16'EditLabel.Height'#2#14#13'EditLabel.Top'#3#199#0#15'EditLa' + +'bel.Width'#2'I'#17'EditLabel.Caption'#6#14'Button Caption'#21'EditLabel.Par' + +'entColor'#8#11'ParentColor'#8#8'TabOrder'#2#7#4'Text'#6#11'Sample Text'#7'O' + +'nKeyUp'#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#7'Caption'#6#11'Sample Text'#10 + +'Font.Color'#7#7'clWhite'#11'Font.Height'#2#241#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'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColo' + +'r'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'cl' + +'BtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'Cli' + +'ckColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpa' + +'cing'#2#15#0#0#11'TGradButton'#15'BaseColorButton'#4'Left'#2#8#6'Height'#2 + +#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#15'BaseColorButton'#10'Font.Color' + +#7#7'clWhite'#7'OnClick'#7#14'BaseColorClick'#8'TabOrder'#2#10#7'TabStop'#9 + +#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+' + +#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColo' + +'r'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'cl' + +'BtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'Cli' + +'ckColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpa' + +'cing'#2#15#0#0#11'TGradButton'#22'NormalBlendColorButton'#4'Left'#2'x'#6'He' + +'ight'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#22'NormalBlendColorButton' + +#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#16'NormalBlendClick'#8'TabOrder'#2 + +#11#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5' + +'^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue' +#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'Backg' - +'roundColor'#7#9'clBtnFace'#11'BorderSides'#11#9'bsTopLine'#12'bsBottomLine' - +#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBorder'#9#20'GlyphBackgroundCo' - +'lor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0#11'TGradButton'#15'OverBle' - +'ndButton'#4'Left'#3#232#0#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Captio' - +'n'#6#15'OverBlendButton'#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#0'`' + +'roundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7 + +#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'Au' + +'toHeightBorderSpacing'#2#15#0#0#11'TGradButton'#15'OverBlendButton'#4'Left' + +#3#232#0#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#15'OverBlendB' + +'utton'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#14'OverBlendClick'#8'TabOrd' + +'er'#2#12#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlen' + +'d'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'cl' + +'Blue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15 + +'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundCol' + +'or'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15 + +#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradButton'#15'LoadGlyphButton'#4 + +'Left'#3#196#1#6'Height'#2#25#3'Top'#3#144#0#5'Width'#2'h'#7'Caption'#6#10'L' + ,'oad Glyph'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#20'LoadGlyphButtonClick' + +#8'TabOrder'#2#13#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9 + +'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color' + +#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilv' + +'er'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgr' + +'oundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacin' + +'g'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradButton'#26'GlyphBackgr' + +'oundColorButton'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#3#192#0#5'Width'#2'h' + +#7'Caption'#6#26'GlyphBackgroundColorButton'#10'Font.Color'#7#7'clWhite'#7'O' + +'nClick'#7#31'GlyphBackgroundColorButtonClick'#8'TabOrder'#2#14#7'TabStop'#9 + +#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+' + +#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColo' + +'r'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'cl' + +'BtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'Cli' + +'ckColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpa' + +'cing'#2#15#0#0#11'TGradButton'#16'ClickColorButton'#4'Left'#3#196#1#6'Heigh' + +'t'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#16'ClickColorButton'#10'Font' + +'.Color'#7#7'clWhite'#7'OnClick'#7#21'ClickColorButtonClick'#8'TabOrder'#2#15 + +#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^' +#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16 +'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'Backgrou' - +'ndColor'#7#9'clBtnFace'#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'#15'LoadGlyphBut' - +'ton'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#3#144#0#5'Width'#2'h'#7'Caption' - +#6#10'Load Glyph'#7'OnClick'#7#20'LoadGlyphButtonClick'#8'TabOrder'#2#13#7'T' - ,'abStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5#0'`'#186 + +'ndColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7 + +'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'Auto' + +'HeightBorderSpacing'#2#15#0#0#11'TGradButton'#19'DisabledColorButton'#4'Lef' + +'t'#3#196#1#6'Height'#2#25#3'Top'#2']'#5'Width'#2'h'#7'Caption'#6#19'Disable' + +'dColorButton'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#24'DisabledColorButt' + +'onClick'#8'TabOrder'#2#16#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128 + +#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue' + +#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7 + +#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'Gly' + +'phBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBord' + +'erSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#9'TCheckBox'#17'Underl' + +'ineCheckBox'#4'Left'#3'G'#1#6'Height'#2#19#3'Top'#3#242#0#5'Width'#2'G'#7'C' + +'aption'#6#9'Underline'#8'OnChange'#7#23'UnderlineCheckBoxChange'#8'TabOrder' + +#2#17#0#0#9'TCheckBox'#12'BoldCheckBox'#4'Left'#3'G'#1#6'Height'#2#19#3'Top' + +#3#5#1#5'Width'#2'.'#7'Caption'#6#4'Bold'#8'OnChange'#7#18'BoldCheckBoxChang' + +'e'#8'TabOrder'#2#18#0#0#11'TGradButton'#15'TextColorButton'#4'Left'#3'X'#1#6 + +'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7'Caption'#6#10'Text Color'#10'Font.' + +'Color'#7#7'clWhite'#7'OnClick'#7#20'TextColorButtonClick'#8'TabOrder'#2#19#7 + +'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186 +'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'Norm' +'alBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundCo' - +'lor'#7#9'clBtnFace'#11'BorderSides'#11#9'bsTopLine'#12'bsBottomLine'#10'bsL' - +'eftLine'#11'bsRightLine'#0#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7 - +#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0#11'TGradButton'#26'GlyphBackgroun' - +'dColorButton'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#3#192#0#5'Width'#2'h'#7 - +'Caption'#6#26'GlyphBackgroundColorButton'#7'OnClick'#7#31'GlyphBackgroundCo' - +'lorButtonClick'#8'TabOrder'#2#14#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0 - +#0#128#254'?'#9'OverBlend'#5#0'`'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6 - +'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlend' - +'Color'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#11'BorderSides'#11#9 - +'bsTopLine'#12'bsBottomLine'#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBo' - +'rder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0 - +#11'TGradButton'#16'ClickColorButton'#4'Left'#3#196#1#6'Height'#2#25#3'Top'#2 - +'#'#5'Width'#2'h'#7'Caption'#6#16'ClickColorButton'#7'OnClick'#7#21'ClickCol' - +'orButtonClick'#8'TabOrder'#2#15#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0 - +#128#254'?'#9'OverBlend'#5#0'`'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'c' - +'lBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendC' - +'olor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#11'BorderSides'#11#9 - +'bsTopLine'#12'bsBottomLine'#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBo' - +'rder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0 - +#11'TGradButton'#19'DisabledColorButton'#4'Left'#3#196#1#6'Height'#2#25#3'To' - +'p'#2']'#5'Width'#2'h'#7'Caption'#6#19'DisabledColorButton'#7'OnClick'#7#24 - +'DisabledColorButtonClick'#8'TabOrder'#2#16#7'TabStop'#9#11'NormalBlend'#5#0 - +#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5#0'`'#186'I'#12#2'+'#167#254'?'#9'Base' - +'Color'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14 - +'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#11'BorderS' - +'ides'#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#9'TCheckBox'#17'UnderlineCheckBox'#4'Left'#3'G'#1#6'Height'#2#19 - +#3'Top'#3#242#0#5'Width'#2'G'#7'Caption'#6#9'Underline'#8'OnChange'#7#23'Und' - +'erlineCheckBoxChange'#8'TabOrder'#2#17#0#0#9'TCheckBox'#12'BoldCheckBox'#4 - +'Left'#3'G'#1#6'Height'#2#19#3'Top'#3#5#1#5'Width'#2'.'#7'Caption'#6#4'Bold' - +#8'OnChange'#7#18'BoldCheckBoxChange'#8'TabOrder'#2#18#0#0#11'TGradButton'#15 - +'TextColorButton'#4'Left'#3'X'#1#6'Height'#2#25#3'Top'#2'#'#5'Width'#2'h'#7 - +'Caption'#6#10'Text Color'#7'OnClick'#7#20'TextColorButtonClick'#8'TabOrder' - +#2#19#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5 - +#0'`'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue' - +#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'Backg' - +'roundColor'#7#9'clBtnFace'#11'BorderSides'#11#9'bsTopLine'#12'bsBottomLine' - +#10'bsLeftLine'#11'bsRightLine'#0#15'ShowFocusBorder'#9#20'GlyphBackgroundCo' - +'lor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#0#0#9'TCheckBox'#14'ItalicChec' - +'kBox'#4'Left'#3'G'#1#6'Height'#2#19#3'Top'#3#24#1#5'Width'#2'1'#7'Caption'#6 - +#6'Italic'#8'OnChange'#7#20'ItalicCheckBoxChange'#8'TabOrder'#2#20#0#0#9'TCh' - +'eckBox'#24'GlyphTransparentCheckBox'#4'Left'#3#192#1#6'Height'#2#19#3'Top'#3 - +#220#0#5'Width'#2's'#7'Caption'#6#17'Glyph Transparent'#8'OnChange'#7#30'Gly' - +'phTransparentCheckBoxChange'#8'TabOrder'#2#21#0#0#12'TColorDialog'#12'Color' - +'Dialog1'#5'Color'#4'1i'#182#0#4'left'#2#8#3'top'#3#176#0#0#0#18'TOpenPictur' - +'eDialog'#18'OpenPictureDialog1'#6'Filter'#6#255'Graphic (*.tga;*.jpg;*.ico;' - +'*.ppm;*.pgm;*.pbm;*.png;*.xpm;*.bmp)|*.tga;*.jpg;*.ico;*.ppm;*.pgm;*.pbm;*.' - +'png;*.xpm;*.bmp|TGA Image File (*.tga)|*.tga|Jpint Picture Expert Group (*.' - +'jpg)|*.jpg|Symbol (*.ico)|*.ico|Portable Pixmap (*.ppm)|*.ppm|Portable Gray' - +'map'#4'left'#2'0'#3'top'#3#176#0#0#0#0 + +'lor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWh' + +'ite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeig' + +'htBorderSpacing'#2#15#0#0#9'TCheckBox'#14'ItalicCheckBox'#4'Left'#3'G'#1#6 + +'Height'#2#19#3'Top'#3#24#1#5'Width'#2'1'#7'Caption'#6#6'Italic'#8'OnChange' + +#7#20'ItalicCheckBoxChange'#8'TabOrder'#2#20#0#0#9'TCheckBox'#24'GlyphTransp' + +'arentCheckBox'#4'Left'#3#192#1#6'Height'#2#19#3'Top'#3#220#0#5'Width'#2's'#7 + +'Caption'#6#17'Glyph Transparent'#8'OnChange'#7#30'GlyphTransparentCheckBoxC' + +'hange'#8'TabOrder'#2#21#0#0#12'TColorDialog'#12'ColorDialog1'#5'Color'#4'1i' + +#182#0#4'left'#2#8#3'top'#3#176#0#0#0#18'TOpenPictureDialog'#18'OpenPictureD' + +'ialog1'#6'Filter'#6#255'Graphic (*.tga;*.jpg;*.ico;*.ppm;*.pgm;*.pbm;*.png;' + +'*.xpm;*.bmp)|*.tga;*.jpg;*.ico;*.ppm;*.pgm;*.pbm;*.png;*.xpm;*.bmp|TGA Imag' + +'e File (*.tga)|*.tga|Jpint Picture Expert Group (*.jpg)|*.jpg|Symbol (*.ico' + +')|*.ico|Portable Pixmap (*.ppm)|*.ppm|Portable Graymap'#4'left'#2'0'#3'top' + +#3#176#0#0#0#0 ]); diff --git a/components/gradcontrols/examples/Forms/unit1.lfm b/components/gradcontrols/examples/Forms/unit1.lfm index 921851c1c..68aadaa75 100644 --- a/components/gradcontrols/examples/Forms/unit1.lfm +++ b/components/gradcontrols/examples/Forms/unit1.lfm @@ -1,37 +1,31 @@ object Form1: TForm1 - Left = 254 - Height = 506 - Top = 116 - Width = 898 + Left = 300 + Height = 490 + Top = 146 + Width = 884 Caption = 'Form1' - ClientHeight = 506 - ClientWidth = 898 + ClientHeight = 490 + ClientWidth = 884 OnCreate = FormCreate OnDestroy = FormDestroy - OnMouseWheel = FormMouseWheel - OnMouseWheelDown = FormMouseWheelDown - OnMouseWheelUp = FormMouseWheelUp ParentFont = False LCLVersion = '0.9.27' object Panel1: TPanel - Height = 506 - Width = 751 - Align = alLeft - Anchors = [akTop, akLeft, akRight, akBottom] + Height = 490 + Width = 646 + Align = alClient Caption = 'Panel1' - ClientHeight = 506 - ClientWidth = 751 + ClientHeight = 490 + ClientWidth = 646 TabOrder = 0 - OnClick = BewegeBtn object GradTabControl1: TGradTabControl Left = 1 - Height = 504 + Height = 488 Top = 1 - Width = 749 + Width = 644 Align = alClient ControlStyle = [csAcceptsControls] - ActivePage = GradTabPage1 - OnTabButtonClick = GradTabControl1TabButtonClick + ActivePage = GradTabPage3 OnTabButtonMouseDown = GradTabControl1TabButtonMouseDown OnTabButtonMouseUp = GradTabControl1TabButtonMouseUp OnTabButtonMouseMove = GradTabControl1TabButtonMouseMove @@ -40,17 +34,38 @@ object Form1: TForm1 OnMouseDown = GradTabControl1MouseDown OnMouseWheelUp = GradTabControl1MouseWheelUp OnMouseWheelDown = GradTabControl1MouseWheelDown - OnPagesBarDragOver = GradTabControl1PagesBarDragOver + PageIndex = 3 TabHeight = 20 MoveIncrement = 1 OnPageChanged = GradTabControl1PageChanged + object GradTabPage1: TGradTabPage + Left = 2 + Height = 464 + Top = 22 + Width = 640 + PageIndex = 1 + Caption = 'abc' + Color = clGrayText + TabColor = clBlue + TabTextAlignment = taCenter + object ToggleBox2: TToggleBox + Left = 357 + Height = 23 + Top = 155 + Width = 90 + Caption = 'ToggleBox2' + TabOrder = 0 + end + end object GradTabPage2: TGradTabPage Left = 2 - Height = 480 + Height = 464 Top = 22 - Width = 745 - PageIndex = 1 + Width = 640 Caption = 'GradTabPage2' + TabPopupMenu = PopupMenu1 + TabColor = clBlue + TabTextAlignment = taCenter object PageControl1: TPageControl Left = 173 Height = 200 @@ -61,7 +76,6 @@ object Form1: TForm1 TabOrder = 0 OnDragDrop = PageControl1DragDrop OnDragOver = PageControl1DragOver - OnMouseDown = PageControl1MouseDown object TabSheet1: TTabSheet Caption = 'TabSheet1' end @@ -89,47 +103,50 @@ object Form1: TForm1 TabOrder = 2 end end - object GradTabPage1: TGradTabPage + object GradTabPage4: TGradTabPage Left = 2 - Height = 480 + Height = 464 Top = 22 - Width = 745 - Caption = 'GradTabPage1' - object Button1: TButton - Left = 94 + Width = 640 + PageIndex = 2 + Caption = 'äöü-test' + TabColor = clBlue + TabTextAlignment = taCenter + end + object GradTabPage3: TGradTabPage + Left = 2 + Height = 464 + Top = 22 + Width = 640 + PageIndex = 3 + Caption = 'GradTabPage3' + TabColor = clGreen + TabTextAlignment = taCenter + object Button3: TButton + Left = 99 Height = 25 - Top = 50 + Top = 71 Width = 75 - Caption = 'Button1' + Caption = 'Button3' TabOrder = 0 end - object ToggleBox2: TToggleBox - Left = 357 - Height = 23 - Top = 155 - Width = 90 - Caption = 'ToggleBox2' - TabOrder = 1 - end end end end object Panel2: TPanel - Left = 756 - Height = 506 - Width = 142 - Align = alClient - Caption = 'Panel2' - ClientHeight = 506 - ClientWidth = 142 - TabOrder = 2 - OnClick = Panel2Click + Left = 646 + Height = 490 + Width = 238 + Align = alRight + ClientHeight = 490 + ClientWidth = 238 + TabOrder = 1 object Label1: TLabel - Left = 15 + Left = 16 Height = 14 - Top = 304 - Width = 79 - Caption = 'Move Increment' + Top = 160 + Width = 50 + Caption = 'TabHeight' ParentColor = False end object ComboBox1: TComboBox @@ -138,15 +155,14 @@ object Form1: TForm1 Top = 16 Width = 100 ItemHeight = 13 - MaxLength = -1 OnChange = ComboBox1Change Style = csDropDownList TabOrder = 0 end object RadioGroup1: TRadioGroup - Left = 21 + Left = 128 Height = 113 - Top = 144 + Top = 16 Width = 100 AutoFill = True Caption = 'Tab Position' @@ -168,27 +184,17 @@ object Form1: TForm1 'tpRight' ) OnClick = RadioGroup1Click - TabOrder = 2 + TabOrder = 1 end object CheckBox1: TCheckBox - Left = 15 - Height = 19 - Top = 276 - Width = 75 + Left = 16 + Height = 16 + Top = 112 + Width = 100 + AutoSize = False Caption = 'Long Tabs' OnClick = CheckBox1Click - TabOrder = 3 - end - object SpinEdit1: TSpinEdit - Left = 95 - Height = 19 - Top = 276 - Width = 34 - Enabled = False - MaxValue = 50 - OnEditingDone = SpinEdit1EditingDone - TabOrder = 1 - Value = 50 + TabOrder = 2 end object NewPageBtn: TGradButton Left = 16 @@ -197,8 +203,8 @@ object Form1: TForm1 Width = 100 Caption = 'New Page' Font.Color = clWhite - OnClick = BewegeBtn - TabOrder = 4 + OnClick = NewPageBtnClick + TabOrder = 3 TabStop = True NormalBlend = 0.5 OverBlend = 0.653 @@ -207,20 +213,11 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue AutoWidthBorderSpacing = 15 - end - object SpinEdit2: TSpinEdit - Left = 15 - Height = 23 - Top = 320 - Width = 79 - MinValue = -100 - OnChange = SpinEdit2Change - TabOrder = 5 + AutoHeightBorderSpacing = 15 end object DeleteBtn: TGradButton Left = 16 @@ -230,7 +227,7 @@ object Form1: TForm1 Caption = 'Delete' Font.Color = clWhite OnClick = DeleteBtnClick - TabOrder = 6 + TabOrder = 4 TabStop = True NormalBlend = 0.5 OverBlend = 0.653 @@ -239,17 +236,78 @@ object Form1: TForm1 NormalBlendColor = clWhite OverBlendColor = clSilver BackgroundColor = clBtnFace - BorderSides = [bsTopLine, bsBottomLine, bsLeftLine, bsRightLine] ShowFocusBorder = True GlyphBackgroundColor = clWhite ClickColor = clBlue AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 + end + object SpinEdit2: TSpinEdit + Left = 16 + Height = 19 + Top = 176 + Width = 100 + OnEditingDone = SpinEdit2EditingDone + TabOrder = 5 + end + object Edit1: TEdit + Left = 16 + Height = 19 + Top = 136 + Width = 72 + TabOrder = 6 + Text = 'Edit1' + end + object GradButton1: TGradButton + Left = 90 + Height = 19 + Top = 136 + Width = 26 + Caption = 'set' + Font.Color = clWhite + OnClick = GradButton1Click + TabOrder = 7 + TabStop = True + NormalBlend = 0.5 + OverBlend = 0.653 + BaseColor = clBlue + Color = clBlue + NormalBlendColor = clWhite + OverBlendColor = clSilver + BackgroundColor = clBtnFace + ShowFocusBorder = True + GlyphBackgroundColor = clWhite + ClickColor = clBlue + AutoWidthBorderSpacing = 15 + AutoHeightBorderSpacing = 15 + end + object CheckGroup1: TCheckGroup + Left = 128 + Height = 105 + Top = 143 + Width = 100 + AutoFill = True + Caption = 'Scroll Buttons' + 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 = ( + 'Auto' + 'LeftTop' + 'RightBottom' + ) + OnClick = CheckGroup1Click + OnItemClick = CheckGroup1ItemClick + TabOrder = 8 + Data = { + 03000000020202 + } end - end - object Splitter1: TSplitter - Left = 751 - Height = 506 - Width = 5 end object PopupMenu1: TPopupMenu left = 734 @@ -258,4 +316,43 @@ object Form1: TForm1 Caption = 'New Item1' end end + object ImageList1: TImageList + left = 656 + top = 397 + Bitmap = { + 4C69010000001000000010000000000023007B534966674034941A00000A71A1 + A2243A9FBD9E319FC1BC2E9FC3D32B9EC4EA2B9FC3EC2D9FC3D6309FC3BF37A0 + C0A45EA1AD3100002300000023000000000962423ABC523228A47AA4B35537A2 + C3F3189FCFFF189FCFFF189FCFFF189FCFFF189FCFFF189FCFFF189FCFFF189F + CFFF2E9FC4F77BB8C869000023000000000636221B264D2E28747DC6DF6C6BCC + EBFF49AFCFFF3BA6C9FF34A2C5FF2E9EC3FF2D9DC2FF2D9CBFFF2F9BBEFF369E + C0FF50B2D2FF79CCEA82000023006B524A7C704C45895C392D6C7FC3DA4F6CD2 + F5FE5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099BDFF2890B4FF2991B5FF349C + C0FF4FB6DAFF82CDE56F00002300644E468068483F8E55352D7E84C5D96A5BBA + D9FC59BEE1FF59B9DBFF50B1D3FF3CA4C8FF3099BDFF3193B5FF3999BBFF40A4 + C7FF50AFCFFD7CC3D787000023000000230064463D96472C245D7BC4DD6C6AD2 + F6FF60BDD9FF4FB0CDFF4AAAC8FF4CA8C4FF49A4C1FF3D9AB8FF3697B6FF409D + BBFF4EB6DAFF7ACCE982000023000000000562443BB15030289F749DA8536CCD + EEFB5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099BDFF2890B4FF2990B5FF349C + C0FF55B6D8FD82C0CD6C0000230000000004704E44966C42379A7ABBCE715DB8 + D2FF50B2D4FF49B3D8FF44B0D4FF41A8CDFF39A0C4FF349DC2FF35A0C6FF40A5 + C6FF4FACC8FF7ECAE48600002300000023002C231A1D5132298A70B1C6716AD2 + F6FF60C7EAFF5CB7D3FF4FABC7FF42A1C0FF3B9BB9FF3995B0FF3892AFFF369C + BFFF4EB6DAFF7BCEE98100002300000000045E41378A653E337785B8C45169C4 + E5FC60C7EBFF53BBDFFF47B0D4FF3CA4C8FF3099BDFF2890B4FF2990B5FF349C + C0FF57B5D5FD87BBCC7700002300000000075E3F386D5F382E6974B7CD7268C5 + E2FF55B0CDFF4EAFCEFF4AABCDFF43A9CCFF3DA3C7FF3DA0C1FF40A1C1FF49A4 + C3FF51AFCDFF7ACCE982000023000000230069483E835F39308E85CCE65A6BD2 + F6FF5FC7EBFF53BBDFFF47B0D4FF44A4C3FF3A9AB7FF2890B4FF2990B5FF349C + C0FF4EB6DAFF7DCCE6780000230000000006583E357C603A30B57BAFC16D5EBB + DBFC5EC1E3FF5ABBDCFF47B0D4FF3CA4C8FF3099BDFF2890B4FF3395B6FF42A2 + C4FF54B1D1FD7EC0D28800002300513C36266E4B428E4C2D266B76BBD26F6BD2 + F5FF5DBAD5FF51AFCDFF52ACC8FF4AA8C7FF45A3C3FF469FBCFF3D99B8FF409E + BBFF4FB5D9FF7ACDEB8200002300664E4982593D37706D4237706186964470D0 + F2F65FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099BDFF2890B4FF2990B5FF349C + C0FF55B7D9FA85C9E14F000023006E554E8D704E44A6683F35A51C0E0E1286C6 + DC2D6BC2E1995FBCDDB855B4D4D24CA9CAE843A0C0EA3E9CBCD5429EBFBC50A8 + C79F79B9D03B0000230000002300 + } + end end diff --git a/components/gradcontrols/examples/Forms/unit1.lrs b/components/gradcontrols/examples/Forms/unit1.lrs index b4f1a6fe1..d8d5f922a 100644 --- a/components/gradcontrols/examples/Forms/unit1.lrs +++ b/components/gradcontrols/examples/Forms/unit1.lrs @@ -1,83 +1,145 @@ { Das ist eine automatisch erzeugte Lazarus-Ressourcendatei } LazarusResources.Add('TForm1','FORMDATA',[ - 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#254#0#6'Height'#3#250#1#3'Top'#2't'#5'Wid' - +'th'#3#130#3#7'Caption'#6#5'Form1'#12'ClientHeight'#3#250#1#11'ClientWidth'#3 - +#130#3#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy'#12'OnMous' - +'eWheel'#7#14'FormMouseWheel'#16'OnMouseWheelDown'#7#18'FormMouseWheelDown' - +#14'OnMouseWheelUp'#7#16'FormMouseWheelUp'#10'ParentFont'#8#10'LCLVersion'#6 - +#6'0.9.27'#0#6'TPanel'#6'Panel1'#6'Height'#3#250#1#5'Width'#3#239#2#5'Align' - +#7#6'alLeft'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#7'Cap' - +'tion'#6#6'Panel1'#12'ClientHeight'#3#250#1#11'ClientWidth'#3#239#2#8'TabOrd' - +'er'#2#0#7'OnClick'#7#9'BewegeBtn'#0#15'TGradTabControl'#15'GradTabControl1' - +#4'Left'#2#1#6'Height'#3#248#1#3'Top'#2#1#5'Width'#3#237#2#5'Align'#7#8'alCl' - +'ient'#12'ControlStyle'#11#17'csAcceptsControls'#0#10'ActivePage'#7#12'GradT' - +'abPage1'#16'OnTabButtonClick'#7#29'GradTabControl1TabButtonClick'#20'OnTabB' - +'uttonMouseDown'#7'!GradTabControl1TabButtonMouseDown'#18'OnTabButtonMouseUp' - +#7#31'GradTabControl1TabButtonMouseUp'#20'OnTabButtonMouseMove'#7'!GradTabCo' - +'ntrol1TabButtonMouseMove'#10'OnDragDrop'#7#23'GradTabControl1DragDrop'#10'O' - +'nDragOver'#7#23'GradTabControl1DragOver'#11'OnMouseDown'#7#24'GradTabContro' - +'l1MouseDown'#14'OnMouseWheelUp'#7#27'GradTabControl1MouseWheelUp'#16'OnMous' - +'eWheelDown'#7#29'GradTabControl1MouseWheelDown'#18'OnPagesBarDragOver'#7#31 - +'GradTabControl1PagesBarDragOver'#9'TabHeight'#2#20#13'MoveIncrement'#2#1#13 - +'OnPageChanged'#7#26'GradTabControl1PageChanged'#0#12'TGradTabPage'#12'GradT' - +'abPage2'#4'Left'#2#2#6'Height'#3#224#1#3'Top'#2#22#5'Width'#3#233#2#9'PageI' - +'ndex'#2#1#7'Caption'#6#12'GradTabPage2'#0#12'TPageControl'#12'PageControl1' - +#4'Left'#3#173#0#6'Height'#3#200#0#3'Top'#2'9'#5'Width'#3#200#0#10'ActivePag' - +'e'#7#9'TabSheet3'#8'TabIndex'#2#2#8'TabOrder'#2#0#10'OnDragDrop'#7#20'PageC' - +'ontrol1DragDrop'#10'OnDragOver'#7#20'PageControl1DragOver'#11'OnMouseDown'#7 - +#21'PageControl1MouseDown'#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#9'TabShe' - +'et1'#0#0#9'TTabSheet'#9'TabSheet2'#7'Caption'#6#9'TabSheet2'#0#0#9'TTabShee' - +'t'#9'TabSheet3'#7'Caption'#6#9'TabSheet3'#0#0#0#7'TButton'#7'Button2'#4'Lef' - +'t'#2'/'#6'Height'#2#25#3'Top'#2#28#5'Width'#2'K'#7'Caption'#6#7'Button2'#8 + 'TPF0'#6'TForm1'#5'Form1'#4'Left'#3','#1#6'Height'#3#234#1#3'Top'#3#146#0#5'W' + +'idth'#3't'#3#7'Caption'#6#5'Form1'#12'ClientHeight'#3#234#1#11'ClientWidth' + +#3't'#3#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy'#10'Paren' + +'tFont'#8#10'LCLVersion'#6#6'0.9.27'#0#6'TPanel'#6'Panel1'#6'Height'#3#234#1 + +#5'Width'#3#134#2#5'Align'#7#8'alClient'#7'Caption'#6#6'Panel1'#12'ClientHei' + +'ght'#3#234#1#11'ClientWidth'#3#134#2#8'TabOrder'#2#0#0#15'TGradTabControl' + +#15'GradTabControl1'#4'Left'#2#1#6'Height'#3#232#1#3'Top'#2#1#5'Width'#3#132 + +#2#5'Align'#7#8'alClient'#12'ControlStyle'#11#17'csAcceptsControls'#0#10'Act' + +'ivePage'#7#12'GradTabPage3'#20'OnTabButtonMouseDown'#7'!GradTabControl1TabB' + +'uttonMouseDown'#18'OnTabButtonMouseUp'#7#31'GradTabControl1TabButtonMouseUp' + +#20'OnTabButtonMouseMove'#7'!GradTabControl1TabButtonMouseMove'#10'OnDragDro' + +'p'#7#23'GradTabControl1DragDrop'#10'OnDragOver'#7#23'GradTabControl1DragOve' + +'r'#11'OnMouseDown'#7#24'GradTabControl1MouseDown'#14'OnMouseWheelUp'#7#27'G' + +'radTabControl1MouseWheelUp'#16'OnMouseWheelDown'#7#29'GradTabControl1MouseW' + +'heelDown'#9'PageIndex'#2#3#9'TabHeight'#2#20#13'MoveIncrement'#2#1#13'OnPag' + +'eChanged'#7#26'GradTabControl1PageChanged'#0#12'TGradTabPage'#12'GradTabPag' + +'e1'#4'Left'#2#2#6'Height'#3#208#1#3'Top'#2#22#5'Width'#3#128#2#9'PageIndex' + +#2#1#7'Caption'#6#3'abc'#5'Color'#7#10'clGrayText'#8'TabColor'#7#6'clBlue'#16 + +'TabTextAlignment'#7#8'taCenter'#0#10'TToggleBox'#10'ToggleBox2'#4'Left'#3'e' + +#1#6'Height'#2#23#3'Top'#3#155#0#5'Width'#2'Z'#7'Caption'#6#10'ToggleBox2'#8 + +'TabOrder'#2#0#0#0#0#12'TGradTabPage'#12'GradTabPage2'#4'Left'#2#2#6'Height' + +#3#208#1#3'Top'#2#22#5'Width'#3#128#2#7'Caption'#6#12'GradTabPage2'#12'TabPo' + +'pupMenu'#7#10'PopupMenu1'#8'TabColor'#7#6'clBlue'#16'TabTextAlignment'#7#8 + +'taCenter'#0#12'TPageControl'#12'PageControl1'#4'Left'#3#173#0#6'Height'#3 + +#200#0#3'Top'#2'9'#5'Width'#3#200#0#10'ActivePage'#7#9'TabSheet3'#8'TabIndex' + +#2#2#8'TabOrder'#2#0#10'OnDragDrop'#7#20'PageControl1DragDrop'#10'OnDragOver' + +#7#20'PageControl1DragOver'#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#9'TabSh' + +'eet1'#0#0#9'TTabSheet'#9'TabSheet2'#7'Caption'#6#9'TabSheet2'#0#0#9'TTabShe' + +'et'#9'TabSheet3'#7'Caption'#6#9'TabSheet3'#0#0#0#7'TButton'#7'Button2'#4'Le' + +'ft'#2'/'#6'Height'#2#25#3'Top'#2#28#5'Width'#2'K'#7'Caption'#6#7'Button2'#8 +'TabOrder'#2#1#0#0#6'TPanel'#6'Panel3'#4'Left'#3#173#1#6'Height'#2'2'#3'Top' +#2'Y'#5'Width'#3#170#0#7'Caption'#6#6'Panel3'#8'TabOrder'#2#2#0#0#0#12'TGrad' - +'TabPage'#12'GradTabPage1'#4'Left'#2#2#6'Height'#3#224#1#3'Top'#2#22#5'Width' - +#3#233#2#7'Caption'#6#12'GradTabPage1'#0#7'TButton'#7'Button1'#4'Left'#2'^'#6 - +'Height'#2#25#3'Top'#2'2'#5'Width'#2'K'#7'Caption'#6#7'Button1'#8'TabOrder'#2 - +#0#0#0#10'TToggleBox'#10'ToggleBox2'#4'Left'#3'e'#1#6'Height'#2#23#3'Top'#3 - +#155#0#5'Width'#2'Z'#7'Caption'#6#10'ToggleBox2'#8'TabOrder'#2#1#0#0#0#0#0#6 - +'TPanel'#6'Panel2'#4'Left'#3#244#2#6'Height'#3#250#1#5'Width'#3#142#0#5'Alig' - +'n'#7#8'alClient'#7'Caption'#6#6'Panel2'#12'ClientHeight'#3#250#1#11'ClientW' - +'idth'#3#142#0#8'TabOrder'#2#2#7'OnClick'#7#11'Panel2Click'#0#6'TLabel'#6'La' - +'bel1'#4'Left'#2#15#6'Height'#2#14#3'Top'#3'0'#1#5'Width'#2'O'#7'Caption'#6 - +#14'Move Increment'#11'ParentColor'#8#0#0#9'TComboBox'#9'ComboBox1'#4'Left'#2 - +#16#6'Height'#2#21#3'Top'#2#16#5'Width'#2'd'#10'ItemHeight'#2#13#9'MaxLength' - +#2#255#8'OnChange'#7#15'ComboBox1Change'#5'Style'#7#14'csDropDownList'#8'Tab' - +'Order'#2#0#0#0#11'TRadioGroup'#11'RadioGroup1'#4'Left'#2#21#6'Height'#2'q'#3 - +'Top'#3#144#0#5'Width'#2'd'#8'AutoFill'#9#7'Caption'#6#12'Tab Position'#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'_'#11'ClientWidth'#2'`'#9'ItemIn' - +'dex'#2#0#13'Items.Strings'#1#6#5'tpTop'#6#8'tpBottom'#6#6'tpLeft'#6#7'tpRig' - +'ht'#0#7'OnClick'#7#16'RadioGroup1Click'#8'TabOrder'#2#2#0#0#9'TCheckBox'#9 - +'CheckBox1'#4'Left'#2#15#6'Height'#2#19#3'Top'#3#20#1#5'Width'#2'K'#7'Captio' - +'n'#6#9'Long Tabs'#7'OnClick'#7#14'CheckBox1Click'#8'TabOrder'#2#3#0#0#9'TSp' - +'inEdit'#9'SpinEdit1'#4'Left'#2'_'#6'Height'#2#19#3'Top'#3#20#1#5'Width'#2'"' - +#7'Enabled'#8#8'MaxValue'#2'2'#13'OnEditingDone'#7#20'SpinEdit1EditingDone'#8 - +'TabOrder'#2#1#5'Value'#2'2'#0#0#11'TGradButton'#10'NewPageBtn'#4'Left'#2#16 - +#6'Height'#2#25#3'Top'#2'0'#5'Width'#2'd'#7'Caption'#6#8'New Page'#10'Font.C' - +'olor'#7#7'clWhite'#7'OnClick'#7#9'BewegeBtn'#8'TabOrder'#2#4#7'TabStop'#9#11 - +'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+' - +#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColo' - +'r'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'cl' - +'BtnFace'#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'#22'AutoWidthBorderSpacing'#2#15#0#0#9'TSpinEdit' - +#9'SpinEdit2'#4'Left'#2#15#6'Height'#2#23#3'Top'#3'@'#1#5'Width'#2'O'#8'MinV' - +'alue'#2#156#8'OnChange'#7#15'SpinEdit2Change'#8'TabOrder'#2#5#0#0#11'TGradB' - +'utton'#9'DeleteBtn'#4'Left'#2#16#6'Height'#2#25#3'Top'#2'P'#5'Width'#2'd'#7 - +'Caption'#6#6'Delete'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#14'DeleteBtnC' - +'lick'#8'TabOrder'#2#6#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254 - +'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5 - +'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8 - +'clSilver'#15'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'#22'AutoWidthB' - +'orderSpacing'#2#15#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3#239#2#6'Height' - +#3#250#1#5'Width'#2#5#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3#222#2#3'to' - +'p'#3#141#1#0#9'TMenuItem'#9'MenuItem1'#7'Caption'#6#9'New Item1'#0#0#0#0 + +'TabPage'#12'GradTabPage4'#4'Left'#2#2#6'Height'#3#208#1#3'Top'#2#22#5'Width' + +#3#128#2#9'PageIndex'#2#2#7'Caption'#6#11#195#164#195#182#195#188'-test'#8'T' + +'abColor'#7#6'clBlue'#16'TabTextAlignment'#7#8'taCenter'#0#0#12'TGradTabPage' + +#12'GradTabPage3'#4'Left'#2#2#6'Height'#3#208#1#3'Top'#2#22#5'Width'#3#128#2 + +#9'PageIndex'#2#3#7'Caption'#6#12'GradTabPage3'#8'TabColor'#7#7'clGreen'#16 + +'TabTextAlignment'#7#8'taCenter'#0#7'TButton'#7'Button3'#4'Left'#2'c'#6'Heig' + +'ht'#2#25#3'Top'#2'G'#5'Width'#2'K'#7'Caption'#6#7'Button3'#8'TabOrder'#2#0#0 + +#0#0#0#0#6'TPanel'#6'Panel2'#4'Left'#3#134#2#6'Height'#3#234#1#5'Width'#3#238 + +#0#5'Align'#7#7'alRight'#12'ClientHeight'#3#234#1#11'ClientWidth'#3#238#0#8 + +'TabOrder'#2#1#0#6'TLabel'#6'Label1'#4'Left'#2#16#6'Height'#2#14#3'Top'#3#160 + +#0#5'Width'#2'2'#7'Caption'#6#9'TabHeight'#11'ParentColor'#8#0#0#9'TComboBox' + +#9'ComboBox1'#4'Left'#2#16#6'Height'#2#21#3'Top'#2#16#5'Width'#2'd'#10'ItemH' + +'eight'#2#13#8'OnChange'#7#15'ComboBox1Change'#5'Style'#7#14'csDropDownList' + +#8'TabOrder'#2#0#0#0#11'TRadioGroup'#11'RadioGroup1'#4'Left'#3#128#0#6'Heigh' + +'t'#2'q'#3'Top'#2#16#5'Width'#2'd'#8'AutoFill'#9#7'Caption'#6#12'Tab Positio' + +'n'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6 + +#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSi' + +'zing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkH' + +'orizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScal' + +'eChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'Chil' + +'dSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'_'#11'ClientWidth'#2'`'#9'I' + +'temIndex'#2#0#13'Items.Strings'#1#6#5'tpTop'#6#8'tpBottom'#6#6'tpLeft'#6#7 + +'tpRight'#0#7'OnClick'#7#16'RadioGroup1Click'#8'TabOrder'#2#1#0#0#9'TCheckBo' + +'x'#9'CheckBox1'#4'Left'#2#16#6'Height'#2#16#3'Top'#2'p'#5'Width'#2'd'#8'Aut' + +'oSize'#8#7'Caption'#6#9'Long Tabs'#7'OnClick'#7#14'CheckBox1Click'#8'TabOrd' + +'er'#2#2#0#0#11'TGradButton'#10'NewPageBtn'#4'Left'#2#16#6'Height'#2#25#3'To' + +'p'#2'0'#5'Width'#2'd'#7'Caption'#6#8'New Page'#10'Font.Color'#7#7'clWhite'#7 + +'OnClick'#7#15'NewPageBtnClick'#8'TabOrder'#2#3#7'TabStop'#9#11'NormalBlend' + +#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'B' + +'aseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite' + +#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'Show' + +'FocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clB' + ,'lue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#11 + +'TGradButton'#9'DeleteBtn'#4'Left'#2#16#6'Height'#2#25#3'Top'#2'P'#5'Width'#2 + +'d'#7'Caption'#6#6'Delete'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#14'Delet' + +'eBtnClick'#8'TabOrder'#2#4#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128 + +#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue' + +#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7 + +#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'Gly' + +'phBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBord' + +'erSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#9'TSpinEdit'#9'SpinEdi' + +'t2'#4'Left'#2#16#6'Height'#2#19#3'Top'#3#176#0#5'Width'#2'd'#13'OnEditingDo' + +'ne'#7#20'SpinEdit2EditingDone'#8'TabOrder'#2#5#0#0#5'TEdit'#5'Edit1'#4'Left' + +#2#16#6'Height'#2#19#3'Top'#3#136#0#5'Width'#2'H'#8'TabOrder'#2#6#4'Text'#6#5 + +'Edit1'#0#0#11'TGradButton'#11'GradButton1'#4'Left'#2'Z'#6'Height'#2#19#3'To' + +'p'#3#136#0#5'Width'#2#26#7'Caption'#6#3'set'#10'Font.Color'#7#7'clWhite'#7 + +'OnClick'#7#16'GradButton1Click'#8'TabOrder'#2#7#7'TabStop'#9#11'NormalBlend' + +#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'B' + +'aseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite' + +#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'Show' + +'FocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clB' + +'lue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#11 + +'TCheckGroup'#11'CheckGroup1'#4'Left'#3#128#0#6'Height'#2'i'#3'Top'#3#143#0#5 + +'Width'#2'd'#8'AutoFill'#9#7'Caption'#6#14'Scroll Buttons'#28'ChildSizing.Le' + +'ftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Enl' + +'argeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertic' + +'al'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'cr' + +'sScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildS' + +'izing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPe' + +'rLine'#2#1#13'Items.Strings'#1#6#4'Auto'#6#7'LeftTop'#6#11'RightBottom'#0#7 + +'OnClick'#7#16'CheckGroup1Click'#11'OnItemClick'#7#20'CheckGroup1ItemClick'#8 + +'TabOrder'#2#8#4'Data'#10#7#0#0#0#3#0#0#0#2#2#2#0#0#0#10'TPopupMenu'#10'Popu' + +'pMenu1'#4'left'#3#222#2#3'top'#3#141#1#0#9'TMenuItem'#9'MenuItem1'#7'Captio' + +'n'#6#9'New Item1'#0#0#0#10'TImageList'#10'ImageList1'#4'left'#3#144#2#3'top' + +#3#141#1#6'Bitmap'#10#14#4#0#0'Li'#1#0#0#0#16#0#0#0#16#0#0#0#0#0'#'#0'{SIfg@' + +'4'#148#26#0#0#10'q'#161#162'$:'#159#189#158'1'#159#193#188'.'#159#195#211'+' + +#158#196#234'+'#159#195#236'-'#159#195#214'0'#159#195#191'7'#160#192#164'^' + +#161#173'1'#0#0'#'#0#0#0'#'#0#0#0#0#9'bB:'#188'R2('#164'z'#164#179'U7'#162 + +#195#243#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159 + +#207#255#24#159#207#255#24#159#207#255#24#159#207#255'.'#159#196#247'{'#184 + +#200'i'#0#0'#'#0#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235#255'I'#175#207 + +#255';'#166#201#255'4'#162#197#255'.'#158#195#255'-'#157#194#255'-'#156#191 + +#255'/'#155#190#255'6'#158#192#255'P'#178#210#255'y'#204#234#130#0#0'#'#0'kR' + +'J|pLE'#137'\9-l'#195#218'Ol'#210#245#254'_'#199#235#255'S'#187#223#255'G' + +#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255')'#145#181#255'4' + +#156#192#255'O'#182#218#255#130#205#229'o'#0#0'#'#0'dNF'#128'hH?'#142'U5-~' + +#132#197#217'j['#186#217#252'Y'#190#225#255'Y'#185#219#255'P'#177#211#255'<' + +#164#200#255'0'#153#189#255'1'#147#181#255'9'#153#187#255'@'#164#199#255'P' + +#175#207#253'|'#195#215#135#0#0'#'#0#0#0'#'#0'dF='#150'G,$]{'#196#221'lj'#210 + +#246#255'`'#189#217#255'O'#176#205#255'J'#170#200#255'L'#168#196#255'I'#164 + +#193#255'='#154#184#255'6'#151#182#255'@'#157#187#255'N'#182#218#255'z'#204 + +#233#130#0#0'#'#0#0#0#0#5'bD;'#177'P0('#159't'#157#168'Sl'#205#238#251'_'#199 + +#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144 + +#180#255')'#144#181#255'4'#156#192#255'U'#182#216#253#130#192#205'l'#0#0'#'#0 + +#0#0#0#4'pND'#150'lB7'#154'z'#187#206'q]'#184#210#255'P'#178#212#255'I'#179 + +#216#255'D'#176#212#255'A'#168#205#255'9'#160#196#255'4'#157#194#255'5'#160 + +#198#255'@'#165#198#255'O'#172#200#255'~'#202#228#134#0#0'#'#0#0#0'#'#0',#' + +#26#29'Q2)'#138'p'#177#198'qj'#210#246#255'`'#199#234#255'\'#183#211#255'O' + +#171#199#255'B'#161#192#255';'#155#185#255'9'#149#176#255'8'#146#175#255'6' + +#156#191#255'N'#182#218#255'{'#206#233#129#0#0'#'#0#0#0#0#4'^A7'#138'e>3w' + +#133#184#196'Qi'#196#229#252'`'#199#235#255'S'#187#223#255'G'#176#212#255'<' + +#164#200#255'0'#153#189#255'('#144#180#255')'#144#181#255'4'#156#192#255'W' + +#181#213#253#135#187#204'w'#0#0'#'#0#0#0#0#7'^?8m_8.it'#183#205'rh'#197#226 + +#255'U'#176#205#255'N'#175#206#255'J'#171#205#255'C'#169#204#255'='#163#199 + +#255'='#160#193#255'@'#161#193#255'I'#164#195#255'Q'#175#205#255'z'#204#233 + +#130#0#0'#'#0#0#0'#'#0'iH>'#131'_90'#142#133#204#230'Zk'#210#246#255'_'#199 + ,#235#255'S'#187#223#255'G'#176#212#255'D'#164#195#255':'#154#183#255'('#144 + +#180#255')'#144#181#255'4'#156#192#255'N'#182#218#255'}'#204#230'x'#0#0'#'#0 + +#0#0#0#6'X>5|`:0'#181'{'#175#193'm^'#187#219#252'^'#193#227#255'Z'#187#220 + +#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255'3'#149#182 + +#255'B'#162#196#255'T'#177#209#253'~'#192#210#136#0#0'#'#0'Q<6&nKB'#142'L-&k' + +'v'#187#210'ok'#210#245#255']'#186#213#255'Q'#175#205#255'R'#172#200#255'J' + +#168#199#255'E'#163#195#255'F'#159#188#255'='#153#184#255'@'#158#187#255'O' + +#181#217#255'z'#205#235#130#0#0'#'#0'fNI'#130'Y=7pmB7pa'#134#150'Dp'#208#242 + +#246'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189 + +#255'('#144#180#255')'#144#181#255'4'#156#192#255'U'#183#217#250#133#201#225 + +'O'#0#0'#'#0'nUN'#141'pND'#166'h?5'#165#28#14#14#18#134#198#220'-k'#194#225 + +#153'_'#188#221#184'U'#180#212#210'L'#169#202#232'C'#160#192#234'>'#156#188 + +#213'B'#158#191#188'P'#168#199#159'y'#185#208';'#0#0'#'#0#0#0'#'#0#0#0#0 ]); diff --git a/components/gradcontrols/examples/Forms/unit1.pas b/components/gradcontrols/examples/Forms/unit1.pas index 544d2f2e9..f3c849116 100644 --- a/components/gradcontrols/examples/Forms/unit1.pas +++ b/components/gradcontrols/examples/Forms/unit1.pas @@ -2,32 +2,12 @@ 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: - - CurrentPage-Button ohne Abstand - - IDE Testen hoffe es geht *g* - - Danach: - - 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 - windows, Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, + Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, ugradbtn, StdCtrls, ComCtrls, LCLType, LCLProc, LCLIntf, Buttons, ugradtabcontrol, - Menus, Spin, ButtonPanel, - MaskEdit, DBGrids, DbCtrls, EditBtn, Arrow, - SynHighlighterPHP, Grids, SynEdit, SynMemo; + Menus, Spin, EditBtn; type @@ -38,17 +18,22 @@ type { TForm1 } TForm1 = class(TForm) - Button1: TButton; Button2: TButton; + Button3: TButton; CheckBox1: TCheckBox; + CheckGroup1: TCheckGroup; ComboBox1: TComboBox; Edit1: TEdit; + GradButton1: TGradButton; GradTabPage1: TGradTabPage; GradTabPage2: TGradTabPage; + GradTabPage3: TGradTabPage; + GradTabPage4: TGradTabPage; + ImageList1: TImageList; + Label1: TLabel; NewPageBtn: TGradButton; DeleteBtn: TGradButton; GradTabControl1: TGradTabControl; - Label1: TLabel; Memo2: TMemo; MenuItem1: TMenuItem; PageControl1: TPageControl; @@ -57,55 +42,29 @@ type Panel3: TPanel; PopupMenu1: TPopupMenu; RadioGroup1: TRadioGroup; - SpinEdit1: TSpinEdit; SpinEdit2: TSpinEdit; - Splitter1: TSplitter; - StringGrid1: TStringGrid; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; ToggleBox2: TToggleBox; - procedure Button1Click(Sender: TObject); - procedure Button2Click(Sender: TObject); procedure CheckBox1Click(Sender: TObject); + procedure CheckGroup1Click(Sender: TObject); + procedure CheckGroup1ItemClick(Sender: TObject; Index: integer); procedure ComboBox1Change(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); - procedure FormMouseWheel(Sender: TObject; Shift: TShiftState; - WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); - procedure FormMouseWheelDown(Sender: TObject; Shift: TShiftState; - MousePos: TPoint; var Handled: Boolean); - procedure FormMouseWheelUp(Sender: TObject; Shift: TShiftState; - MousePos: TPoint; var Handled: Boolean); - 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 DeleteBtnClick(Sender: TObject); - procedure BewegeBtn(Sender: TObject); - procedure GradButton3Click(Sender: TObject); - procedure GradButton4Click(Sender: TObject); + procedure GradButton1Click(Sender: TObject); procedure GradTabControl1DragDrop(Sender, Source: TObject; X, Y: Integer); procedure GradTabControl1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); procedure GradTabControl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); - procedure GradTabControl1MouseMove(Sender: TObject; Shift: TShiftState; X, - Y: Integer); procedure GradTabControl1MouseWheelDown(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); procedure GradTabControl1MouseWheelUp(Sender: TObject; Shift: TShiftState; MousePos: TPoint; var Handled: Boolean); procedure GradTabControl1PageChanged(Sender: TObject); - procedure GradTabControl1PagesBarDragOver(Sender, Source: TObject; X, - Y: Integer; State: TDragState; var Accept: Boolean); - procedure GradTabControl1TabButtonClick(GradTabControl: TGradTabControl; - AIndex: Integer); procedure GradTabControl1TabButtonMouseDown( GradTabControl: TGradTabControl; Button: TMouseButton; Shift: TShiftState; X, Y, AIndex: Integer); @@ -114,26 +73,19 @@ type ); procedure GradTabControl1TabButtonMouseUp(GradTabControl: TGradTabControl; Button: TMouseButton; Shift: TShiftState; X, Y, AIndex: Integer); - procedure GradTabControl2TabButtonClick(GradTabControl: TGradTabControl; - AIndex: Integer); + procedure ImageList1Change(Sender: TObject); + procedure NewPageBtnClick(Sender: TObject); procedure PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer); procedure PageControl1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); - procedure PageControl1MouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); - procedure Panel2Click(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); - procedure SpinEdit1EditingDone(Sender: TObject); - procedure SpinEdit2Change(Sender: TObject); - //procedure FormPaint(Sender: TObject); + procedure SpinEdit2EditingDone(Sender: TObject); private { private declarations } public + FDragIndex : Integer; { public declarations } - //GradTabControl1 : TGradTabControl; - FControlWidth : Integer; - FLastIndex : Integer; - end; + end; var Form1: TForm1; @@ -143,137 +95,52 @@ 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; - GradTabControl1.MoveIncrement:=20; - SpinEdit2.Value:=20; + SpinEdit2.Value:=GradTabControl1.TabHeight; - { 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)); - - NewPageBtn.Parent := GradTabControl1.Pages[0]; - BitBtn1.Parent := GradTabControl1.Pages[0]; - } - //GradButton3Click(GradButton3); - //GradButton3Click(GradButton3); + GradTabControl1.Images := ImageList1; + {GradTabControl1.Page[0].ImageIndex:=0; + GradTabControl1.Page[0].TabButton.ShowGlyph:=true; + GradTabControl1.PagesBar.MoveToNext; } - {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'); + ComboBox1.Items.Assign(GradTabControl1.Tabs); end; procedure TForm1.CheckBox1Click(Sender: TObject); begin - GradTabControl1.LongWidth:=SpinEdit1.Value; GradTabControl1.LongTabs:=CheckBox1.Checked; + //SpinEdit1.Enabled:=CheckBox1.Checked; + Edit1.Enabled:=CheckBox1.Checked; + GradButton1.Enabled:=CheckBox1.Checked; + + Edit1.Text:=IntToStr(GradTabControl1.LongWidth); +end; + +procedure TForm1.CheckGroup1Click(Sender: TObject); +begin + +end; + +procedure TForm1.CheckGroup1ItemClick(Sender: TObject; Index: integer); +begin + with GradTabControl1 do begin + case Index of + 0 : AutoShowScrollButtons := CheckGroup1.Checked[0]; + 1 : ShowLeftTopScrollButton := CheckGroup1.Checked[1]; + 2 : ShowRightBottomScrollButton := CheckGroup1.Checked[2]; + end; + + CheckGroup1.Checked[0] := AutoShowScrollButtons; + CheckGroup1.Checked[1] := ShowLeftTopScrollButton; + CheckGroup1.Checked[2] := ShowRightBottomScrollButton; + end; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin - GradTabControl1.CurrentPageNum:=GradTabControl1.Tabs.IndexOf(ComboBox1.Text); + GradTabControl1.PageIndex:=GradTabControl1.Tabs.IndexOf(ComboBox1.Text); end; procedure TForm1.FormDestroy(Sender: TObject); @@ -281,57 +148,6 @@ begin GradTabControl1.Free; end; -procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState; - WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); -begin - -end; - -procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState; - MousePos: TPoint; var Handled: Boolean); -begin - -end; - -procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState; - MousePos: TPoint; var Handled: Boolean); -begin - -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.DeleteBtnClick(Sender: TObject); var C : Integer; @@ -350,7 +166,37 @@ begin end; end; -procedure TForm1.BewegeBtn(Sender: TObject); +procedure TForm1.GradButton1Click(Sender: TObject); +begin + GradTabControl1.LongWidth := StrToInt(Edit1.Text); + + Edit1.Text:=IntToStr(GradTabControl1.LongWidth); +end; + +procedure TForm1.GradTabControl1DragDrop(Sender, Source: TObject; X, Y: Integer + ); +var + SenderBtn, SourceBtn : TGradTabPageButton; + SenderPage, SourcePage : TGradTabPage; +begin + DebugLn('Drop Name=%s',[Sender.ClassName]); + + if not (Sender is TGradTabPageButton) then Exit; + + SenderBtn := Sender as TGradTabPageButton; + + SenderPage:= SenderBtn.Owner as TGradTabPage; + SourcePage:= GradTabControl1.Page[FDragIndex]; + + if Sender = Source then Exit; + if SourcePage.PageIndex=SenderPage.PageIndex then Exit; + + SourcePage.PageIndex:=SenderPage.PageIndex; + + //if (Sender is TGradTabControl) then Accept := True; +end; + +procedure TForm1.NewPageBtnClick(Sender: TObject); var C,R,G,B : Integer; newName : String; @@ -378,47 +224,21 @@ begin ComboBox1.ItemIndex:=ComboBox1.Items.Add('tab_'+IntToStr(C)); end; -procedure TForm1.GradButton3Click(Sender: TObject); -var - C : Integer; -begin - GradTabControl1.PagesBar.MoveTo(50); - for C := 50 downto -20 do - begin - GradTabControl1.PagesBar.MoveTo(-1); - Sleep(5); - Application.ProcessMessages; - end; -end; - -procedure TForm1.GradButton4Click(Sender: TObject); -begin - GradTabControl1.PagesBar.MoveToNorm; -end; - -procedure TForm1.GradTabControl1DragDrop(Sender, Source: TObject; X, Y: Integer - ); -begin - DebugLn('DragDrop X=%d Y=%d',[X,Y]); -end; - procedure TForm1.GradTabControl1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); +var + SenderBtn, SourceBtn : TGradTabPageButton; + SenderPage, SourcePage : TGradTabPage; begin - DebugLn('Name=%s',[Sender.ClassName]); - if (Sender is TGradTabControl) then Accept := True; + //DebugLn('Name=%s',[Sender.ClassName]); + Accept := false; + if (Sender is TGradTabPageButton) then Accept := True; end; procedure TForm1.GradTabControl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin - ShowMessage('Jep'); -end; - -procedure TForm1.GradTabControl1MouseMove(Sender: TObject; Shift: TShiftState; - X, Y: Integer); -begin - DebugLn('X=%d Y=%d',[X,Y]); + DebugLn('MouseDown on %s',[Sender.ClassName]); end; procedure TForm1.GradTabControl1MouseWheelDown(Sender: TObject; @@ -426,9 +246,9 @@ procedure TForm1.GradTabControl1MouseWheelDown(Sender: TObject; var NewNum : Integer; begin - NewNum:= GradTabControl1.CurrentPageNum; + NewNum:= GradTabControl1.PageIndex; Inc(NewNum); - GradTabControl1.CurrentPageNum:=NewNum; + GradTabControl1.PageIndex:=NewNum; end; procedure TForm1.GradTabControl1MouseWheelUp(Sender: TObject; @@ -436,45 +256,32 @@ procedure TForm1.GradTabControl1MouseWheelUp(Sender: TObject; var NewNum : Integer; begin - NewNum:= GradTabControl1.CurrentPageNum; + NewNum:= GradTabControl1.PageIndex; Dec(NewNum); - GradTabControl1.CurrentPageNum:=NewNum; + GradTabControl1.PageIndex:=NewNum; end; procedure TForm1.GradTabControl1PageChanged(Sender: TObject); begin with GradTabControl1 do - ComboBox1.Text:=Tabs[CurrentPageNum]; -end; - -procedure TForm1.GradTabControl1PagesBarDragOver(Sender, Source: TObject; X, - Y: Integer; State: TDragState; var Accept: Boolean); -begin - DebugLn('Name=%s',[Sender.ClassName]); - if (Sender is TGradTabPagesBar) then Accept := True; -end; - -procedure TForm1.GradTabControl1TabButtonClick(GradTabControl: TGradTabControl; - AIndex: Integer); -begin - //ShowMessage('TabClicked: Index: '+IntToStr(AIndex)+' Caption: '+GradTabControl.Page[AIndex].Caption); + ComboBox1.Text:=Tabs[PageIndex]; end; procedure TForm1.GradTabControl1TabButtonMouseDown( GradTabControl: TGradTabControl; Button: TMouseButton; Shift: TShiftState; X, Y, AIndex: Integer); begin - if ssCtrl in Shift then - GradTabControl1.BeginDrag(False); + DebugLn('MouseDown - BeginDrag'); + if ssCtrl in Shift then begin + GradTabControl1.BeginDrag(False); + FDragIndex:=AIndex; + end; end; procedure TForm1.GradTabControl1TabButtonMouseMove( GradTabControl: TGradTabControl; Shift: TShiftState; X, Y, AIndex: Integer); -var - TabRect : TRect; begin - //TabRect := GradTabControl.GetTabRect(Aindex); - //DebugLn('X=%d Y=%d AIndex=%d',[X+TabRect.Left,Y+TabRect.Top,AIndex]); + end; procedure TForm1.GradTabControl1TabButtonMouseUp( @@ -490,20 +297,9 @@ begin end; end; -procedure TForm1.GradTabControl2TabButtonClick(GradTabControl: TGradTabControl; - AIndex: Integer); +procedure TForm1.ImageList1Change(Sender: TObject); 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.PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer); @@ -535,17 +331,6 @@ begin if (Sender is TGradTabControl) then Accept := True; end; -procedure TForm1.PageControl1MouseDown(Sender: TObject; Button: TMouseButton; - Shift: TShiftState; X, Y: Integer); -begin - PageControl1.BeginDrag(False) ; -end; - -procedure TForm1.Panel2Click(Sender: TObject); -begin - -end; - procedure TForm1.RadioGroup1Click(Sender: TObject); begin case RadioGroup1.ItemIndex of @@ -556,18 +341,11 @@ begin end; end; -procedure TForm1.SpinEdit1EditingDone(Sender: TObject); +procedure TForm1.SpinEdit2EditingDone(Sender: TObject); begin - GradTabControl1.LongWidth:=SpinEdit1.Value; + GradTabControl1.TabHeight:=SpinEdit2.Value; end; -procedure TForm1.SpinEdit2Change(Sender: TObject); -begin - GradTabControl1.MoveIncrement:=SpinEdit2.Value; -end; - - - initialization {$I unit1.lrs} diff --git a/components/gradcontrols/examples/gradbuttontest.lpi b/components/gradcontrols/examples/gradbuttontest.lpi index b9233e3f9..03e32cd8d 100644 --- a/components/gradcontrols/examples/gradbuttontest.lpi +++ b/components/gradcontrols/examples/gradbuttontest.lpi @@ -9,7 +9,6 @@ - </General> @@ -62,16 +61,19 @@ <SearchPaths> <OtherUnitFiles Value="Forms\"/> </SearchPaths> + <Parsing> + <SyntaxOptions> + <CStyleOperator Value="False"/> + </SyntaxOptions> + </Parsing> <CodeGeneration> <SmartLinkUnit Value="True"/> </CodeGeneration> <Linking> + <Debugging> + <UseHeaptrc Value="True"/> + </Debugging> <LinkSmart Value="True"/> - <Options> - <Win32> - <GraphicApplication Value="True"/> - </Win32> - </Options> </Linking> <Other> <CompilerPath Value="$(CompPath)"/> diff --git a/components/gradcontrols/examples/gradcontroltest.lpi b/components/gradcontrols/examples/gradcontroltest.lpi index 519483876..4d43c8980 100644 --- a/components/gradcontrols/examples/gradcontroltest.lpi +++ b/components/gradcontrols/examples/gradcontroltest.lpi @@ -9,12 +9,11 @@ <TargetFileExt Value=".exe"/> <Title Value="gradcontroltest"/> <UseAppBundle Value="False"/> - <UseXPManifest Value="True"/> </General> <VersionInfo> <UseVersionInfo Value="True"/> <AutoIncrementBuild Value="True"/> - <CurrentBuildNr Value="805"/> + <CurrentBuildNr Value="994"/> <ProjectVersion Value="0.0.0.0"/> </VersionInfo> <PublishOptions> @@ -29,25 +28,21 @@ <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> </local> </RunParams> - <RequiredPackages Count="5"> + <RequiredPackages Count="4"> <Item1> - <PackageName Value="SynEdit"/> + <PackageName Value="FCL"/> <MinVersion Major="1" Valid="True"/> </Item1> <Item2> - <PackageName Value="FCL"/> - <MinVersion Major="1" Valid="True"/> + <PackageName Value="gradtabcontrol"/> </Item2> <Item3> - <PackageName Value="gradtabcontrol"/> - </Item3> - <Item4> <PackageName Value="gradbutton"/> <MinVersion Major="1" Minor="2" Valid="True"/> - </Item4> - <Item5> + </Item3> + <Item4> <PackageName Value="LCL"/> - </Item5> + </Item4> </RequiredPackages> <Units Count="3"> <Unit0> @@ -81,6 +76,11 @@ <CStyleOperator Value="False"/> </SyntaxOptions> </Parsing> + <Linking> + <Debugging> + <UseHeaptrc Value="True"/> + </Debugging> + </Linking> <Other> <CompilerPath Value="$(CompPath)"/> </Other> diff --git a/components/gradcontrols/examples/gradcontroltest.lpr b/components/gradcontrols/examples/gradcontroltest.lpr index a0c8c3ab6..20b764278 100644 --- a/components/gradcontrols/examples/gradcontroltest.lpr +++ b/components/gradcontrols/examples/gradcontroltest.lpr @@ -12,10 +12,6 @@ uses {$IFDEF WINDOWS}{$R project1.rc}{$ENDIF} -{$IFDEF WINDOWS}{$R manifest.rc}{$ENDIF} - -{$IFDEF WINDOWS}{$R gradcontroltest.rc}{$ENDIF} - begin Application.Initialize; Application.CreateForm(TForm1,Form1); diff --git a/components/gradcontrols/src/ugradbtn.pas b/components/gradcontrols/src/ugradbtn.pas index 21dbc6ab4..d42b0f06e 100644 --- a/components/gradcontrols/src/ugradbtn.pas +++ b/components/gradcontrols/src/ugradbtn.pas @@ -33,6 +33,8 @@ type TGradButton = class(TCustomControl) private + FAutoHeight: Boolean; + FAutoHeightBorderSpacing: Integer; FAutoWidthBorderSpacing: Integer; FOnMouseMove: TMouseMoveEvent; FRotateDirection : TRotateDirection; @@ -54,7 +56,6 @@ type FOnNormalBackgroundPaint, FOnHotBackgroundPaint, FOnDownBackgroundPaint, FOnDisabledBackgroundPaint : TGBBackgroundPaintEvent; procedure PaintGradient(TrgCanvas: TCanvas; pr : TRect); - procedure SetAutoWidthBorderSpacing(const AValue: Integer); procedure UpdateText; procedure UpdateBackground; procedure PaintBackground(AState: TButtonState; TrgBitmap: TBitmap); @@ -63,10 +64,13 @@ type FNormalBlend,FOverBlend : Extended; FBaseColor, FNormalBlendColor, FOverBlendColor, FDisabledColor, FBackgroundColor, FGlyphBackgroundColor, FClickColor: TColor; + procedure SetAutoHeight(const AValue: Boolean); virtual; + procedure SetAutoHeightBorderSpacing(const AValue: Integer); virtual; + procedure SetAutoWidthBorderSpacing(const AValue: Integer); virtual; procedure InvPaint(StateCheck:Boolean=false); procedure FontChanged(Sender: TObject); override; - procedure GlyphChanged(Sender: TObject); - procedure GetBackgroundRect(var TheRect : TRect); + procedure GlyphChanged(Sender: TObject); virtual; + procedure GetBackgroundRect(var TheRect : TRect); virtual; function GetGlyph : TBitmap; procedure SetEnabled(Value: Boolean); override; procedure SetAutoWidth(const Value : Boolean); virtual; @@ -113,6 +117,8 @@ type function Focused: Boolean; override; procedure UpdateButton; procedure UpdatePositions; + function GetAutoWidth : Integer; + function GetAutoHeight : Integer; published property Action; property Anchors; @@ -144,7 +150,8 @@ type property OverBlendColor: TColor read FOverBlendColor write SetOverBlendColor; property BackgroundColor: TColor read FBackgroundColor write SetBackgroundColor; property AutoWidth : Boolean read FAutoWidth write SetAutoWidth default false; - property BorderSides : TBorderSides read FBorderSides write SetBorderSides; + property AutoHeight: Boolean read FAutoHeight write SetAutoHeight default false; + property BorderSides : TBorderSides read FBorderSides write SetBorderSides default [bsTopLine,bsBottomLine,bsLeftLine,bsRightLine]; property GradientType : TGradientType read FGradientType write SetGradientType default gtHorizontal; property ShowFocusBorder : Boolean read FShowFocusBorder write SetShowFocusBorder; property RotateDirection : TRotateDirection read FRotateDirection write SetRotateDirection default rdNormal; @@ -158,6 +165,7 @@ type property DisabledColor : TColor read FDisabledColor write SetDisabledColor default clGray; property OwnerBackgroundDraw : Boolean read FOwnerBackgroundDraw write SetOwnerBackgroundDraw; property AutoWidthBorderSpacing : Integer read FAutoWidthBorderSpacing write SetAutoWidthBorderSpacing; + property AutoHeightBorderSpacing : Integer read FAutoHeightBorderSpacing write SetAutoHeightBorderSpacing; //property OnGetBackgroundRect { TODO } @@ -168,9 +176,11 @@ type property OnDisabledBackgroundPaint : TGBBackgroundPaintEvent read FOnDisabledBackgroundPaint write FOnDisabledBackgroundPaint; end; + function Max(a,b: Integer) : Integer; function ColorBetween(C1, C2 : TColor; blend:Extended):TColor; function ColorsBetween(colors:array of TColor; blend:Extended):TColor; function AlignItem(ItemLength, AreaLength,Spacing: Integer; ATextAlignment: TTextAlignment):Integer; + procedure DbgsGradButton(AButton : TGradButton); procedure Register; @@ -179,6 +189,14 @@ implementation uses LCLProc; +function Max(a,b: Integer) : Integer; +begin + if a>b then + Result := a + else + Result := b; +end; + function AlignItem(ItemLength, AreaLength,Spacing: Integer; ATextAlignment: TTextAlignment):Integer; begin case ATextAlignment of @@ -192,6 +210,12 @@ begin end; end; +procedure DbgsGradButton(AButton: TGradButton); +begin + DebugLn('######GradButton#####'); + +end; + procedure TGradButton.SetShowFocusBorder(const Value: Boolean); begin FShowFocusBorder:=Value; @@ -383,6 +407,30 @@ begin end; +function TGradButton.GetAutoWidth: Integer; +begin + if FShowGlyph then begin + if FButtonLayout in [blGlyphLeft,blGlyphRight] then + Result := FRotatedText.Width+ FRotatedGlyph.Width+FTextGlyphSpacing+FAutoWidthBorderSpacing + else + Result := Max(FRotatedText.Width,FRotatedGlyph.Width)+FAutoWidthBorderSpacing; + end else begin + Result := FRotatedText.Width+FAutoWidthBorderSpacing; + end; +end; + +function TGradButton.GetAutoHeight: Integer; +begin + if FShowGlyph then begin + if FButtonLayout in [blGlyphTop,blGlyphBottom] then + Result := FRotatedText.Height+ FRotatedGlyph.Height+FTextGlyphSpacing+FAutoHeightBorderSpacing + else + Result := Max(FRotatedText.Height,FRotatedGlyph.Height)+FAutoHeightBorderSpacing; + end else begin + Result := FRotatedText.Height+FAutoHeightBorderSpacing; + end; +end; + procedure TGradButton.PaintBackground(AState: TButtonState; TrgBitmap: TBitmap); var FTempState : TButtonState; @@ -610,40 +658,10 @@ begin end; procedure TGradButton.UpdateButton; - function Max(a,b: Integer) : Integer; - begin - if a>b then - Result := a - else - Result := b; - end; -var - newWidth : Integer; + begin - if FAutoWidth then - begin - //WriteLn(FRotatedText.Bitmap.Width); - //WriteLn(FRotatedGlyph.Bitmap.Width); - if FRotateDirection = rdNormal then begin - if FShowGlyph then begin - if FButtonLayout in [blGlyphLeft,blGlyphRight] then - Width := FRotatedText.Width+ FRotatedGlyph.Width+FTextGlyphSpacing+FAutoWidthBorderSpacing - else - Width := Max(FRotatedText.Width,FRotatedGlyph.Width)+FAutoWidthBorderSpacing; - end else begin - Width:= FRotatedText.Width+FAutoWidthBorderSpacing; - end; - end else begin - if FShowGlyph then begin - if FButtonLayout in [blGlyphTop,blGlyphBottom] then - Height := FRotatedText.Height+ FRotatedGlyph.Height+FTextGlyphSpacing+FAutoWidthBorderSpacing - else - Height := Max(FRotatedText.Height,FRotatedGlyph.Height)+FAutoWidthBorderSpacing; - end else begin - Height := FRotatedText.Height+FAutoWidthBorderSpacing; - end; - end; - end; + if FAutoWidth then Width := GetAutoWidth; + if FAutoHeight then Height := GetAutoHeight; UpdateBackground; UpdateText; @@ -788,6 +806,22 @@ begin end; end; +procedure TGradButton.SetAutoHeight(const AValue: Boolean); +begin + if FAutoHeight=AValue then exit; + FAutoHeight:=AValue; + + UpdateButton; +end; + +procedure TGradButton.SetAutoHeightBorderSpacing(const AValue: Integer); +begin + if FAutoHeightBorderSpacing=AValue then exit; + FAutoHeightBorderSpacing:=AValue; + + UpdateButton; +end; + procedure TGradButton.SetAutoWidthBorderSpacing(const AValue: Integer); begin if FAutoWidthBorderSpacing=AValue then exit; @@ -804,6 +838,7 @@ begin Height:=25; FAutoWidthBorderSpacing:=15; + FAutoHeightBorderSpacing:=15; FNormalBlend:=0.5; FOverBlend:=0.653; FBaseColor:=clBlue; @@ -814,6 +849,7 @@ begin FDisabledColor:=clGray; FEnabled:=true; FAutoWidth:=false; + FAutoHeight:=false; FOnlyBackground:=false; FShowFocusBorder:=true; @@ -851,6 +887,7 @@ begin UpdateBackground; + Font.Color:=clWhite; end; destructor TGradButton.Destroy; diff --git a/components/gradcontrols/src/ugradtabcontrol.pas b/components/gradcontrols/src/ugradtabcontrol.pas index 99b6bccf2..8cae51685 100644 --- a/components/gradcontrols/src/ugradtabcontrol.pas +++ b/components/gradcontrols/src/ugradtabcontrol.pas @@ -9,7 +9,6 @@ unit ugradtabcontrol; @license http://creativecommons.org/licenses/LGPL/2.1/ @todo: - If a Button isnt visible but focused the bar should move to the button - working - - LongTabs at Left/Right - Side needed - Close Button at Tabs - Drawer needed or first style wishes - Button Events accessable from Page-Events @@ -20,13 +19,14 @@ unit ugradtabcontrol; {$mode objfpc}{$H+} -{$DEFINE DEBUGTAB} +{.$DEFINE DEBUGTAB} interface uses Classes,LResources, SysUtils, Menus, LCLType, - LCLProc, ExtCtrls, Graphics, ugradbtn, Controls, uRotateBitmap; + LCLProc, ExtCtrls, Graphics, ugradbtn, Controls, uRotateBitmap, + Buttons; type TGradTabControl = class; @@ -42,10 +42,14 @@ type protected procedure SetRotateDirection(const Value: TRotateDirection); override; procedure RealSetText(const Value: TCaption); override; + procedure SetAutoHeightBorderSpacing(const AValue: Integer); override; + procedure SetAutoWidthBorderSpacing(const AValue: Integer); override; + procedure SetShowGlyph(const Value: Boolean); override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Resize; override; + procedure SetBounds(aLeft, aTop, aWidth, aHeight: integer); override; property ShowCloseButton : Boolean read FShowCloseButton write SetShowCloseButton default false; published property OnStartDock; @@ -73,51 +77,74 @@ type //Properties of the Tab should be accessable from here TGradTabPage = class(TCustomControl) private - FButton : TGradTabPageButton; - FCaption: TCaption; - FGradTabControl : TGradTabControl; //Maybe needed ^.^ - FFlags: TPageFlags; - FTabVisible,FCurrentlyDestroying,FShowCloseButton : Boolean; - procedure SetTabPopupMenu(Value : TPopupMenu); - function GetTabPopupMenu : TPopupMenu; - procedure SetText(const Value: TCaption); - function GetText : TCaption; + FButton : TGradTabPageButton; + FCaption: TCaption; + FGradTabControl : TGradTabControl; //Maybe needed ^.^ + FFlags: TPageFlags; + FImageIndex: Integer; + FTabVisible,FCurrentlyDestroying,FShowCloseButton : Boolean; + function GetTabButtonLayout: TButtonLayout; + function GetTabColor: TColor; + function GetTabGlyph: TBitmap; + function GetTabShowGlyph: Boolean; + function GetTabTextAlignment: TTextAlignment; + function GetTabPopupMenu : TPopupMenu; + function GetText : TCaption; + procedure SetImageIndex(const AValue: Integer); + procedure SetTabButtonLayout(const AValue: TButtonLayout); + procedure SetTabColor(const AValue: TColor); + procedure SetTabGlyph(const AValue: TBitmap); + procedure SetTabPopupMenu(Value : TPopupMenu); + procedure SetTabShowGlyph(const AValue: Boolean); + procedure SetTabTextAlignment(const AValue: TTextAlignment); + procedure SetText(const Value: TCaption); + procedure SetEnabled(Value: Boolean); override; protected - function GetPageIndex: integer; - procedure SetPageIndex(AValue: Integer); - procedure SetButton(Value : TGradTabPageButton); //Later dont needed - procedure SetParent(NewParent: TWinControl); override; - procedure SetShowCloseButton(Value: Boolean); - procedure SetTabVisible(Value: Boolean); + function GetPageIndex: integer; + procedure SetPageIndex(AValue: Integer); + procedure SetButton(Value : TGradTabPageButton); //Later dont needed + procedure SetParent(NewParent: TWinControl); override; + procedure SetShowCloseButton(Value: Boolean); + procedure SetTabVisible(Value: Boolean); public - constructor Create(AOwner: TComponent); override; - destructor Destroy; override; - procedure DestroyHandle; override; - procedure Paint; override; - property TabButton : TGradTabPageButton read FButton; - function VisibleIndex: integer; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure DestroyHandle; override; + procedure Paint; override; + property TabButton : TGradTabPageButton read FButton; + function VisibleIndex: integer; + procedure UpdateImage; published - //property ControlState; - //property ControlStyle; - property TabVisible : Boolean read FTabVisible write SetTabVisible default true; - property PageIndex : Integer read GetPageIndex write SetPageIndex; - property Caption : TCaption read GetText write SetText; - property ShowCloseButton : Boolean read FShowCloseButton write SetShowCloseButton default false; - property TabPopupMenu : TPopupMenu read GetTabPopupMenu write SetTabPopupMenu; - property OnStartDock; - property OnStartDrag; - property OnDockDrop; - property OnDockOver; - property OnDragDrop; - property OnDragOver; - property OnEndDock; - property OnEndDrag; - property OnMouseDown; - property OnMouseUp; - property OnMouseMove; - property OnMouseWheel; - property OnMouseWheelUp; - property OnMouseWheelDown; + //property ControlState; + //property ControlStyle; + property TabVisible : Boolean read FTabVisible write SetTabVisible default true; + property PageIndex : Integer read GetPageIndex write SetPageIndex; + property Caption : TCaption read GetText write SetText; + property ShowCloseButton : Boolean read FShowCloseButton write SetShowCloseButton default false; + property TabPopupMenu : TPopupMenu read GetTabPopupMenu write SetTabPopupMenu; + property Color; + property TabColor : TColor read GetTabColor write SetTabColor; + property TabTextAlignment : TTextAlignment read GetTabTextAlignment write SetTabTextAlignment; + property TabGlyph : TBitmap read GetTabGlyph write SetTabGlyph; + property TabShowGlyph : Boolean read GetTabShowGlyph write SetTabShowGlyph; + property TabButtonLayout : TButtonLayout read GetTabButtonLayout write SetTabButtonLayout; + property ImageIndex : Integer read FImageIndex write SetImageIndex default 0; + property Enabled; + property PopupMenu; + property OnStartDock; + property OnStartDrag; + property OnDockDrop; + property OnDockOver; + property OnDragDrop; + property OnDragOver; + property OnEndDock; + property OnEndDrag; + property OnMouseDown; + property OnMouseUp; + property OnMouseMove; + property OnMouseWheel; + property OnMouseWheelUp; + property OnMouseWheelDown; end; { TGradTabPagesBar } @@ -145,6 +172,7 @@ type function IsVisible(Index: Integer) : Boolean; procedure ChangeLeftTop(LastTabPosition : TTabPosition); function GetViewedTabs : TTabs; + procedure ScrollToTab(PIndex : Integer); public constructor Create(AOwner: TComponent; var thePageList: TListWithEvent; TheTabControl : TGradTabControl); @@ -212,9 +240,13 @@ type TGradTabControl = class(TCustomControl) private + FAutoShowScrollButton: Boolean; + FImages: TImageList; FMoveIncrement: Integer; FLeftButton, FRightButton : TGradButton; FOnPageChanged: TNotifyEvent; + FShowLeftTopScrollButton: Boolean; + FShowRightBottomScrollButton: Boolean; FTabStrings : TStrings; //TGradTabPages FPageList: TList; //Is Managed by TGradTabPages FTabList : TList; //Also ^^ @@ -226,11 +258,14 @@ type FTabHeight, FLongWidth : Integer; FBar : TGradTabBar; FPagesBar: TGradTabPagesBar; + FPagesPopup : TPopupMenu; FTabPosition : TTabPosition; FLongTabs : Boolean; procedure AssignEvents(TheControl : TCustomControl); procedure AlignPage(APage : TGradTabPage; ARect : TRect); procedure AlignPages; + procedure ImageListChange(Sender: TObject); + procedure UpdateTabImages; //procedure AddRemovePageHandle(APage: TGradTabPage); //procedure DoSendPageIndex; function GetCurrentPage : TGradTabPage; @@ -246,6 +281,11 @@ type procedure PageButtonMouseClick(Sender: TObject); procedure PageButtonMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); + procedure SetAutoShowScrollButtons(const AValue: Boolean); + procedure SetImages(const AValue: TImageList); + procedure SetLongWidth(const AValue: Integer); + procedure SetShowLeftTopScrollButton(const AValue: Boolean); + procedure SetShowRightBottomScrollButton(const AValue: Boolean); //SubControl Events procedure SubMouseWheel(Sender: TObject; Shift: TShiftState; @@ -261,6 +301,9 @@ type procedure SubMouseClick(Sender: TObject); procedure SubMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); + procedure SubDragOver(Sender, Source: TObject; + X,Y: Integer; State: TDragState; var Accept: Boolean); + procedure SubDragDrop(Sender, Source: TObject; X,Y: Integer); //End procedure MoveLeftTopClick(Sender: TObject); procedure MoveRightBottomClick(Sender: TObject); @@ -282,6 +325,7 @@ type procedure SetTabPosition(Value : TTabPosition); procedure SetLongTabs(Value : Boolean); procedure Change; + procedure UpdateTabProperties; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; @@ -297,13 +341,13 @@ type procedure UpdateDesignerFlags(APageIndex: integer); //Old - will be erased soon ^^ - property CurrentPageNum : Integer read FPageIndex write SetCurrentPageNum; property Pages[Index: Integer] : TGradTabPage read GetPage; property Page[Index: Integer] : TGradTabPage read GetPage; property Bar : TGradTabBar read FBar; property PagesBar : TGradTabPagesBar read FPagesBar; property PageList: TList read FPageList; property Tabs : TStrings read FTabStrings write SetTabs; + property PageCount : Integer read GetCount; published property Align; property ControlState; @@ -334,11 +378,15 @@ type property PageIndex : Integer read FPageIndex write SetCurrentPageNum; property TabHeight : Integer read FTabHeight write SetTabHeight; property TabPosition : TTabPosition read FTabPosition write SetTabPosition default tpTop; - property PageCount : Integer read GetCount; property LongTabs : Boolean read FLongTabs write SetLongTabs; - property LongWidth: Integer read FLongWidth write FLongWidth; + property LongWidth: Integer read FLongWidth write SetLongWidth; property MoveIncrement : Integer read FMoveIncrement write FMoveIncrement; property OnPageChanged: TNotifyEvent read FOnPageChanged write FOnPageChanged; + property AutoShowScrollButtons : Boolean read FAutoShowScrollButton write SetAutoShowScrollButtons; + property ShowLeftTopScrollButton : Boolean read FShowLeftTopScrollButton write SetShowLeftTopScrollButton; + property ShowRightBottomScrollButton : Boolean read FShowRightBottomScrollButton write SetShowRightBottomScrollButton; + property Images : TImageList read FImages write SetImages; + //property ShowTabs : Boolean; { TODO } end; @@ -380,7 +428,9 @@ var i : Integer; begin Result := false; + {$IFDEF DEBUGTAB} DebugLn('ValueInArray: Needle=%d Low=%d High=%d',[Needle, Low(Stack), High(Stack)]); + {$ENDIF} for i := Low(Stack) to High(Stack) do if Needle =Stack[i] then begin @@ -393,6 +443,8 @@ end; TGradTabPageButton Create(AOwner: TComponent ------------------------------------------------------------------------------} constructor TGradTabPageButton.Create(AOwner: TComponent); +var + tempPic : TPicture; begin inherited Create(AOwner); @@ -404,15 +456,25 @@ begin FCloseButton.Left:=1; FCloseButton.Top:=1; FCloseButton.Caption:=''; - FCloseButton.Glyph.Assign(CreateBitmapFromLazarusResource('close_btn')); + //FCloseButton.Glyph := TBitmap(CreateBitmapFromLazarusResource('close_btn')); FCloseButton.ShowGlyph:=true; + try + tempPic := TPicture.Create; + + tempPic.LoadFromLazarusResource('close_btn'); + + FCloseButton.Glyph.Assign(tempPic.Graphic); + finally + tempPic.Free; + end; + FCloseButton.BorderSides:=[]; FCloseButton.Color:=clRed; //FCloseButton.Visible:=false; //FCloseButton.Parent := Self; - FShowCloseButton:=true; + FShowCloseButton:=false; SetSubComponent(true); end; @@ -496,6 +558,27 @@ begin AlignCloseButton; end; +procedure TGradTabPageButton.SetBounds(aLeft, aTop, aWidth, aHeight: integer); +var + ParentControl : TGradTabControl; +begin + {if Parent = nil then Exit; + ParentControl := TGradTabPagesBar(Parent).FTabControl; + + if ParentControl.TabPosition in [tpLeft, tpRight] then + begin + if ParentControl.LongTabs then + begin + if ParentControl.LongWidth <> aWidth then + if ParentControl.LongWidth < aWidth then + begin + ParentControl.LongWidth:=aWidth; + end; + end; + end;} + inherited SetBounds(aLeft, aTop, aWidth, aHeight); +end; + {------------------------------------------------------------------------------- TGradTabPageButton SetRotateDirection(const Value: TRotateDirection) ------------------------------------------------------------------------------} @@ -533,6 +616,27 @@ begin (Parent as TGradTabPagesBar).OrderButtons; end; +procedure TGradTabPageButton.SetAutoHeightBorderSpacing(const AValue: Integer); +begin + inherited SetAutoHeightBorderSpacing(AValue); + + if Parent <> nil then (Parent AS TGradTabPagesBar).OrderButtons; +end; + +procedure TGradTabPageButton.SetAutoWidthBorderSpacing(const AValue: Integer); +begin + inherited SetAutoWidthBorderSpacing(AValue); + + if Parent <> nil then (Parent AS TGradTabPagesBar).OrderButtons; +end; + +procedure TGradTabPageButton.SetShowGlyph(const Value: Boolean); +begin + inherited SetShowGlyph(Value); + + if Parent <> nil then (Parent AS TGradTabPagesBar).OrderButtons; +end; + {------------------------------------------------------------------------------- TGradTabPage Create(AOwner: TGradTabPageButton) ------------------------------------------------------------------------------} @@ -550,6 +654,7 @@ begin FTabVisible:=true; FShowCloseButton:=false; + FImageIndex:=0; end; {------------------------------------------------------------------------------- @@ -593,6 +698,8 @@ procedure TGradTabPage.SetPageIndex(AValue: Integer); begin if (Parent<>nil) and (Parent is TGradTabControl) then begin TGradTabControl(Parent).MoveTab(Self,AValue); + + {SetText(FCaption); } end; end; @@ -649,6 +756,8 @@ begin DebugLn('Insert Page in new Parent'); end; + FGradTabControl := TGradTabControl(NewParent); + DebugLn('TGradTabPage.SetParent end'); end; @@ -715,6 +824,12 @@ begin Result := FButton.PopupMenu; end; +procedure TGradTabPage.SetTabTextAlignment(const AValue: TTextAlignment); +begin + if FButton.TextAlignment = AValue then Exit; + FButton.TextAlignment:= AValue; +end; + {------------------------------------------------------------------------------- TGradTabPage SetTabPopupMenu(Value: TPopupMenu) ------------------------------------------------------------------------------} @@ -726,6 +841,66 @@ begin FButton.PopupMenu:=Value; end; +procedure TGradTabPage.SetTabShowGlyph(const AValue: Boolean); +begin + FButton.ShowGlyph:= AValue; +end; + +function TGradTabPage.GetTabColor: TColor; +begin + Result := FButton.Color +end; + +function TGradTabPage.GetTabButtonLayout: TButtonLayout; +begin + Result := FButton.ButtonLayout; +end; + +function TGradTabPage.GetTabGlyph: TBitmap; +begin + Result := FButton.Glyph; +end; + +function TGradTabPage.GetTabShowGlyph: Boolean; +begin + Result := FButton.ShowGlyph; +end; + +function TGradTabPage.GetTabTextAlignment: TTextAlignment; +begin + Result := FButton.TextAlignment; +end; + +procedure TGradTabPage.SetImageIndex(const AValue: Integer); +begin + if FImageIndex=AValue then exit; + FImageIndex:=AValue; + + if FGradTabControl.Images <> nil then + begin + UpdateImage; + end; +end; + +procedure TGradTabPage.SetTabButtonLayout(const AValue: TButtonLayout); +begin + FButton.ButtonLayout:=AValue; +end; + +procedure TGradTabPage.SetTabColor(const AValue: TColor); +begin + if FButton.Color = AValue then Exit; + + FButton.Color:=AValue; +end; + +procedure TGradTabPage.SetTabGlyph(const AValue: TBitmap); +begin + if FButton.Glyph = AValue then Exit; + + FButton.Glyph.Assign(AValue); +end; + {------------------------------------------------------------------------------- TGradTabPage SetText(Value: TCaption) ------------------------------------------------------------------------------} @@ -736,7 +911,7 @@ begin if FShowCloseButton then FButton.Caption:=FCaption+' ' else - FButton.Caption:=FCaption; + FButton.Caption:={IntToStr(PageIndex)+': '+}FCaption; end; {------------------------------------------------------------------------------- @@ -747,6 +922,13 @@ begin Result := FCaption; end; +procedure TGradTabPage.SetEnabled(Value: Boolean); +begin + inherited SetEnabled(Value); + + FButton.Enabled:=Value; +end; + {------------------------------------------------------------------------------- TGradTabPage Paint ------------------------------------------------------------------------------} @@ -791,6 +973,17 @@ begin Result := -1; end; +procedure TGradTabPage.UpdateImage; +begin + if FGradTabControl = nil then Exit; + + FButton.Glyph.Clear; + + if Assigned(FGradTabControl.Images) AND (FGradTabControl.Images.Count<>0) then begin + FGradTabControl.Images.GetBitmap(ImageIndex,FButton.Glyph); + end; +end; + {------------------------------------------------------------------------------- TGradTabPagesBar Create(AOwner: TComponent; var theTabList: TListWithEvent; TheTabControl : TGradTabControl) @@ -835,37 +1028,56 @@ procedure TGradTabPagesBar.MoveToNext; var TheTabs : TTabs; VIA, L : Boolean; + FLastShowFrom : Integer; begin - DebugLn('MoveToNext Begin'); + {$IFDEF DEBUGTAB}DebugLn('MoveToNext Begin');{$ENDIF} //DebugLn(GetStackTrace(true)); TheTabs:= GetViewedTabs; VIA := ValueInArray(FPageList.Count-1,TheTabs); L := (Length(TheTabs)>1); + {$IFDEF DEBUGTAB} DebugLn('ValueInArray=%s Length=%s',[BoolToStr(VIA,true),BoolToStr(L,true)]); + {$ENDIF} + + FLastShowFrom:= FShowFromButton; if VIA AND L then - FShowFromButton := TheTabs[0] else + FShowFromButton := TheTabs[0] + else Inc(FShowFromButton); if FShowFromButton>=FPageList.Count then FShowFromButton:= FPageList.Count-1; + {if not FTabControl.Page[FShowFromButton].Enabled then + FShowFromButton := FLastShowFrom;} - DebugLn('New FShowFromButton: %d',[FShowFromButton]); + {$IFDEF DEBUGTAB}DebugLn('New FShowFromButton: %d',[FShowFromButton]);{$ENDIF} OrderButtons; - DebugLn('MoveToNext End'); + {$IFDEF DEBUGTAB}DebugLn('MoveToNext End');{$ENDIF} + + //GetViewedTabs; end; procedure TGradTabPagesBar.MoveToPrior; +var + FLastShowFrom : Integer; begin + FLastShowFrom:= FShowFromButton; + Dec(FShowFromButton); if FShowFromButton<0 then FShowFromButton := 0; - DebugLn('New FShowFromButton: %d',[FShowFromButton]); + {if not FTabControl.Page[FShowFromButton].Enabled then + FShowFromButton := FLastShowFrom; + } + {$IFDEF DEBUGTAB}DebugLn('New FShowFromButton: %d',[FShowFromButton]);{$ENDIF} OrderButtons; + + //GetViewedTabs; end; {------------------------------------------------------------------------------- @@ -894,13 +1106,13 @@ begin OnClick:=@FTabControl.PageButtonMouseClick; OnMouseMove:=@FTabControl.PageButtonMouseMove; - if TabPosition in [tpTop, tpBottom] then + { if TabPosition in [tpTop, tpBottom] then begin AutoWidth := true else if FTabControl.LongTabs then AutoWidth := false else AutoWidth := true; - + } end; @@ -993,6 +1205,8 @@ var NewGradientType: TGradientType; B : TGradButton; begin + if csDestroying in FTabControl.ComponentState then Exit; + DebugLn('OrderButton Start'); FMovedTo:=0; @@ -1039,20 +1253,30 @@ begin tpLeft: begin NewBorderSides := [bsTopLine, bsBottomLine, bsLeftLine]; - NewGradientType := gtVertical; - NewDirection := rdLeft; + if FTabControl.LongTabs then begin + NewGradientType := gtHorizontal; + NewDirection := rdNormal; + end else begin + NewGradientType := gtVertical; + NewDirection := rdLeft; + end; end; tpRight: begin NewBorderSides := [bsTopLine, bsBottomLine, bsRightLine]; - NewGradientType := gtVertical; - NewDirection := rdRight; + if FTabControl.LongTabs then begin + NewGradientType := gtHorizontal; + NewDirection := rdNormal; + end else begin + NewGradientType := gtVertical; + NewDirection := rdRight; + end; end; end; //DebugLn('ActivePage: %d',[FActiveIndex]); - FActiveIndex:=FTabControl.CurrentPageNum; + FActiveIndex:=FTabControl.PageIndex; //DebugLn('ActivePage: %d',[FActiveIndex]); for i := 0 to FPageList.Count - 1 do @@ -1070,6 +1294,9 @@ begin case FTabPosition of tpTop: begin + //if B.Width < B.GetAutoWidth then + B.Width := B.GetAutoWidth; + B.Left := LastLeft; LastLeft := LastLeft + B.Width + 1; @@ -1083,6 +1310,9 @@ begin end; tpBottom: begin + //if B.Width < B.GetAutoWidth then + B.Width := B.GetAutoWidth; + B.Left := LastLeft; LastLeft := LastLeft + B.Width + 1; @@ -1095,28 +1325,52 @@ begin end; tpLeft: begin + if FTabControl.LongTabs then begin + if (B.GetAutoWidth > FTabControl.LongWidth) then + begin + FTabControl.LongWidth:=B.GetAutoWidth; + Exit; + end; + + + end; + + B.Height:= B.GetAutoHeight; + B.Top := LastTop; LastTop := LastTop + B.Height + 1; if FActiveIndex = i then begin B.Left := 0; - B.Width:= BarWidth; + B.Width:= FTabControl.GetTabBarSize(tpLeft); end else begin B.Left := 3; - B.Width:= BarWidth-3; + B.Width:= FTabControl.GetTabBarSize(tpLeft)-3; end; end; tpRight: begin + if FTabControl.LongTabs then begin + if (B.GetAutoWidth > FTabControl.LongWidth) then + begin + FTabControl.LongWidth:=B.GetAutoWidth; + Exit; + end; + end; + + B.Height:= B.GetAutoHeight; + B.Top := LastTop; LastTop := LastTop + B.Height + 1; B.Left := 0; if FActiveIndex = i then - B.Width := BarWidth - else - B.Width := BarWidth-3; + B.Width := FTabControl.GetTabBarSize(tpRight) + else begin + B.Width := FTabControl.GetTabBarSize(tpRight)-3; + end; + //DebugLn('B.Width=%d TabBarSize(tpRight)=%d FActive=%d',[B.Width, FTabControl.GetTabBarSize(tpRight), FActiveIndex]); end; end; @@ -1124,11 +1378,13 @@ begin end; end; - DebugLn('BarWidth=%d LastLeft=%d FMovedTo=%d BarHeight=%d LastTop=%d',[BarWidth, + {DebugLn('BarWidth=%d LastLeft=%d FMovedTo=%d BarHeight=%d LastTop=%d',[BarWidth, LastLeft, FMovedTo, BarHeight, LastTop]); DebugLn('BarWidth < LastLeft-FMovedTo = %s BarHeight < LastTop-FMovedTo=%s',[ BoolStr(BarWidth < (LastLeft-FMovedTo)), BoolStr(BarHeight < (LastTop-FMovedTo))]); + } + if not FTabControl.AutoShowScrollButtons then Exit; if ((BarWidth < (LastLeft-FMovedTo)) OR (BarHeight < (LastTop-FMovedTo))) AND ((BarHeight<>0) AND (BarWidth<>0)) then begin FTabControl.FLeftButton.Visible:=true; @@ -1191,6 +1447,7 @@ var c : Integer; begin //FShowFromButton:=Index; + if csDestroying in FTabControl.ComponentState then Exit; if (Index < 0) or (Index >= FPageList.Count) then Exit; //FActiveIndex:=Index; //FShowFromButton:=Index; @@ -1211,6 +1468,9 @@ begin Left := 0; Width:= Self.Width; + if FTabControl.LongTabs then + Height := FTabControl.TabHeight; + DoNext := ((Top+Height)>= Self.Height); end; end; @@ -1224,23 +1484,9 @@ begin DebugLn('Left=%d Width=%d Width=%d',[TGradTabPage(FPageList.Items[Index]).TabButton.Left, TGradTabPage(FPageList.Items[Index]).TabButton.Width, Width]); - repeat - CurTabs := GetViewedTabs; - SetLength(CurTabs, Length(CurTabs)-1); - - with TGradTabPage(FPageList.Items[Index]).TabButton do - case FTabPosition of - tpTop, tpBottom : DoNext := ((Left+Width)>= Self.Width); - tpRight, tpLeft: DoNext := ((Top+Height)>= Self.Height); - end; - - if not DoNext then MoveToNext else MoveToPrior; - - Inc(C); - - until(ValueInArray(Index,CurTabs) OR (C=10)); - - if DoNext then MoveToNext else MoveToPrior; + DebugLn('Before ScrollToTab'); + ScrollToTab(Index); + DebugLn('After ScrollToTab'); end; {------------------------------------------------------------------------------- @@ -1296,6 +1542,8 @@ function TGradTabPagesBar.GetViewedTabs: TTabs; var i,l : Integer; begin + //DebugLn('GetViewedTabs'); + //DebugLn('Width=%d Height=%d',[Width,Height]); for i := 0 to FPageList.Count-1 do begin with TGradTabPage(FPageList.Items[i]).TabButton do @@ -1304,11 +1552,47 @@ begin ((TabPosition in [tpLeft, tpRight]) AND (Top >= 0) {AND (Top <=(Self.Height-10))} AND (Top+Height < Self.Height)) then begin l := IncAr(Result); - DebugLn('GetViewedTabs: Length: %d Value: %d',[l,i]); + //DebugLn('L=%d T=%d W=%d H=%d Caption=%s',[Left, Top, Width, Height, Caption]); + //DebugLn('%d. Value: %d',[l,i]); Result[l] := i; end; end; end; + //DebugLn('GetViewedTabs End'); +end; + +procedure TGradTabPagesBar.ScrollToTab(PIndex: Integer); +var + CurTabs : TTabs; + C : Integer; + DoNext : Boolean; +begin + C := 0; + + if (FPageList.Count=0) OR (PIndex>=FPageList.Count) then Exit; + + {$IFDEF DEBUGTAB} DebugLn('ScrollToTab=%d',[PIndex]); {$ENDIF} + repeat + {$IFDEF DEBUGTAB} DebugLn('Run=%d',[C]); {$ENDIF} + CurTabs := GetViewedTabs; + SetLength(CurTabs, Length(CurTabs)-2); + + with TGradTabPage(FPageList.Items[PIndex]).TabButton do + case FTabPosition of + tpTop, tpBottom : DoNext := ((Left+Width)>= Self.Width); + tpRight, tpLeft: DoNext := ((Top+Height)>= Self.Height); + end; + + if DoNext then MoveToNext else MoveToPrior; + + Inc(C); + + {$IFDEF DEBUGTAB} DebugLn('ValInAr=%s',[BoolStr(ValueInArray(PIndex,CurTabs))]); {$ENDIF} + + until(ValueInArray(PIndex,CurTabs) OR (C=10)); + + if DoNext then MoveToNext else MoveToPrior; + {$IFDEF DEBUGTAB} DebugLn('ScrollToTab End'); {$ENDIF} end; {------------------------------------------------------------------------------- @@ -1496,7 +1780,7 @@ var NewButton: TGradTabPageButton; NewOwner: TComponent; begin - {$IFDEF NOTEBOOK_DEBUG} + {$IFDEF DEBUGTAB} DebugLn(['TGradTabPages.Insert A ',FNoteBook.Name,' Index=',Index,' S="',S,'"']); {$ENDIF} NewOwner:=FGradTabControl.Owner; @@ -1520,13 +1804,13 @@ begin //Name := 'gradtabpage_'+IntToStr(Index); end; - {$IFDEF NOTEBOOK_DEBUG} + {$IFDEF DEBUGTAB} DebugLn(['TGradTabPages.Insert B ',FNotebook.Name,' Index=',Index,' S="',S,'"']); {$ENDIF} {TODO} FGradTabControl.InsertPage(NewPage,Index); //FGradTabControl.PagesBar.InsertButton(NewButton, Index); - {$IFDEF NOTEBOOK_DEBUG} + {$IFDEF DEBUGTAB} DebugLn(['TGradTabPages.Insert END ',FNotebook.Name,' Index=',Index,' S="',S,'"']); {$ENDIF} end; @@ -1653,25 +1937,34 @@ end; ------------------------------------------------------------------------------} destructor TGradTabControl.Destroy; begin - DebugLn('TGradTabControl.Destroy Start'); - DebugLn('B Tabs.Clear'); + {$IFDEF DEBUGTAB} + DebugLn('TGradTabControl.Destroy Start'); + DebugLn('B Tabs.Clear'); + {$ENDIF} Tabs.Clear; + {$IFDEF DEBUGTAB} DebugLn('A Tabs.Clear'); DebugLn('B FreeAndNil(FTabStrings)'); + {$ENDIF} FreeAndNil(FTabStrings); + {$IFDEF DEBUGTAB} DebugLn('A FreeAndNil(FTabStrings)'); DebugLn('B FreeAndNil(FPageList)'); + {$ENDIF} FreeAndNil(FPageList); + {$IFDEF DEBUGTAB} DebugLn('A FreeAndNil(FPageList)'); DebugLn('B FreeAndNil(FTabList)'); + {$ENDIF} FreeAndNil(FTabList); + {$IFDEF DEBUGTAB} DebugLn('A FreeAndNil(FTabList)'); DebugLn('B FreeAndNil(FPagesBar)'); DebugLn(IsAssigned(FPagesBar)); - + {$ENDIF} FLeftButton.Free; FRightButton.Free; - + {$IFDEF DEBUGTAB} //FPagesBar.Parent := nil; DebugLn('B Free'); //FPagesBar.Free; @@ -1683,7 +1976,7 @@ begin //FBar.Free; DebugLn('A FreeAndNil(FBar)'); DebugLn('TGradTabControl.Destroy End'); - + {$ENDIF} inherited; end; @@ -1712,6 +2005,8 @@ begin OnMouseMove:=@SubMouseMove; OnMouseDown:=@SubMouseDown; OnMouseUp:=@SubMouseUp; + OnDragOver:=@SubDragOver; + OnDragDrop:=@SubDragDrop; end; end; @@ -1740,6 +2035,23 @@ begin UpdateAllDesignerFlags; end; +procedure TGradTabControl.ImageListChange(Sender: TObject); +begin + UpdateTabImages; +end; + +procedure TGradTabControl.UpdateTabImages; +var + i : Integer; +begin + if FImages = nil then Exit; + + DebugLn('Images.Count: %d',[Images.Count]); + + for i := 0 to PageCount-1 do + TGradTabPage(FPageList.Items[i]).UpdateImage; +end; + {------------------------------------------------------------------------------ TGradTabControl GetCurrentPage : TGradTabPage ------------------------------------------------------------------------------} @@ -1852,7 +2164,7 @@ begin //WriteLn('MouseClick: ', FTabList.IndexOf(Sender)); AButton := TGradTabPageButton(Sender); - CurrentPageNum:=FPageList.IndexOf(AButton.Owner); + PageIndex:=FPageList.IndexOf(AButton.Owner); if Assigned(FOnTabButtonClick) then FOnTabButtonClick(Self, FPageList.IndexOf(AButton.Owner)); @@ -1871,6 +2183,57 @@ begin FOnTabButtonMouseMove(Self, Shift, X,Y, FPageList.IndexOf(AButton.Owner)); end; +procedure TGradTabControl.SetAutoShowScrollButtons(const AValue: Boolean); +begin + if FAutoShowScrollButton=AValue then exit; + FAutoShowScrollButton:=AValue; + + FPagesBar.OrderButtons; +end; + +procedure TGradTabControl.SetImages(const AValue: TImageList); +begin + DebugLn('FImages: ', IsAssigned(FImages)); + if FImages=AValue then exit; + FImages:=AValue; + + DebugLn('FImages: ', IsAssigned(FImages)); + DebugLn('FImages: ', IsAssigned(Images)); + + //DebugLn('AValue: ', IsAssigned(AValue)); + + if FImages <> nil then + FImages.OnChange := @ImageListChange; + + UpdateTabImages; +end; + +procedure TGradTabControl.SetLongWidth(const AValue: Integer); +begin + {$IFDEF DEBUGTAB} DebugLn('SetLongWidth Old=%d New=%d',[FLongWidth, AValue]); {$ENDIF} + if FLongWidth = AValue then Exit; + {$IFDEF DEBUGTAB} DebugLn('NewLongWidth set'); {$ENDIF} + FLongWidth:=AValue; + SetTabPosition(TabPosition); +end; + +procedure TGradTabControl.SetShowLeftTopScrollButton(const AValue: Boolean); +begin + if FShowLeftTopScrollButton=AValue then exit; + FShowLeftTopScrollButton:=AValue; + + FLeftButton.Visible:=AValue; +end; + +procedure TGradTabControl.SetShowRightBottomScrollButton(const AValue: Boolean + ); +begin + if FShowRightBottomScrollButton=AValue then exit; + FShowRightBottomScrollButton:=AValue; + + FRightButton.Visible:=AValue; +end; + procedure TGradTabControl.SubMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean); begin @@ -1919,6 +2282,19 @@ begin OnMouseMove(Sender, Shift, X, Y); end; +procedure TGradTabControl.SubDragOver(Sender, Source: TObject; X, Y: Integer; + State: TDragState; var Accept: Boolean); +begin + if Assigned(OnDragOver) then + OnDragOver(Sender, Source, X, Y, State, Accept); +end; + +procedure TGradTabControl.SubDragDrop(Sender, Source: TObject; X, Y: Integer); +begin + if Assigned(OnDragDrop) then + OnDragDrop(Sender, Source, X, Y); +end; + procedure TGradTabControl.MoveLeftTopClick(Sender: TObject); begin //PagesBar.MoveTo(FMoveIncrement); @@ -1945,7 +2321,9 @@ begin if Index = FPageIndex then begin NewPageIndex := FindVisiblePage(Index); - DebugLn('TGradTabControl.PageRemoved Index: %d NewPageIndex: %d',[Index, NewPageIndex]); + {$IFDEF DEBUGTAB} + DebugLn('TGradTabControl.PageRemoved Index: %d NewPageIndex: %d',[Index, NewPageIndex]); + {$ENDIF} if NewPageIndex >= 0 then PageIndex := NewPageIndex else @@ -1973,6 +2351,8 @@ procedure TGradTabControl.SetCurrentPageNum(Value: Integer); begin if (Value<0) or (Value>=fPageList.Count) then Exit; if FPageIndex=Value then Exit; + if not Page[Value].Enabled then Exit; + if not Page[Value].TabVisible then Exit; if FPageIndex <> -1 then UnShowPage(FPageIndex); @@ -2038,7 +2418,10 @@ end; ------------------------------------------------------------------------------} function TGradTabControl.ChildClassAllowed(ChildClass: TClass): boolean; begin - DebugLn('TGradTabControl.ChildClassAllowed ',ChildClass.ClassName); + {$IFDEF DEBUGTAB} + DebugLn('TGradTabControl.ChildClassAllowed ',ChildClass.ClassName); + {$ENDIF} + Result := (ChildClass<>nil); Result := ChildClass.InheritsFrom(TGradTabPage) AND Result; if Result then Exit; @@ -2203,18 +2586,24 @@ end; ------------------------------------------------------------------------------} procedure TGradTabControl.SetTabHeight(Value: Integer); begin + if FTabHeight = Value then Exit; + FTabHeight:=Value; - if TabPosition in [tpTop,tpBottom] then + {if TabPosition in [tpTop,tpBottom] then FBar.Height := Value - else + else if not LongTabs then FBar.Width := Value; InvPaint; + FPagesBar.Align:=alNone; + FPagesBar.Align:=alClient; FPagesBar.OrderButtons; - if ActivePage <> nil then AlignPage(ActivePage,GetClientRect); + if ActivePage <> nil then AlignPage(ActivePage,GetClientRect); } + + SetTabPosition(TabPosition); end; {------------------------------------------------------------------------------ @@ -2280,34 +2669,53 @@ begin tpTop: begin FLeftButton.Align:=alLeft; FLeftButton.RotateDirection:=rdNormal; + FLeftButton.AutoWidth:=true; + FLeftButton.AutoHeight:=false; FRightButton.Align:=alRight; FRightButton.RotateDirection:=rdNormal; + FRightButton.AutoWidth:=true; + FRightButton.AutoHeight:=false; //FBar.Align:=alTop; end; tpLeft:begin FLeftButton.Align:=alTop; FLeftButton.RotateDirection:=rdRight; + FLeftButton.AutoWidth:=false; + FLeftButton.AutoHeight:=true; FRightButton.Align:=alBottom; FRightButton.RotateDirection:=rdRight; + FRightButton.AutoWidth:=false; + FRightButton.AutoHeight:=true; //FBar.Align:=alLeft; end; tpBottom:begin FLeftButton.Align:=alLeft; FLeftButton.RotateDirection:=rdNormal; + FLeftButton.AutoWidth:=true; + FLeftButton.AutoHeight:=false; FRightButton.Align:=alRight; FRightButton.RotateDirection:=rdNormal; + FRightButton.AutoWidth:=true; + FRightButton.AutoHeight:=false; //FBar.Align := alBottom; end; tpRight:begin FLeftButton.Align:=alTop; FLeftButton.RotateDirection:=rdRight; + FLeftButton.AutoWidth:=false; + FLeftButton.AutoHeight:=true; FRightButton.Align:=alBottom; FRightButton.RotateDirection:=rdRight; + FRightButton.AutoWidth:=false; + FRightButton.AutoHeight:=true; //FBar.Align:=alRight; end; end; - FPagesBar.TabPosition:=Value; + if FPagesBar.TabPosition=Value then + FPagesBar.OrderButtons + else + FPagesBar.TabPosition:=Value; {$IFDEF DEBUGTAB} DebugLn('After'); @@ -2327,7 +2735,11 @@ end; ------------------------------------------------------------------------------} procedure TGradTabControl.SetLongTabs(Value : Boolean); begin + if FLongTabs=Value then Exit; FLongTabs:=Value; + + SetTabPosition(TabPosition); + //FPagesBar.OrderButtons; end; {------------------------------------------------------------------------------ @@ -2339,10 +2751,15 @@ begin fPageIndexOnLastChange := fPageIndex; if ([csLoading,csDestroying]*ComponentState=[]) then begin - //if Assigned(fOnPageChanged) then fOnPageChanged(Self); + if Assigned(fOnPageChanged) then fOnPageChanged(Self); end; end; +procedure TGradTabControl.UpdateTabProperties; +begin + +end; + {------------------------------------------------------------------------------ TGradTabControl AddPage(AName: String) : Integer ------------------------------------------------------------------------------} @@ -2357,7 +2774,7 @@ end; function TGradTabControl.AddPage(APage: TGradTabPage) : Integer; begin Result := FPageList.Count; - FPageList.Insert(FPageList.Count, APage); + FPageList.Insert(Result, APage); //Result := FTabStrings.Count; end; @@ -2508,7 +2925,9 @@ end; ------------------------------------------------------------------------------} procedure TGradTabControl.UpdateDesignerFlags(APageIndex: integer); begin - DebugLn('UpdateDesignerFlags: Index: %d Current: %d Assigned: %s',[APageIndex, FPageIndex,BoolToStr(Assigned(Page[APageIndex]),true)]); + {$IFDEF DEBUGTAB} + DebugLn('UpdateDesignerFlags: Index: %d Current: %d Assigned: %s',[APageIndex, FPageIndex,BoolToStr(Assigned(Page[APageIndex]),true)]); + {$ENDIF} if APageIndex<>FPageIndex then Page[APageIndex].ControlStyle:= @@ -2517,7 +2936,7 @@ begin Page[APageIndex].ControlStyle:= Page[APageIndex].ControlStyle-[csNoDesignVisible{,csNoDesignSelectable}]; - DebugLn('UpdateDesignerFlags End'); + {$IFDEF DEBUGTAB} DebugLn('UpdateDesignerFlags End'); {$ENDIF} end;