You've already forked lazarus-ccr
! Now only 1 Package for Both Components
! Working Styles on TGradTabControl #1 git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1110 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
object Form1: TForm1
|
||||
Left = 89
|
||||
Left = 368
|
||||
Height = 439
|
||||
Top = 159
|
||||
Top = 215
|
||||
Width = 576
|
||||
ActiveControl = TrackBar1
|
||||
BorderIcons = [biSystemMenu, biMinimize]
|
||||
@ -10,7 +10,7 @@ object Form1: TForm1
|
||||
ClientHeight = 439
|
||||
ClientWidth = 576
|
||||
OnCreate = FormCreate
|
||||
LCLVersion = '0.9.27'
|
||||
LCLVersion = '0.9.29'
|
||||
object Label1: TLabel
|
||||
Left = 8
|
||||
Height = 16
|
||||
@ -291,7 +291,7 @@ object Form1: TForm1
|
||||
end
|
||||
object LabeledEdit1: TLabeledEdit
|
||||
Left = 328
|
||||
Height = 25
|
||||
Height = 23
|
||||
Top = 216
|
||||
Width = 80
|
||||
EditLabel.AnchorSideLeft.Control = LabeledEdit1
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ Das ist eine automatisch erzeugte Lazarus-Ressourcendatei }
|
||||
|
||||
LazarusResources.Add('TForm1','FORMDATA',[
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#2'Y'#6'Height'#3#183#1#3'Top'#3#159#0#5'Wid'
|
||||
+'th'#3'@'#2#13'ActiveControl'#7#9'TrackBar1'#11'BorderIcons'#11#12'biSystemM'
|
||||
+'enu'#10'biMinimize'#0#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#16'TGradBu'
|
||||
+'tton-Demo'#12'ClientHeight'#3#183#1#11'ClientWidth'#3'@'#2#8'OnCreate'#7#10
|
||||
+'FormCreate'#10'LCLVersion'#6#6'0.9.27'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6
|
||||
+'Height'#2#16#3'Top'#2'K'#5'Width'#2'G'#7'Caption'#6#11'NormalBlend'#11'Pare'
|
||||
+'ntColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#16#3'Top'#3#131#0
|
||||
+#5'Width'#2'8'#7'Caption'#6#9'OverBlend'#11'ParentColor'#8#0#0#6'TLabel'#6'L'
|
||||
+'abel3'#4'Left'#2'X'#6'Height'#2#16#3'Top'#2'K'#5'Width'#2#1#11'ParentColor'
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'p'#1#6'Height'#3#183#1#3'Top'#3#215#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#183#1#11'ClientWidth'#3'@'#2#8'OnCreate'#7
|
||||
+#10'FormCreate'#10'LCLVersion'#6#6'0.9.29'#0#6'TLabel'#6'Label1'#4'Left'#2#8
|
||||
+#6'Height'#2#16#3'Top'#2'K'#5'Width'#2'G'#7'Caption'#6#11'NormalBlend'#11'Pa'
|
||||
+'rentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#16#3'Top'#3#131
|
||||
+#0#5'Width'#2'8'#7'Caption'#6#9'OverBlend'#11'ParentColor'#8#0#0#6'TLabel'#6
|
||||
+'Label3'#4'Left'#2'X'#6'Height'#2#16#3'Top'#2'K'#5'Width'#2#1#11'ParentColor'
|
||||
+#8#0#0#6'TLabel'#6'Label4'#4'Left'#2'X'#6'Height'#2#16#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#16
|
||||
+#3'Top'#2#16#5'Width'#2'9'#7'Caption'#6#10'Base Color'#11'ParentColor'#8#0#0
|
||||
@ -90,7 +90,7 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
||||
+'eight'#2'X'#11'ClientWidth'#2'}'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#8't'
|
||||
+'aCenter'#6#13'taLeftJustify'#6#14'taRightJustify'#0#7'OnClick'#7#16'RadioGr'
|
||||
+'oup4Click'#8'TabOrder'#2#5#0#0#12'TLabeledEdit'#12'LabeledEdit1'#4'Left'#3
|
||||
+'H'#1#6'Height'#2#25#3'Top'#3#216#0#5'Width'#2'P EditLabel.AnchorSideLeft.Co'
|
||||
+'H'#1#6'Height'#2#23#3'Top'#3#216#0#5'Width'#2'P EditLabel.AnchorSideLeft.Co'
|
||||
+'ntrol'#7#12'LabeledEdit1"EditLabel.AnchorSideBottom.Control'#7#12'LabeledEd'
|
||||
+'it1'#14'EditLabel.Left'#3'H'#1#16'EditLabel.Height'#2#16#13'EditLabel.Top'#3
|
||||
+#197#0#15'EditLabel.Width'#2'R'#17'EditLabel.Caption'#6#14'Button Caption'#21
|
||||
|
@ -1,14 +1,14 @@
|
||||
object Form1: TForm1
|
||||
Left = 275
|
||||
Left = 229
|
||||
Height = 493
|
||||
Top = 161
|
||||
Top = 150
|
||||
Width = 884
|
||||
Caption = 'TGradTabControl-Testsuite'
|
||||
ClientHeight = 493
|
||||
ClientWidth = 884
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
LCLVersion = '0.9.27'
|
||||
LCLVersion = '0.9.29'
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Height = 493
|
||||
@ -94,7 +94,7 @@ object Form1: TForm1
|
||||
end
|
||||
object GradTabPage2: TGradTabPage
|
||||
Left = 2
|
||||
Height = 488
|
||||
Height = 489
|
||||
Top = 22
|
||||
Width = 642
|
||||
PageIndex = 2
|
||||
@ -247,8 +247,8 @@ object Form1: TForm1
|
||||
ChildSizing.ShrinkVertical = crsScaleChilds
|
||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||
ChildSizing.ControlsPerLine = 1
|
||||
ClientHeight = 95
|
||||
ClientWidth = 96
|
||||
ClientHeight = 113
|
||||
ClientWidth = 100
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'tpTop'
|
||||
@ -321,7 +321,7 @@ object Form1: TForm1
|
||||
end
|
||||
object SpinEdit2: TSpinEdit
|
||||
Left = 16
|
||||
Height = 25
|
||||
Height = 23
|
||||
Top = 176
|
||||
Width = 100
|
||||
OnEditingDone = SpinEdit2EditingDone
|
||||
@ -329,7 +329,7 @@ object Form1: TForm1
|
||||
end
|
||||
object Edit1: TEdit
|
||||
Left = 16
|
||||
Height = 25
|
||||
Height = 23
|
||||
Top = 136
|
||||
Width = 72
|
||||
TabOrder = 6
|
||||
@ -337,7 +337,7 @@ object Form1: TForm1
|
||||
end
|
||||
object GradButton1: TGradButton
|
||||
Left = 90
|
||||
Height = 19
|
||||
Height = 22
|
||||
Top = 136
|
||||
Width = 26
|
||||
Caption = 'set'
|
||||
@ -402,8 +402,8 @@ object Form1: TForm1
|
||||
ChildSizing.ShrinkVertical = crsScaleChilds
|
||||
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
||||
ChildSizing.ControlsPerLine = 1
|
||||
ClientHeight = 87
|
||||
ClientWidth = 96
|
||||
ClientHeight = 105
|
||||
ClientWidth = 100
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'blGlyphLeft'
|
||||
@ -414,6 +414,41 @@ object Form1: TForm1
|
||||
OnClick = RadioGroup2Click
|
||||
TabOrder = 9
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 18
|
||||
Height = 16
|
||||
Top = 208
|
||||
Width = 26
|
||||
Caption = 'Style'
|
||||
ParentColor = False
|
||||
end
|
||||
object ComboBox2: TComboBox
|
||||
Left = 16
|
||||
Height = 23
|
||||
Top = 225
|
||||
Width = 100
|
||||
AutoDropDown = True
|
||||
ItemHeight = 15
|
||||
ItemIndex = 0
|
||||
Items.Strings = (
|
||||
'Standard'
|
||||
'Vista'
|
||||
'VistaBlue'
|
||||
)
|
||||
OnChange = ComboBox2Change
|
||||
Style = csDropDownList
|
||||
TabOrder = 10
|
||||
Text = 'Standard'
|
||||
end
|
||||
object CheckBox2: TCheckBox
|
||||
Left = 16
|
||||
Height = 19
|
||||
Top = 256
|
||||
Width = 112
|
||||
Caption = 'Rounded Corners'
|
||||
OnChange = CheckBox2Change
|
||||
TabOrder = 11
|
||||
end
|
||||
end
|
||||
object PopupMenu1: TPopupMenu
|
||||
left = 734
|
||||
|
@ -1,10 +1,10 @@
|
||||
{ Das ist eine automatisch erzeugte Lazarus-Ressourcendatei }
|
||||
|
||||
LazarusResources.Add('TForm1','FORMDATA',[
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#19#1#6'Height'#3#237#1#3'Top'#3#161#0#5'W'
|
||||
+'idth'#3't'#3#7'Caption'#6#25'TGradTabControl-Testsuite'#12'ClientHeight'#3
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#229#0#6'Height'#3#237#1#3'Top'#3#150#0#5
|
||||
+'Width'#3't'#3#7'Caption'#6#25'TGradTabControl-Testsuite'#12'ClientHeight'#3
|
||||
+#237#1#11'ClientWidth'#3't'#3#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11
|
||||
+'FormDestroy'#10'LCLVersion'#6#6'0.9.27'#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6
|
||||
+'FormDestroy'#10'LCLVersion'#6#6'0.9.29'#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6
|
||||
+'Height'#3#237#1#3'Top'#2#0#5'Width'#3#134#2#5'Align'#7#8'alClient'#7'Captio'
|
||||
+'n'#6#6'Panel1'#12'ClientHeight'#3#237#1#11'ClientWidth'#3#134#2#8'TabOrder'
|
||||
+#2#0#0#15'TGradTabControl'#15'GradTabControl1'#4'Left'#2#1#6'Height'#3#235#1
|
||||
@ -56,20 +56,20 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
||||
+#182#255'@'#157#187#255'N'#182#218#255'z'#204#233#130#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'kRJ|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#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#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'{'
|
||||
,'SIfg@4'#148#26#0#0#10'q'#161#162'$:'#159#189#158'1'#159#193#188'.'#159#195
|
||||
+#199#255'P'#175#207#253'|'#195#215#135#0#0'#'#0'kRJ|pLE'#137'\9-l'#127#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#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#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
|
||||
,'{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#12'TabShowGlyph'#9#15'TabButtonLayout'#7
|
||||
+#11'blGlyphLeft'#0#0#12'TGradTabPage'#12'GradTabPage2'#4'Left'#2#2#6'Height'
|
||||
+#3#232#1#3'Top'#2#22#5'Width'#3#130#2#9'PageIndex'#2#2#7'Caption'#6#12'GradT'
|
||||
+#3#233#1#3'Top'#2#22#5'Width'#3#130#2#9'PageIndex'#2#2#7'Caption'#6#12'GradT'
|
||||
+'abPage2'#15'ShowCloseButton'#9#8'TabColor'#7#6'clBlue'#16'TabTextAlignment'
|
||||
+#7#13'taLeftJustify'#13'TabGlyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0
|
||||
+#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0
|
||||
@ -106,10 +106,10 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
||||
+#255'N'#182#218#255'z'#204#233#130#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'kRJ|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#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235#255'I'#175#207#255';'#166
|
||||
+#253'|'#195#215#135#0#0'#'#0'kRJ|pLE'#137'\9-l'#127#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#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#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
|
||||
@ -156,10 +156,10 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
||||
+#255'N'#182#218#255'z'#204#233#130#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'kRJ|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#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235#255'I'#175#207#255';'#166
|
||||
+#253'|'#195#215#135#0#0'#'#0'kRJ|pLE'#137'\9-l'#127#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#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#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
|
||||
@ -184,7 +184,7 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
||||
+'esize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing'
|
||||
+'.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftTo'
|
||||
+'RightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2
|
||||
+'_'#11'ClientWidth'#2'`'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#5'tpTop'#6#8
|
||||
+'q'#11'ClientWidth'#2'd'#9'ItemIndex'#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'Ta'
|
||||
+'bOrder'#2#1#0#0#9'TCheckBox'#9'CheckBox1'#4'Left'#2#16#6'Height'#2#16#3'Top'
|
||||
+#2'p'#5'Width'#2'd'#8'AutoSize'#8#7'Caption'#6#9'Long Tabs'#7'OnClick'#7#14
|
||||
@ -205,11 +205,11 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
||||
+'clSilver'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#9'ShowGl'
|
||||
+'yph'#8#20'GlyphBackgroundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#19
|
||||
+'OwnerBackgroundDraw'#8#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderS'
|
||||
+'pacing'#2#15#0#0#9'TSpinEdit'#9'SpinEdit2'#4'Left'#2#16#6'Height'#2#25#3'To'
|
||||
+'pacing'#2#15#0#0#9'TSpinEdit'#9'SpinEdit2'#4'Left'#2#16#6'Height'#2#23#3'To'
|
||||
+'p'#3#176#0#5'Width'#2'd'#13'OnEditingDone'#7#20'SpinEdit2EditingDone'#8'Tab'
|
||||
+'Order'#2#5#0#0#5'TEdit'#5'Edit1'#4'Left'#2#16#6'Height'#2#25#3'Top'#3#136#0
|
||||
+'Order'#2#5#0#0#5'TEdit'#5'Edit1'#4'Left'#2#16#6'Height'#2#23#3'Top'#3#136#0
|
||||
+#5'Width'#2'H'#8'TabOrder'#2#6#4'Text'#6#5'Edit1'#0#0#11'TGradButton'#11'Gra'
|
||||
+'dButton1'#4'Left'#2'Z'#6'Height'#2#19#3'Top'#3#136#0#5'Width'#2#26#7'Captio'
|
||||
+'dButton1'#4'Left'#2'Z'#6'Height'#2#22#3'Top'#3#136#0#5'Width'#2#26#7'Captio'
|
||||
+'n'#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'Ove'
|
||||
+'rBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7
|
||||
@ -234,22 +234,30 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
||||
+#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScale'
|
||||
+'Childs'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.'
|
||||
+'Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'
|
||||
+#2#1#12'ClientHeight'#2'W'#11'ClientWidth'#2'`'#9'ItemIndex'#2#0#13'Items.St'
|
||||
+#2#1#12'ClientHeight'#2'i'#11'ClientWidth'#2'd'#9'ItemIndex'#2#0#13'Items.St'
|
||||
+'rings'#1#6#11'blGlyphLeft'#6#13'blGlyphBottom'#6#12'blGlyphRight'#6#10'blGl'
|
||||
+'yphTop'#0#7'OnClick'#7#16'RadioGroup2Click'#8'TabOrder'#2#9#0#0#0#10'TPopup'
|
||||
+'Menu'#10'PopupMenu1'#4'left'#3#222#2#3'top'#3#141#1#0#9'TMenuItem'#9'MenuIt'
|
||||
+'em1'#3'Tag'#4#152''#18#0#7'Caption'#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'kRJ|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
|
||||
+'yphTop'#0#7'OnClick'#7#16'RadioGroup2Click'#8'TabOrder'#2#9#0#0#6'TLabel'#6
|
||||
+'Label2'#4'Left'#2#18#6'Height'#2#16#3'Top'#3#208#0#5'Width'#2#26#7'Caption'
|
||||
+#6#5'Style'#11'ParentColor'#8#0#0#9'TComboBox'#9'ComboBox2'#4'Left'#2#16#6'H'
|
||||
+'eight'#2#23#3'Top'#3#225#0#5'Width'#2'd'#12'AutoDropDown'#9#10'ItemHeight'#2
|
||||
+#15#9'ItemIndex'#2#0#13'Items.Strings'#1#6#8'Standard'#6#5'Vista'#6#9'VistaB'
|
||||
+'lue'#0#8'OnChange'#7#15'ComboBox2Change'#5'Style'#7#14'csDropDownList'#8'Ta'
|
||||
+'bOrder'#2#10#4'Text'#6#8'Standard'#0#0#9'TCheckBox'#9'CheckBox2'#4'Left'#2
|
||||
+#16#6'Height'#2#19#3'Top'#3#0#1#5'Width'#2'p'#7'Caption'#6#15'Rounded Corner'
|
||||
+'s'#8'OnChange'#7#15'CheckBox2Change'#8'TabOrder'#2#11#0#0#0#10'TPopupMenu'
|
||||
+#10'PopupMenu1'#4'left'#3#222#2#3'top'#3#141#1#0#9'TMenuItem'#9'MenuItem1'#3
|
||||
+'Tag'#4#152#127#18#0#7'Caption'#6#9'New Item1'#0#0#0#10'TImageList'#10'Image'
|
||||
+'List1'#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'kRJ|pLE'#137'\9-l'#127#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
|
||||
@ -257,7 +265,7 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
||||
+#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
|
||||
+#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
|
||||
|
@ -19,8 +19,10 @@ type
|
||||
|
||||
TForm1 = class(TForm)
|
||||
CheckBox1: TCheckBox;
|
||||
CheckBox2: TCheckBox;
|
||||
CheckGroup1: TCheckGroup;
|
||||
ComboBox1: TComboBox;
|
||||
ComboBox2: TComboBox;
|
||||
Edit1: TEdit;
|
||||
GradButton1: TGradButton;
|
||||
GradTabPage1: TGradTabPage;
|
||||
@ -28,6 +30,7 @@ type
|
||||
GradTabPage3: TGradTabPage;
|
||||
ImageList1: TImageList;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Memo1: TMemo;
|
||||
NewPageBtn: TGradButton;
|
||||
DeleteBtn: TGradButton;
|
||||
@ -41,9 +44,11 @@ type
|
||||
RadioGroup2: TRadioGroup;
|
||||
SpinEdit2: TSpinEdit;
|
||||
procedure CheckBox1Click(Sender: TObject);
|
||||
procedure CheckBox2Change(Sender: TObject);
|
||||
procedure CheckGroup1Click(Sender: TObject);
|
||||
procedure CheckGroup1ItemClick(Sender: TObject; Index: integer);
|
||||
procedure ComboBox1Change(Sender: TObject);
|
||||
procedure ComboBox2Change(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormDestroy(Sender: TObject);
|
||||
procedure DeleteBtnClick(Sender: TObject);
|
||||
@ -91,7 +96,8 @@ uses
|
||||
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
begin
|
||||
GradTabControl1.Style :=TGradTabVistaStyle.Create;
|
||||
GradTabControl1.Style :=TGradTabVistaBlueStyle.Create;
|
||||
GradTabControl1.Style.RoundedCorners:=false;
|
||||
GradTabControl1.Align:=alClient;
|
||||
GradTabControl1.TabPosition:=tpTop;
|
||||
SpinEdit2.Value:=GradTabControl1.TabHeight;
|
||||
@ -114,6 +120,12 @@ begin
|
||||
Edit1.Text:=IntToStr(GradTabControl1.LongWidth);
|
||||
end;
|
||||
|
||||
procedure TForm1.CheckBox2Change(Sender: TObject);
|
||||
begin
|
||||
GradTabControl1.Style.RoundedCorners:= CheckBox2.Checked;
|
||||
Invalidate;
|
||||
end;
|
||||
|
||||
procedure TForm1.CheckGroup1Click(Sender: TObject);
|
||||
begin
|
||||
|
||||
@ -139,6 +151,17 @@ begin
|
||||
GradTabControl1.PageIndex:=GradTabControl1.Tabs.IndexOf(ComboBox1.Text);
|
||||
end;
|
||||
|
||||
procedure TForm1.ComboBox2Change(Sender: TObject);
|
||||
begin
|
||||
case ComboBox2.ItemIndex of
|
||||
0: GradTabControl1.Style := TGradTabStandardStyle.Create;
|
||||
1: GradTabControl1.Style := TGradTabVistaStyle.Create;
|
||||
2: GradTabControl1.Style := TGradTabVistaBlueStyle.Create;
|
||||
end;
|
||||
|
||||
GradTabControl1.Style.RoundedCorners:= CheckBox2.Checked;
|
||||
end;
|
||||
|
||||
procedure TForm1.FormDestroy(Sender: TObject);
|
||||
begin
|
||||
GradTabControl1.Free;
|
||||
|
@ -30,11 +30,10 @@
|
||||
</RunParams>
|
||||
<RequiredPackages Count="3">
|
||||
<Item1>
|
||||
<PackageName Value="ImagesForLazarus"/>
|
||||
<PackageName Value="gradcontrols"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="gradbutton"/>
|
||||
<MinVersion Valid="True"/>
|
||||
<PackageName Value="ImagesForLazarus"/>
|
||||
</Item2>
|
||||
<Item3>
|
||||
<PackageName Value="LCL"/>
|
||||
@ -48,8 +47,8 @@
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="Forms\main.pas"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="main"/>
|
||||
</Unit1>
|
||||
@ -60,6 +59,7 @@
|
||||
<PathDelim Value="\"/>
|
||||
<SearchPaths>
|
||||
<OtherUnitFiles Value="Forms\"/>
|
||||
<UnitOutputDirectory Value="Output\"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
<SyntaxOptions>
|
||||
|
@ -8,7 +8,7 @@ uses
|
||||
{$ENDIF}{$ENDIF}
|
||||
Interfaces, // this includes the LCL widgetset
|
||||
Forms
|
||||
{ you can add units after this }, main;
|
||||
{ you can add units after this }, main, gradcontrols;
|
||||
|
||||
begin
|
||||
Application.Title:='TGradButton-Demo';
|
||||
|
@ -16,7 +16,7 @@
|
||||
<VersionInfo>
|
||||
<UseVersionInfo Value="True"/>
|
||||
<AutoIncrementBuild Value="True"/>
|
||||
<CurrentBuildNr Value="1166"/>
|
||||
<CurrentBuildNr Value="1190"/>
|
||||
<ProjectVersion Value="0.0.0.0"/>
|
||||
</VersionInfo>
|
||||
<PublishOptions>
|
||||
@ -31,9 +31,9 @@
|
||||
<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="gradtabcontrol_with_multilog"/>
|
||||
<PackageName Value="gradcontrols"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<PackageName Value="multiloglaz"/>
|
||||
@ -43,12 +43,8 @@
|
||||
<MinVersion Major="1" Valid="True"/>
|
||||
</Item3>
|
||||
<Item4>
|
||||
<PackageName Value="gradbutton"/>
|
||||
<MinVersion Major="1" Minor="2" Valid="True"/>
|
||||
</Item4>
|
||||
<Item5>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item5>
|
||||
</Item4>
|
||||
</RequiredPackages>
|
||||
<Units Count="3">
|
||||
<Unit0>
|
||||
@ -58,9 +54,9 @@
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="Forms\unit1.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<HasResources Value="True"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="Unit1"/>
|
||||
</Unit1>
|
||||
@ -75,6 +71,7 @@
|
||||
<PathDelim Value="\"/>
|
||||
<SearchPaths>
|
||||
<OtherUnitFiles Value="Forms\"/>
|
||||
<UnitOutputDirectory Value="Output"/>
|
||||
</SearchPaths>
|
||||
<Parsing>
|
||||
<SyntaxOptions>
|
||||
|
@ -8,7 +8,7 @@ uses
|
||||
{$ENDIF}{$ENDIF}
|
||||
Interfaces, // this includes the LCL widgetset
|
||||
Forms, multiloglaz
|
||||
{ you can add units after this }, unit1, gradtabcontrol_with_multilog;
|
||||
{ you can add units after this }, unit1, gradcontrols;
|
||||
|
||||
{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}
|
||||
|
||||
|
@ -2,6 +2,8 @@ unit gradtabstyle;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
{.$DEFINE DEBUGTAB}
|
||||
|
||||
{-------------------------------------
|
||||
Style-Class for TGradTabControl
|
||||
--------------------------------------}
|
||||
@ -9,7 +11,12 @@ Style-Class for TGradTabControl
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Controls, Graphics, Buttons, ExtCtrls, ugradbtn;
|
||||
Classes, SysUtils, Controls, Graphics, Buttons, ExtCtrls, ugradbtn
|
||||
{$IFDEF DEBUGTAB}
|
||||
, sharedloggerlcl
|
||||
{$ELSE}
|
||||
, DummyLogger
|
||||
{$ENDIF};
|
||||
|
||||
type
|
||||
TStylePaintEvent = procedure(Sender: TCustomControl; AIndex: Integer;
|
||||
@ -22,6 +29,7 @@ type
|
||||
|
||||
TGradTabStyleBase = class
|
||||
private
|
||||
FRoundedCorners: Boolean;
|
||||
function GetHasCloseButtonPaint: Boolean;
|
||||
function GetHasTabButtonPaint: Boolean;
|
||||
function GetHasLeftRightButtonPaint: Boolean;
|
||||
@ -47,6 +55,7 @@ type
|
||||
property HasLeftRightButtonPaint : Boolean read GetHasLeftRightButtonPaint;
|
||||
property HasBorderButtonPaint : Boolean read GetHasBorderButtonPaint;
|
||||
property HasCloseButtonPaint : Boolean read GetHasCloseButtonPaint;
|
||||
property RoundedCorners : Boolean read FRoundedCorners write FRoundedCorners;
|
||||
end;
|
||||
|
||||
{ TGradTabStandardStyle }
|
||||
@ -69,7 +78,7 @@ type
|
||||
end;
|
||||
|
||||
TGradTabVistaStyle = class(TGradTabStyleBase)
|
||||
private
|
||||
protected
|
||||
Normal : TButtonVistaStyle;
|
||||
Hover : TButtonVistaStyle;
|
||||
ActiveButton : TButtonVistaStyle;
|
||||
@ -90,11 +99,39 @@ type
|
||||
procedure PrepareButton(Button: TGradButton); override;
|
||||
end;
|
||||
|
||||
{ TGradTabVistaBlueStyle }
|
||||
|
||||
TGradTabVistaBlueStyle = class(TGradTabVistaStyle)
|
||||
public
|
||||
constructor Create; override;
|
||||
end;
|
||||
|
||||
procedure LoggerButtonVistaStyle(Self: TButtonVistaStyle; Name: String);
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
ugradtabcontrol, LCLProc;
|
||||
|
||||
procedure LoggerButtonVistaStyle(Self: TButtonVistaStyle; Name: String);
|
||||
procedure C(aName: String; aColor: TColor);
|
||||
begin
|
||||
Logger.Send(aName, ColorToString(aColor));
|
||||
end;
|
||||
|
||||
begin
|
||||
Logger.EnterMethod('Style: '+ Name);
|
||||
|
||||
C('BorderColor', Self.BorderColor);
|
||||
C('InnerBorderColor', Self.InnerBorderColor);
|
||||
C('TopStartColor', Self.TopStartColor);
|
||||
C('TopStopColor', Self.TopStopColor);
|
||||
C('BottomStartColor', Self.BottomStartColor);
|
||||
C('BottomStopColor', Self.BottomStopColor);
|
||||
|
||||
Logger.ExitMethod('Style');
|
||||
end;
|
||||
|
||||
{ TGradTabStyleBase }
|
||||
|
||||
function TGradTabStyleBase.GetHasCloseButtonPaint: Boolean;
|
||||
@ -120,6 +157,8 @@ end;
|
||||
constructor TGradTabStyleBase.Create;
|
||||
begin
|
||||
FOptions:= [];
|
||||
|
||||
FRoundedCorners := true;
|
||||
end;
|
||||
|
||||
procedure TGradTabStyleBase.PrepareButton(Button: TGradButton);
|
||||
@ -250,7 +289,18 @@ end;
|
||||
procedure TGradTabVistaStyle.TabCloseButton(Sender: TCustomControl;
|
||||
AIndex: Integer; Button: TGradButton; TargetCanvas: TCanvas; R: TRect;
|
||||
BState: TButtonState);
|
||||
var
|
||||
FGradTabControl : TGradTabControl;
|
||||
begin
|
||||
FGradTabControl := nil;
|
||||
|
||||
if Sender <> nil then
|
||||
FGradTabControl := Sender as TGradTabControl;
|
||||
|
||||
if (FGradTabControl <> nil)
|
||||
and (AIndex <> FGradTabControl.PageIndex) then
|
||||
BState := bsUp;
|
||||
|
||||
TabButton(Sender, AIndex, Button, TargetCanvas, R, BState);
|
||||
end;
|
||||
|
||||
@ -258,6 +308,7 @@ procedure TGradTabVistaStyle.TabButtonBorder(Sender: TCustomControl; AIndex: Int
|
||||
Button: TGradButton; TargetCanvas: TCanvas; R: TRect; BState : TButtonState);
|
||||
var
|
||||
ColorSet: TButtonVistaStyle;
|
||||
Temp : Integer;
|
||||
begin
|
||||
//DebugLn('Border R: ',DbgS(R));
|
||||
|
||||
@ -267,6 +318,25 @@ begin
|
||||
else ColorSet := Normal;
|
||||
end;
|
||||
|
||||
Temp := 0;
|
||||
|
||||
if not RoundedCorners then
|
||||
begin
|
||||
if R.Left > 0 then
|
||||
R.Left := R.Left -1;
|
||||
|
||||
if R.Right < Button.Width then
|
||||
R.Right := R.Right + 1;
|
||||
|
||||
if R.Top > 0 then
|
||||
R.Top := R.Top - 1;
|
||||
|
||||
if R.Bottom < Button.Height then
|
||||
R.Bottom := R.Bottom + 1;
|
||||
|
||||
Temp := 1;
|
||||
end;
|
||||
|
||||
with Button do
|
||||
begin
|
||||
//Top
|
||||
@ -307,19 +377,19 @@ begin
|
||||
|
||||
//TopLeft
|
||||
if (bsTopLine in BorderSides) AND (bsLeftLine in BorderSides) then
|
||||
TargetCanvas.Pixels[1,1]:=ColorSet.BorderColor;
|
||||
TargetCanvas.Pixels[1-Temp,1-Temp]:=ColorSet.BorderColor;
|
||||
|
||||
//TopRight
|
||||
if (bsTopLine in BorderSides) AND (bsRightLine in BorderSides) then
|
||||
TargetCanvas.Pixels[Width-2,1] := ColorSet.BorderColor;
|
||||
TargetCanvas.Pixels[Width-2+Temp,1-Temp] := ColorSet.BorderColor;
|
||||
|
||||
//BottomLeft
|
||||
if (bsBottomLine in BorderSides) AND (bsLeftLine in BorderSides) then
|
||||
TargetCanvas.Pixels[1, Height-2]:=ColorSet.BorderColor;
|
||||
TargetCanvas.Pixels[1-Temp, Height-2+Temp]:=ColorSet.BorderColor;
|
||||
|
||||
//BottomRight
|
||||
if (bsBottomLine in BorderSides) AND (bsRightLine in BorderSides) then
|
||||
TargetCanvas.Pixels[Width-2,Height-2]:=ColorSet.BorderColor;
|
||||
TargetCanvas.Pixels[Width-2+Temp,Height-2+Temp]:=ColorSet.BorderColor;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -327,7 +397,10 @@ procedure TGradTabVistaStyle.TabLeftRightButton(Sender: TGradButton;
|
||||
TargetCanvas: TCanvas; R: TRect; BState: TButtonState);
|
||||
begin
|
||||
if BState = bsDown then
|
||||
BState := bsHot;
|
||||
BState := bsHot;
|
||||
|
||||
if Sender.Font.Color = clWhite then
|
||||
Sender.Font.Color := clBlack;
|
||||
|
||||
TabButton(Sender.Owner as TCustomControl, 0, Sender, TargetCanvas, R, BState);
|
||||
end;
|
||||
@ -346,5 +419,44 @@ begin
|
||||
Button.Font.Color:=clBlack;
|
||||
end;
|
||||
|
||||
{ TGradTabVistaBlueStyle }
|
||||
|
||||
constructor TGradTabVistaBlueStyle.Create;
|
||||
begin
|
||||
inherited Create;
|
||||
|
||||
with Normal do
|
||||
begin
|
||||
BorderColor:=RGBToColor(145, 150, 162); //#9196A2
|
||||
InnerBorderColor:= RGBToColor(224, 255, 255);
|
||||
TopStartColor := RGBToColor(252, 253, 254);
|
||||
TopStopColor := RGBToColor(231, 235, 255);
|
||||
BottomStartColor := RGBToColor(207, 215, 235);
|
||||
BottomStopColor := RGBToColor(221, 227, 243);
|
||||
end;
|
||||
|
||||
with Hover do
|
||||
begin
|
||||
BorderColor:=RGBToColor(145, 150, 162); //#9196A2
|
||||
InnerBorderColor:= RGBToColor(224, 255, 255);
|
||||
TopStartColor := RGBToColor(232, 240, 251);
|
||||
TopStopColor := RGBToColor(184, 212, 244);
|
||||
BottomStartColor := RGBToColor(115, 176, 232);
|
||||
BottomStopColor := RGBToColor(173, 208, 241);
|
||||
end;
|
||||
|
||||
with ActiveButton do
|
||||
begin
|
||||
BorderColor:=RGBToColor(145, 150, 162); //#9196A2
|
||||
InnerBorderColor:= TColor($FFFFFF);
|
||||
TopStartColor := RGBToColor(255, 245, 224); //#FFF5E0
|
||||
TopStopColor := RGBToColor(255, 222, 147); //#FFDE93
|
||||
BottomStartColor := RGBToColor(255, 184, 17); //#FFB811
|
||||
BottomStopColor := RGBToColor(255, 213, 114);
|
||||
end;
|
||||
|
||||
LoggerButtonVistaStyle(ActiveButton, 'ActiveButton');
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
@ -1136,16 +1136,10 @@ end;
|
||||
procedure TGradButton.MouseDown(Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
if PtInRect(Rect(0,0,Width,Height),Point(X,Y)) then
|
||||
begin
|
||||
|
||||
|
||||
//WriteLn('X: ',X,' Y: ',Y);
|
||||
FState:=bsDown;
|
||||
//FFocused:=true;
|
||||
//LCLIntf.SetFocus(Handle);
|
||||
|
||||
InvPaint;
|
||||
end else begin
|
||||
FState:=bsUp;
|
||||
@ -1156,33 +1150,27 @@ begin
|
||||
|
||||
InvPaint;
|
||||
end;
|
||||
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TGradButton.MouseUp(Button: TMouseButton;
|
||||
Shift: TShiftState; X, Y: Integer);
|
||||
begin
|
||||
if PtInRect(Rect(0,0,Width,Height),Point(X,Y)) then
|
||||
begin
|
||||
|
||||
//WriteLn('MouseUp');
|
||||
|
||||
if PtInRect(Rect(0,0,Width,Height),Point(X,Y)) then
|
||||
begin
|
||||
FState:=bsHot;
|
||||
//FFocused:=true;
|
||||
InvPaint(true);
|
||||
|
||||
if Button = mbLeft then
|
||||
inherited Click; //Faster, than the Overrided Click procedure
|
||||
inherited Click; //Faster, than the Overrided Click procedure
|
||||
end else begin
|
||||
FState := bsUp;
|
||||
FFocused:=false;
|
||||
InvPaint(true);
|
||||
end;
|
||||
|
||||
{ if (Button = mbRight) AND Assigned(PopupMenu) then
|
||||
PopupMenu.PopUp(X,Y);
|
||||
}
|
||||
end else begin
|
||||
FState := bsUp;
|
||||
FFocused:=false;
|
||||
InvPaint(true);
|
||||
end;
|
||||
|
||||
inherited;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
//Thx to: http://www.delphipraxis.net/topic67805_farbverlauf+berechnen.html
|
||||
|
@ -3,22 +3,26 @@ unit ugradtabcontrol;
|
||||
{-------------------------------------------------------------------------------
|
||||
@name GradTabControl
|
||||
@author Eugen Bolz
|
||||
@lastchange 26.06.2009 (DD.MM.YYYY)
|
||||
@version 0.1
|
||||
@lastchange 13.12.2009 (DD.MM.YYYY)
|
||||
@version 0.2
|
||||
@comments TGradTabControl is based on TNotebook/TPageControl/TTabControl
|
||||
@license http://creativecommons.org/licenses/LGPL/2.1/
|
||||
------------------------------------------------------------------------------}
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
{.$DEFINE DEBUGTAB}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes,LResources, SysUtils, Menus, LCLType,
|
||||
LCLProc, LCLIntf,ExtCtrls, Graphics, ugradbtn, Controls, uRotateBitmap,
|
||||
Buttons, Forms, ImgList, gradtabstyle
|
||||
Classes, LResources, SysUtils, Menus, LCLType,
|
||||
LCLProc, LCLIntf, ExtCtrls, Graphics, ugradbtn, Controls,
|
||||
uRotateBitmap, Buttons, Forms, ImgList, gradtabstyle
|
||||
{$IFDEF DEBUGTAB}
|
||||
, sharedloggerlcl
|
||||
{$ELSE}
|
||||
, DummyLogger
|
||||
{$ENDIF};
|
||||
|
||||
type
|
||||
@ -194,6 +198,7 @@ type
|
||||
TGradTabPagesBar = class(TCustomControl)
|
||||
private
|
||||
FActiveTabColor: TColor;
|
||||
FNeedOrderButtons: Boolean;
|
||||
FNormalTabColor: TColor;
|
||||
FPageList : TListWithEvent;
|
||||
FTabControl : TGradTabControl;
|
||||
@ -225,6 +230,7 @@ type
|
||||
procedure MoveTo(Num: Integer);
|
||||
procedure MoveToNorm;
|
||||
property TabPosition : TTabPosition read FTabPosition write SetTabPosition;
|
||||
property NeedOrderButtons : Boolean read FNeedOrderButtons;
|
||||
published
|
||||
property OnStartDock;
|
||||
property OnStartDrag;
|
||||
@ -285,6 +291,7 @@ type
|
||||
FAutoShowScrollButton: Boolean;
|
||||
FCustomDraw: Boolean;
|
||||
FImages: TImageList;
|
||||
FIsUpdating: Boolean;
|
||||
FMoveIncrement: Integer;
|
||||
FLeftButton, FRightButton : TGradButton;
|
||||
FOnCustomDraw: TGradTabControlPaintEvent;
|
||||
@ -397,6 +404,8 @@ type
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
destructor Destroy; override;
|
||||
procedure BeginUpdate;
|
||||
procedure EndUpdate;
|
||||
function GetTabRect(AIndex : Integer) : TRect;
|
||||
function AddPage(AName: String) : Integer;
|
||||
function AddPage(APage: TGradTabPage) : Integer;
|
||||
@ -407,6 +416,7 @@ type
|
||||
procedure UpdateAllDesignerFlags;
|
||||
procedure UpdateDesignerFlags(APageIndex: integer);
|
||||
|
||||
property IsUpdating : Boolean read FIsUpdating;
|
||||
property Page[Index: Integer] : TGradTabPage read GetPage;
|
||||
property Bar : TGradTabBar read FBar;
|
||||
property PagesBar : TGradTabPagesBar read FPagesBar;
|
||||
@ -445,7 +455,6 @@ type
|
||||
property TabPosition : TTabPosition read FTabPosition write SetTabPosition default tpTop;
|
||||
property LongTabs : Boolean read FLongTabs write SetLongTabs;
|
||||
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 default true;
|
||||
property ShowLeftTopScrollButton : Boolean read FShowLeftTopScrollButton write SetShowLeftTopScrollButton;
|
||||
@ -467,7 +476,7 @@ type
|
||||
implementation
|
||||
|
||||
uses
|
||||
gradtabcontroleditor, ComponentEditors;
|
||||
gradtabcontroleditor, ComponentEditors;
|
||||
|
||||
{-------------------------------------------------------------------------------
|
||||
Register
|
||||
@ -495,9 +504,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
|
||||
@ -673,19 +682,21 @@ procedure TGradTabPageButton.RealSetText(const Value: TCaption);
|
||||
var
|
||||
NewCaption : TCaption;
|
||||
begin
|
||||
Logger.EnterMethod(Self, 'RealSetText');
|
||||
|
||||
NewCaption:=Value;
|
||||
|
||||
inherited RealSetText(NewCaption);
|
||||
|
||||
AlignCloseButton;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('TGradTabPageButton RealSetText ',BoolToStr(Assigned(Parent),true),
|
||||
BoolToStr((Parent is TGradTabPagesBar),true) );
|
||||
{$ENDIF}
|
||||
Logger.Send('Parent Assigned', Assigned(Parent));
|
||||
Logger.Send('Parent is TGradTabPagesBar', Parent is TGradTabPagesBar);
|
||||
|
||||
if Assigned(Parent) AND (Parent is TGradTabPagesBar) then
|
||||
(Parent as TGradTabPagesBar).OrderButtons;
|
||||
|
||||
Logger.ExitMethod(Self, 'RealSetText');
|
||||
end;
|
||||
|
||||
procedure TGradTabPageButton.SetAutoHeightBorderSpacing(const AValue: Integer);
|
||||
@ -729,13 +740,13 @@ begin
|
||||
begin
|
||||
case RotateDirection of
|
||||
rdNormal: begin
|
||||
TheRect.Right:=TheRect.Right-(FCloseButton.Glyph.Width);
|
||||
TheRect.Right :=TheRect.Right-(FCloseButton.Glyph.Width);
|
||||
end;
|
||||
rdLeft: begin
|
||||
TheRect.Top:= TheRect.Top+(FCloseButton.Glyph.Height);
|
||||
TheRect.Top := TheRect.Top+(FCloseButton.Glyph.Height);
|
||||
end;
|
||||
rdRight: begin
|
||||
TheRect.Bottom:= TheRect.Bottom-(FCloseButton.Glyph.Height);
|
||||
TheRect.Bottom := TheRect.Bottom-(FCloseButton.Glyph.Height);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -1237,6 +1248,8 @@ var
|
||||
begin
|
||||
LastLeft := 0;
|
||||
|
||||
Logger.EnterMethod(Self, 'InsertButton('+IntToStr(Index)+')');
|
||||
|
||||
if (Index >= 1) AND (FPageList.Count>=1) then
|
||||
LastLeft := TGradTabPage(FPageList.Items[Index-1]).TabButton.Left;
|
||||
|
||||
@ -1292,7 +1305,7 @@ begin
|
||||
|
||||
OrderButtons;}
|
||||
|
||||
{$IFDEF DEBUGTAB}WriteLn('TGradTabPagesBar.InsertButton');{$ENDIF}
|
||||
Logger.ExitMethod(Self, 'InsertButton('+IntToStr(Index)+')');
|
||||
end;
|
||||
|
||||
procedure TGradTabPagesBar.MoveTo(Num: Integer);
|
||||
@ -1357,13 +1370,21 @@ var
|
||||
B : TGradButton;
|
||||
begin
|
||||
if csDestroying in FTabControl.ComponentState then Exit;
|
||||
if FPageList.Count=0 then Exit;
|
||||
|
||||
{$IFDEF DEBUGTAB}DebugLn('OrderButton Start');{$ENDIF}
|
||||
if (FTabControl.IsUpdating) then
|
||||
begin
|
||||
FNeedOrderButtons := true;
|
||||
Exit;
|
||||
end;
|
||||
|
||||
FNeedOrderButtons := false;
|
||||
|
||||
Logger.EnterMethod(Self, 'OrderButtons');
|
||||
Logger.
|
||||
|
||||
FMovedTo:=0;
|
||||
|
||||
if FPageList.Count=0 then Exit;
|
||||
|
||||
for i := FShowFromButton-1 downto 0 do
|
||||
begin
|
||||
if i >= FPageList.Count then Continue;
|
||||
@ -1427,20 +1448,28 @@ begin
|
||||
|
||||
FActiveIndex:=FTabControl.PageIndex;
|
||||
|
||||
|
||||
Logger.EnterMethod(Self, 'GROUP: foreach FPageList[i]');
|
||||
for i := 0 to FPageList.Count - 1 do
|
||||
begin
|
||||
B := TGradTabPage(FPageList.Items[i]).TabButton;
|
||||
|
||||
Logger.EnterMethod(Self, 'GROUP: TabButton of Page');
|
||||
Logger.Send('Visible', B.Visible);
|
||||
|
||||
if B.Visible then
|
||||
begin
|
||||
B.RotateDirection := NewDirection;
|
||||
B.BorderSides := NewBorderSides;
|
||||
B.GradientType := NewGradientType;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('Begin I: %d W: %d H: %d L: %d T: %d, BW: %d, BH: %d',[i,B.Width,B.Height,B.Left,B.Top,BarWidth,BarHeight]);
|
||||
{$ENDIF}
|
||||
Logger.Send('Before');
|
||||
Logger.Send('i', i);
|
||||
Logger.Send('Width', B.Width);
|
||||
Logger.Send('Height', B.Height);
|
||||
Logger.Send('Left', B.Left);
|
||||
Logger.Send('Top', B.Top);
|
||||
Logger.Send('BarWidth', BarWidth);
|
||||
Logger.Send('BarHeight', BarHeight);
|
||||
|
||||
case FTabPosition of
|
||||
tpTop:
|
||||
@ -1521,30 +1550,46 @@ begin
|
||||
B.Width := FTabControl.GetTabBarSize(tpRight)-3;
|
||||
end;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('B.Width=%d TabBarSize(tpRight)=%d FActive=%d',[B.Width, FTabControl.GetTabBarSize(tpRight), FActiveIndex]);
|
||||
{$ENDIF}
|
||||
Logger.Send('Width', B.Width);
|
||||
Logger.Send('TabBarSize(tpRight)', FTabControl.GetTabBarSize(tpRight));
|
||||
Logger.Send('FActive', FActiveIndex);
|
||||
end;
|
||||
end;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('End I: %d W: %d H: %d L: %d T: %d, BW: %d, BH: %d',[i,B.Width,B.Height,B.Left,B.Top,BarWidth,BarHeight]);
|
||||
{$ENDIF}
|
||||
Logger.Send('After');
|
||||
Logger.Send('i', i);
|
||||
Logger.Send('Width', B.Width);
|
||||
Logger.Send('Height', B.Height);
|
||||
Logger.Send('Left', B.Left);
|
||||
Logger.Send('Top', B.Top);
|
||||
Logger.Send('BarWidth', BarWidth);
|
||||
Logger.Send('BarHeight', BarHeight);
|
||||
end;
|
||||
|
||||
if B.Parent <> Self then
|
||||
B.Parent := Self;
|
||||
|
||||
Logger.ExitMethod(Self, 'GROUP: TabButton of Page');
|
||||
end;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('BarWidth=%d LastLeft=%d FMovedTo=%d BarHeight=%d LastTop=%d',[BarWidth,
|
||||
LastLeft, FMovedTo, BarHeight, LastTop]);
|
||||
Logger.ExitMethod(Self, 'GROUP: foreach FPageList[i]');
|
||||
|
||||
DebugLn('BarWidth < LastLeft-FMovedTo = %s BarHeight < LastTop-FMovedTo=%s',[
|
||||
BoolStr(BarWidth < (LastLeft-FMovedTo)), BoolStr(BarHeight < (LastTop-FMovedTo))]);
|
||||
{$ENDIF}
|
||||
Logger.Send('BarWidth', BarWidth);
|
||||
Logger.Send('LastLeft', LastLeft);
|
||||
Logger.Send('FMovedTo', FMovedTo);
|
||||
Logger.Send('BarHeight', BarHeight);
|
||||
Logger.Send('LastTop', LastTop);
|
||||
|
||||
if not FTabControl.AutoShowScrollButtons then Exit;
|
||||
Logger.Send('BarWidth < (LastLeft-FMovedTo)', BarWidth < (LastLeft-FMovedTo));
|
||||
Logger.Send('BarHeight < (LastTop-FMovedTo)', BarHeight < (LastTop-FMovedTo));
|
||||
|
||||
Logger.Send('TabControl.AutoShowScrollButtons', FTabControl.AutoShowScrollButtons);
|
||||
|
||||
if not FTabControl.AutoShowScrollButtons then
|
||||
begin
|
||||
Logger.ExitMethod(Self, 'OrderButtons');
|
||||
Exit;
|
||||
end;
|
||||
|
||||
if ((BarWidth < (LastLeft-FMovedTo))
|
||||
OR (BarHeight < (LastTop-FMovedTo))
|
||||
@ -1558,11 +1603,10 @@ begin
|
||||
FTabControl.FRightButton.Visible:=false;
|
||||
end;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('FR=%s FL=%s',[BoolStr(FTabControl.FRightButton.Visible),BoolStr(FTabControl.FLeftButton.Visible)]);
|
||||
Logger.Send('FR', FTabControl.FRightButton.Visible);
|
||||
Logger.Send('FL', FTabControl.FLeftButton.Visible);
|
||||
|
||||
DebugLn('OrderButton End');
|
||||
{$ENDIF}
|
||||
Logger.ExitMethod(Self, 'OrderButtons');
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------------
|
||||
@ -1570,40 +1614,40 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TGradTabPagesBar.UnFocusButton(Index: Integer);
|
||||
begin
|
||||
if (Index < 0) or (Index >= FPageList.Count) then Exit;
|
||||
if (Index < 0) or (Index >= FPageList.Count) then Exit;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('TGradTabPagesBar.UnFocusButton Index: %d Assigned %s', [Index,BoolToStr(Assigned(TGradTabPage(FPageList.Items[Index]).TabButton),true)]);
|
||||
{$ENDIF}
|
||||
Logger.EnterMethod(Self, 'UnFocusButton('+IntToStr(Index)+')');
|
||||
|
||||
with TGradTabPage(FPageList.Items[Index]).TabButton do
|
||||
begin
|
||||
case FTabPosition of
|
||||
tpTop : begin
|
||||
Top:=3;
|
||||
Height:=Self.Height-3;
|
||||
end;
|
||||
tpBottom: begin
|
||||
Top:=0;
|
||||
Height:=Self.Height-3;
|
||||
end;
|
||||
tpRight: begin
|
||||
Left := 0;
|
||||
Width:= Self.Width-3;
|
||||
end;
|
||||
tpLeft: begin
|
||||
Left := 3;
|
||||
Width:=Self.Width-3;
|
||||
end;
|
||||
end;
|
||||
with TGradTabPage(FPageList.Items[Index]).TabButton do
|
||||
begin
|
||||
case FTabPosition of
|
||||
tpTop : begin
|
||||
Top:=3;
|
||||
Height:=Self.Height-3;
|
||||
end;
|
||||
tpBottom: begin
|
||||
Top:=0;
|
||||
Height:=Self.Height-3;
|
||||
end;
|
||||
tpRight: begin
|
||||
Left := 0;
|
||||
Width:= Self.Width-3;
|
||||
end;
|
||||
tpLeft: begin
|
||||
Left := 3;
|
||||
Width:=Self.Width-3;
|
||||
end;
|
||||
end;
|
||||
|
||||
if TGradTabPage(FPageList.Items[Index]).OwnerTabColor then
|
||||
Color := TGradTabPage(FPageList.Items[Index]).NormalTabColor
|
||||
else
|
||||
Color := NormalTabColor;
|
||||
if TGradTabPage(FPageList.Items[Index]).OwnerTabColor then
|
||||
Color := TGradTabPage(FPageList.Items[Index]).NormalTabColor
|
||||
else
|
||||
Color := NormalTabColor;
|
||||
|
||||
UpdatePositions;
|
||||
end;
|
||||
UpdatePositions;
|
||||
end;
|
||||
|
||||
Logger.ExitMethod(Self, 'UnFocusButton('+IntToStr(Index)+')');
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------------
|
||||
@ -1618,9 +1662,7 @@ begin
|
||||
if csDestroying in FTabControl.ComponentState then Exit;
|
||||
if (Index < 0) or (Index >= FPageList.Count) then Exit;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('TGradTabPagesBar.FocusButton Index: %d Assigned %s', [Index,BoolToStr(Assigned(TGradTabPage(FPageList.Items[Index]).TabButton),true)]);
|
||||
{$ENDIF}
|
||||
Logger.EnterMethod(Self, 'FocusButton('+IntToStr(Index)+')');
|
||||
|
||||
with TGradTabPage(FPageList.Items[Index]).TabButton do
|
||||
begin
|
||||
@ -1647,27 +1689,16 @@ begin
|
||||
else
|
||||
Color := ActiveTabColor;
|
||||
|
||||
UpdateButton;
|
||||
Invalidate;
|
||||
end;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('FR=%s FL=%s',[BoolStr(FTabControl.FRightButton.Visible),BoolStr(FTabControl.FLeftButton.Visible)]);
|
||||
{$ENDIF}
|
||||
|
||||
if not (FTabControl.FRightButton.Visible AND FTabControl.FLeftButton.Visible) then Exit;
|
||||
C := 0;
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('Left=%d Width=%d Width=%d',[TGradTabPage(FPageList.Items[Index]).TabButton.Left,
|
||||
TGradTabPage(FPageList.Items[Index]).TabButton.Width, Width]);
|
||||
|
||||
DebugLn('FocusButton Before ScrollToTab');
|
||||
{$ENDIF}
|
||||
|
||||
ScrollToTab(Index);
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('FocusButton After ScrollToTab');
|
||||
{$ENDIF}
|
||||
Logger.ExitMethod(Self, 'FocusButton('+IntToStr(Index)+')');
|
||||
end;
|
||||
|
||||
{-------------------------------------------------------------------------------
|
||||
@ -1808,6 +1839,9 @@ begin
|
||||
|
||||
if (FPageList.Count=0) OR (PIndex>=FPageList.Count) then Exit;
|
||||
if IsVisible(PIndex) then Exit;
|
||||
|
||||
Logger.EnterMethod(Self, 'ScrollToTab('+IntToStr(PIndex)+')');
|
||||
|
||||
CurTabs := GetViewedTabs;
|
||||
TabsLeft:= GetTabsOfSide(CurTabs[0],true);
|
||||
TabsRight:= GetTabsOfSide(CurTabs[High(CurTabs)],false);
|
||||
@ -1815,19 +1849,19 @@ begin
|
||||
IsInLeft:= ValueInArray(PIndex,TabsLeft);
|
||||
IsInRight:= ValueInArray(PIndex,TabsRight);
|
||||
|
||||
{$IFDEF DEBUGTAB}
|
||||
DebugLn('ScrollToTab TabInLeft=%s TabInRight=%s',[BoolStr(IsInLeft),BoolStr(IsInRight)]);
|
||||
{$ENDIF}
|
||||
|
||||
if IsInLeft then begin
|
||||
FShowFromButton := TabsLeft[0];
|
||||
OrderButtons;
|
||||
if IsVisible(PIndex) then Exit;
|
||||
if IsVisible(PIndex) then
|
||||
begin
|
||||
Logger.Send('Tab is Visible');
|
||||
Logger.ExitMethod(Self, 'ScrollToTab('+IntToStr(PIndex)+')');
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
{$IFDEF DEBUGTAB} DebugLn('ScrollToTab=%d',[PIndex]); {$ENDIF}
|
||||
repeat
|
||||
{$IFDEF DEBUGTAB} DebugLn('Run=%d',[C]); {$ENDIF}
|
||||
Logger.Watch('RepeatCount', C);
|
||||
|
||||
with TGradTabPage(FPageList.Items[PIndex]).TabButton do
|
||||
case FTabPosition of
|
||||
@ -1839,13 +1873,10 @@ begin
|
||||
|
||||
Inc(C);
|
||||
|
||||
//{$IFDEF DEBUGTAB} DebugLn('ValInAr=%s',[BoolStr(ValueInArray(PIndex,CurTabs))]); {$ENDIF}
|
||||
{$IFDEF DEBUGTAB} DebugLn('IsVisible(%d)=%s',[PIndex, BoolStr(IsVisible(PIndex))]); {$ENDIF}
|
||||
Logger.Watch('IsVisible', IsVisible(PIndex));
|
||||
until(IsVisible(PIndex));
|
||||
|
||||
until({ValueInArray(PIndex,CurTabs)} IsVisible(PIndex) {OR (C=10)});
|
||||
|
||||
//if DoNext then MoveToNext else MoveToPrior;
|
||||
{$IFDEF DEBUGTAB} DebugLn('ScrollToTab End'); {$ENDIF}
|
||||
Logger.ExitMethod(Self, 'ScrollToTab('+IntToStr(PIndex)+')');
|
||||
end;
|
||||
|
||||
procedure TGradTabPagesBar.UpdateAllButtons;
|
||||
@ -1887,6 +1918,7 @@ begin
|
||||
FCloseButton.OnHotBackgroundPaint := @FTabControl.StyleTabCloseButton;
|
||||
|
||||
FCloseButton.OwnerBackgroundDraw := true;
|
||||
FCloseButton.UpdateButton;
|
||||
end;
|
||||
end else begin
|
||||
OwnerBackgroundDraw:=false;
|
||||
@ -1961,10 +1993,13 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
function TGradTabPages.Get(Index: Integer): String;
|
||||
begin
|
||||
{$IFDEF DEBUGTAB}DebugLn('TGradTabPages.Get Index=',Index);{$ENDIF}
|
||||
//Logger.Send('TGradTabPages.Get', Index);
|
||||
|
||||
if (Index<0) or (Index>=fPageList.Count) then
|
||||
RaiseGDBException('TGradTabPages.Get Index out of bounds');
|
||||
|
||||
Result := TGradTabPage(fPageList[Index]).Caption;
|
||||
//Logger.Send('TGradTabPages.Get', Result);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
@ -2230,6 +2265,24 @@ begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TGradTabControl.BeginUpdate;
|
||||
begin
|
||||
Logger.EnterMethod(Self, 'BeginUpdate');
|
||||
FIsUpdating := True;
|
||||
end;
|
||||
|
||||
procedure TGradTabControl.EndUpdate;
|
||||
begin
|
||||
FIsUpdating:= False;
|
||||
|
||||
if FPagesBar.NeedOrderButtons then
|
||||
begin
|
||||
Logger.Send('OrderButtonsNeeded');
|
||||
FPagesBar.OrderButtons;
|
||||
end;
|
||||
Logger.ExitMethod(Self, 'EndUpdate');
|
||||
end;
|
||||
|
||||
function TGradTabControl.GetTabRect(AIndex: Integer): TRect;
|
||||
begin
|
||||
if (AIndex >= FPageList.Count) or (AIndex < 0) then Exit;
|
||||
@ -2482,8 +2535,10 @@ procedure TGradTabControl.PageButtonMouseClick(Sender: TObject);
|
||||
var
|
||||
AButton : TGradTabPageButton;
|
||||
begin
|
||||
BeginUpdate;
|
||||
AButton := TGradTabPageButton(Sender);
|
||||
PageIndex:=FPageList.IndexOf(AButton.Owner);
|
||||
EndUpdate;
|
||||
|
||||
if Assigned(FOnTabButtonClick) then
|
||||
FOnTabButtonClick(Self, FPageList.IndexOf(AButton.Owner));
|
||||
@ -2731,24 +2786,31 @@ end;
|
||||
TGradTabControl SetCurrentPageNum(Value: Integer)
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TGradTabControl.SetCurrentPageNum(Value: Integer);
|
||||
var
|
||||
Last : 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;
|
||||
FPagesBar.OrderButtons;
|
||||
|
||||
if FPageIndex <> -1 then UnShowPage(FPageIndex);
|
||||
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;
|
||||
|
||||
ShowPage(Value);
|
||||
Last := FPageIndex;
|
||||
|
||||
FPageIndex := Value;
|
||||
// Set PageIndex here, that Un/FocusButton called by Un/ShowPage can
|
||||
// read the current PageIndex to draw the right Style :)
|
||||
FPageIndex := Value;
|
||||
|
||||
UpdateAllDesignerFlags;
|
||||
FPagesBar.OrderButtons;
|
||||
if Last <> -1 then UnShowPage(Last);
|
||||
|
||||
if ([csDesigning, csLoading, csDestroying] * ComponentState = [])
|
||||
and Assigned(OnPageChanged) then
|
||||
OnPageChanged(Self);
|
||||
ShowPage(Value);
|
||||
|
||||
UpdateAllDesignerFlags;
|
||||
|
||||
if ([csDesigning, csLoading, csDestroying] * ComponentState = [])
|
||||
and Assigned(OnPageChanged) then
|
||||
OnPageChanged(Self);
|
||||
end;
|
||||
|
||||
procedure TGradTabControl.SetPagesBarDragOver(const AValue: TDragOverEvent);
|
||||
@ -2761,19 +2823,22 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TGradTabControl.ShowPage(Index: Integer);
|
||||
begin
|
||||
// Focus the TabButton
|
||||
FPagesBar.FocusButton(Index);
|
||||
Logger.EnterMethod(Self, 'ShowPage('+IntToStr(Index)+')');
|
||||
|
||||
// Enable Page
|
||||
with TGradTabPage(FPageList.Items[Index]) do
|
||||
begin
|
||||
Visible:=true;
|
||||
BringToFront;
|
||||
end;
|
||||
// Focus the TabButton
|
||||
FPagesBar.FocusButton(Index);
|
||||
|
||||
UpdateDesignerFlags(Index);
|
||||
// Enable Page
|
||||
with TGradTabPage(FPageList.Items[Index]) do
|
||||
begin
|
||||
Visible:=true;
|
||||
BringToFront;
|
||||
end;
|
||||
|
||||
AlignPage(TGradTabPage(FPageList.Items[Index]), GetClientRect);
|
||||
UpdateDesignerFlags(Index);
|
||||
|
||||
AlignPage(TGradTabPage(FPageList.Items[Index]), GetClientRect);
|
||||
Logger.ExitMethod(Self, 'ShowPage('+IntToStr(Index)+')');
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
@ -2781,17 +2846,21 @@ end;
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TGradTabControl.UnShowPage(Index: Integer);
|
||||
begin
|
||||
// Disable Page
|
||||
// Disable Page
|
||||
|
||||
if (Index<0) or (Index>=fPageList.Count) then Exit;
|
||||
if (Index<0) or (Index>=fPageList.Count) then Exit;
|
||||
|
||||
// Unfocus the TabButton
|
||||
FPagesBar.UnFocusButton(Index);
|
||||
Logger.EnterMethod(Self, 'UnShowPage('+IntToStr(Index)+')');
|
||||
|
||||
UpdateDesignerFlags(Index);
|
||||
// Unfocus the TabButton
|
||||
FPagesBar.UnFocusButton(Index);
|
||||
|
||||
with TGradTabPage(FPageList.Items[Index]) do
|
||||
Visible:=false;
|
||||
UpdateDesignerFlags(Index);
|
||||
|
||||
with TGradTabPage(FPageList.Items[Index]) do
|
||||
Visible:=false;
|
||||
|
||||
Logger.ExitMethod(Self, 'UnShowPage('+IntToStr(Index)+')');
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user