implemented TControl.BorderSpacing.CellAlignHorizontal/Vertical, replaced TRadioGroup recreatewnd calls with UpdateItems, changed TRadioGroup.AutoFill to true as default

git-svn-id: trunk@8633 -
This commit is contained in:
mattias 2006-01-27 15:21:08 +00:00
parent 752cb66d8c
commit 90de7d2a9a
7 changed files with 417 additions and 380 deletions

View File

@ -61,8 +61,8 @@ object EditorOptionsForm: TEditorOptionsForm
AutoFill = True
BorderSpacing.Around = 6
Caption = 'EditorOptionsGroupBox'
ChildSizing.EnlargeHorizontal = crsHomogenousSpaceResize
ChildSizing.EnlargeVertical = crsHomogenousSpaceResize
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclTopToBottomThenLeftToRight
@ -392,6 +392,8 @@ object EditorOptionsForm: TEditorOptionsForm
ParentColor = False
TabOrder = 2
Width = 461
BookMarkOptions.OnChange = nil
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Keystrokes = <
item
@ -718,6 +720,7 @@ object EditorOptionsForm: TEditorOptionsForm
'DisplayPreview'
)
ReadOnly = True
SelectedColor.OnChange = nil
OnSpecialLineColors = OnSpecialLineColors
Cursor = crIBeam
Left = 6
@ -890,6 +893,8 @@ object EditorOptionsForm: TEditorOptionsForm
TabOrder = 3
Width = 465
OnMouseDown = ColorPreviewMouseUp
BookMarkOptions.OnChange = nil
Gutter.OnChange = nil
Gutter.CodeFoldingWidth = 14
Keystrokes = <
item
@ -1216,6 +1221,7 @@ object EditorOptionsForm: TEditorOptionsForm
'ColorPreview'
)
ReadOnly = True
SelectedColor.OnChange = nil
OnSpecialLineColors = OnSpecialLineColors
Cursor = crIBeam
Left = 4

View File

@ -21,8 +21,8 @@ LazarusResources.Add('TEditorOptionsForm','FORMDATA',[
+#0#11'TCheckGroup'#21'EditorOptionsGroupBox'#5'Align'#7#5'alTop'#7'Anchors'
+#11#5'akTop'#6'akLeft'#8'akBottom'#0#8'AutoFill'#9#20'BorderSpacing.Around'#2
+#6#7'Caption'#6#21'EditorOptionsGroupBox'#29'ChildSizing.EnlargeHorizontal'#7
+#24'crsHomogenousSpaceResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomoge'
+'nousSpaceResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'C'
+#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomoge'
+'nousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'C'
+'hildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29
+'cclTopToBottomThenLeftToRight'#27'ChildSizing.ControlsPerLine'#2#1#12'Colum'
+'nLayout'#7#24'clVerticalThenHorizontal'#7'Columns'#2#2#11'OnItemClick'#7#22
@ -115,214 +115,216 @@ LazarusResources.Add('TEditorOptionsForm','FORMDATA',[
+#0#8'TSynEdit'#14'DisplayPreview'#5'Align'#7#8'alBottom'#20'BorderSpacing.Ar'
+'ound'#2#6#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Font'
+'.Height'#2#240#9'Font.Name'#6#7'courier'#6'Height'#3#173#0#4'Name'#6#14'Dis'
+'playPreview'#11'ParentColor'#8#8'TabOrder'#2#2#5'Width'#3#205#1#23'Gutter.C'
+'odeFoldingWidth'#2#14#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0
+#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'
+#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0
+#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0
+#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1
+#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7
+'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7
+'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7
+'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7
+'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'C'
+'ommand'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7
+'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'C'
+'ommand'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7
,'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'C'
+'ommand'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7
+'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1
+#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '
+#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3
+'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'C'
+'ommand'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0
+#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3
+'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'Short'
+'Cut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8
+'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['
+#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'
+#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Com'
+'mand'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7
+'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0
+#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4'
+'@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'
+#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'Short'
+'Cut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8
+'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'
+#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3
+'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Comman'
+'d'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'C'
+'ommand'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1
+#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C'
+'`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCu'
+'t'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'Sh'
+'ortCut'#3'B`'#0#0#13'Lines.Strings'#1#6#14'DisplayPreview'#0#8'ReadOnly'#9
+#19'OnSpecialLineColors'#7#19'OnSpecialLineColors'#6'Cursor'#7#7'crIBeam'#4
+'Left'#2#6#6'Height'#3#173#0#3'Top'#3#26#1#5'Width'#3#205#1#0#0#0#5'TPage'#14
+'KeymappingPage'#7'Caption'#6#14'KeymappingPage'#11'ClientWidth'#3#217#1#12
+'ClientHeight'#3#205#1#4'Left'#2#2#6'Height'#3#205#1#3'Top'#2#28#5'Width'#3
+#217#1#0#6'TLabel'#19'KeyMappingHelpLabel'#5'Align'#7#5'alTop'#18'BorderSpac'
+'ing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#7'Capti'
+'on'#6#19'KeyMappingHelpLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'
+#2#6#6'Height'#2#13#3'Top'#2'D'#5'Width'#3#205#1#0#0#7'TButton'#28'KeyMappin'
+'gChooseSchemeButton'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'Bord'
+'erSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#25'BorderSpacing.InnerBorder'
+#2#2#7'Caption'#6#28'KeyMappingChooseSchemeButton'#7'OnClick'#7'!KeyMappingC'
+'hooseSchemeButtonClick'#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#2#25#3'Top'#2
+#6#5'Width'#3#205#1#0#0#7'TButton KeyMappingConsistencyCheckButton'#5'Align'
+#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSp'
+'acing.Right'#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6' KeyMapping'
+'ConsistencyCheckButton'#7'OnClick'#7'%KeyMappingConsistencyCheckButtonClick'
+#8'TabOrder'#2#1#4'Left'#2#6#6'Height'#2#25#3'Top'#2'%'#5'Width'#3#205#1#0#0
+#9'TTreeView'#18'KeyMappingTreeView'#5'Align'#7#8'alClient'#20'BorderSpacing'
+'.Around'#2#6#17'DefaultItemHeight'#2#23#6'Images'#7#9'ImageList'#8'ReadOnly'
+#9#9'RowSelect'#9#8'TabOrder'#2#2#9'OnMouseUp'#7#25'KeyMappingTreeViewMouseU'
+'p'#7'Options'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21'tvoKeepColla'
+'psedNodes'#11'tvoReadOnly'#12'tvoRowSelect'#14'tvoShowButtons'#12'tvoShowLi'
+'nes'#11'tvoShowRoot'#17'tvoShowSeparators'#11'tvoToolTips'#0#4'Left'#2#6#6
+'Height'#3'p'#1#3'Top'#2'W'#5'Width'#3#205#1#0#0#0#5'TPage'#9'ColorPage'#7'C'
+'aption'#6#9'ColorPage'#11'ClientWidth'#3#217#1#12'ClientHeight'#3#205#1#4'L'
+'eft'#2#2#6'Height'#3#205#1#3'Top'#2#28#5'Width'#3#217#1#0#6'TLabel'#13'Lang'
+'uageLabel'#7'Caption'#6#13'LanguageLabel'#5'Color'#7#6'clNone'#11'ParentCol'
+'or'#8#4'Left'#3#214#0#6'Height'#2#13#3'Top'#2#12#5'Width'#2'X'#0#0#6'TLabel'
+#16'ColorSchemeLabel'#7'Caption'#6#16'ColorSchemeLabel'#5'Color'#7#6'clNone'
+#11'ParentColor'#8#4'Left'#3#214#0#6'Height'#2#13#3'Top'#2'$'#5'Width'#2'k'#0
+#0#6'TLabel'#19'FileExtensionsLabel'#7'Caption'#6#19'FileExtensionsLabel'#5
+'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#3#214#0#6'Height'#2#13#3'Top'#2
+'<'#5'Width'#2'q'#0#0#6'TLabel'#17'ColorElementLabel'#7'Caption'#6#17'ColorE'
+'lementLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#4#6'Height'#2
,#13#3'Top'#2'Z'#5'Width'#2'j'#0#0#9'TComboBox'#16'LanguageComboBox'#16'AutoC'
+'ompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#9'Max'
+'Length'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExit'#7#14'ComboBoxOnExi'
+'t'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#0#4'Text'#6#16'Langua'
+'geComboBox'#4'Left'#2#3#6'Height'#2#21#3'Top'#2#10#5'Width'#3#200#0#0#0#9'T'
+'ComboBox'#19'ColorSchemeComboBox'#16'AutoCompleteText'#11#22'cbactEndOfLine'
+'Complete'#20'cbactSearchAscending'#0#9'MaxLength'#2#0#8'OnChange'#7#16'Comb'
+'oBoxOnChange'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboBoxOnKe'
+'yDown'#8'TabOrder'#2#1#4'Text'#6#19'ColorSchemeComboBox'#4'Left'#2#3#6'Heig'
+'ht'#2#21#3'Top'#2'"'#5'Width'#3#200#0#0#0#9'TComboBox'#22'FileExtensionsCom'
+'boBox'#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAsc'
+'ending'#0#13'Items.Strings'#1#6#26'pp;pas;inc;lpr;lrs;dpr;dpk'#6#18'pp;pas;'
+'inc;lpr;lrs'#6#10'pp;pas;inc'#0#9'MaxLength'#2#0#8'OnChange'#7#16'ComboBoxO'
+'nChange'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'
+#8'TabOrder'#2#2#4'Left'#2#3#6'Height'#2#21#3'Top'#2':'#5'Width'#3#200#0#0#0
+#8'TSynEdit'#12'ColorPreview'#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'
+#2#4#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Font.Heigh'
+'t'#2#240#9'Font.Name'#6#7'courier'#6'Height'#2'b'#4'Name'#6#12'ColorPreview'
+#11'ParentColor'#8#8'TabOrder'#2#3#5'Width'#3#209#1#11'OnMouseDown'#7#19'Col'
+'orPreviewMouseUp'#23'Gutter.CodeFoldingWidth'#2#14#10'Keystrokes'#14#1#7'Co'
+'mmand'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Com'
+'mand'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'C'
+'ommand'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1
+#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7
+'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7
+'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7
+'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7
+'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#13'Lines.Strings'#1#6#12
+'ColorPreview'#0#8'ReadOnly'#9#19'OnSpecialLineColors'#7#19'OnSpecialLineCol'
+'ors'#6'Cursor'#7#7'crIBeam'#4'Left'#2#4#6'Height'#2'b'#3'Top'#3'g'#1#5'Widt'
,'h'#3#209#1#0#0#8'TListBox'#19'ColorElementListBox'#17'OnSelectionChange'#7
+'"ColorElementListBoxSelectionChange'#8'TabOrder'#2#4#8'TopIndex'#2#255#4'Le'
+'ft'#2#3#6'Height'#3#242#0#3'Top'#2'l'#5'Width'#3#200#0#0#0#7'TButton'#27'Se'
+'tAttributeToDefaultButton'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#25
+'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#27'SetAttributeToDefaultButton'
+#7'OnClick'#7' SetAttributeToDefaultButtonClick'#8'TabOrder'#2#5#4'Left'#3
+#212#0#6'Height'#2#25#3'Top'#2'Z'#5'Width'#3#255#0#0#0#7'TButton'#31'SetAllA'
+'ttributesToDefaultButton'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#25
+'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#31'SetAllAttributesToDefaultBut'
+'ton'#7'OnClick'#7'$SetAllAttributesToDefaultButtonClick'#8'TabOrder'#2#6#4
+'Left'#3#212#0#6'Height'#2#25#3'Top'#2'z'#5'Width'#3#255#0#0#0#9'TGroupBox'
+#22'TextAttributesGroupBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#7
+'Caption'#6#10'Attributes'#12'ClientHeight'#3#179#0#11'ClientWidth'#3#251#0#8
+'TabOrder'#2#7#4'Left'#3#212#0#6'Height'#3#196#0#3'Top'#3#154#0#5'Width'#3
+#255#0#0#6'TLabel'#15'ForeGroundLabel'#7'Caption'#6#15'ForeGroundLabel'#5'Co'
+'lor'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#8#6'Height'#2#13#5'Width'#2'c'
+#0#0#12'TColorButton'#21'ForegroundColorButton'#17'BorderSpacing.Top'#2#2#11
+'BorderWidth'#2#2#14'OnColorChanged'#7#23'ColorButtonColorChanged'#21'Anchor'
+'SideTop.Control'#7#15'ForeGroundLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'
+#4'Left'#2#8#6'Height'#2#21#3'Top'#2#15#5'Width'#2'K'#0#0#12'TColorButton'#21
+'BackGroundColorButton'#17'BorderSpacing.Top'#2#2#11'BorderWidth'#2#2#14'OnC'
+'olorChanged'#7#23'ColorButtonColorChanged'#21'AnchorSideTop.Control'#7#15'B'
+'ackGroundLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#8#6'Height'
+#2#21#3'Top'#2'8'#5'Width'#2'K'#0#0#6'TLabel'#15'BackGroundLabel'#17'BorderS'
+'pacing.Top'#2#28#7'Caption'#6#15'BackGroundLabel'#5'Color'#7#6'clNone'#11'P'
+'arentColor'#8#21'AnchorSideTop.Control'#7#15'ForeGroundLabel'#18'AnchorSide'
+'Top.Side'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2#13#3'Top'#2')'#5'Width'#2
+'e'#0#0#9'TCheckBox'#28'ForeGroundUseDefaultCheckBox'#7'Anchors'#11#5'akTop'
+#6'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#2#7'Caption'#6#28'ForeGround'
+'UseDefaultCheckBox'#7'OnClick'#7#22'GeneralCheckBoxOnClick'#8'TabOrder'#2#0
+#21'AnchorSideTop.Control'#7#15'ForeGroundLabel'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#4'Left'#2'^'#6'Height'#2#24#3'Top'#2#15#5'Width'#3#144#0#0#0#9'T'
+'CheckBox'#28'BackGroundUseDefaultCheckBox'#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#0#19'BorderSpacing.Right'#2#2#7'Caption'#6#28'BackGroundUseDefau'
+'ltCheckBox'#7'OnClick'#7#22'GeneralCheckBoxOnClick'#8'TabOrder'#2#1#21'Anch'
+'orSideTop.Control'#7#15'BackGroundLabel'#18'AnchorSideTop.Side'#7#9'asrBott'
+'om'#4'Left'#2'^'#6'Height'#2#24#3'Top'#2'6'#5'Width'#3#144#0#0#0#9'TCheckBo'
+'x'#16'TextBoldCheckBox'#5'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#6
+#7'Caption'#6#16'TextBoldCheckBox'#7'OnClick'#7#22'GeneralCheckBoxOnClick'#8
+'TabOrder'#2#2#4'Left'#2#6#6'Height'#2#24#3'Top'#2'Y'#5'Width'#3#239#0#0#0#9
+'TCheckBox'#18'TextItalicCheckBox'#5'Align'#7#8'alBottom'#20'BorderSpacing.A'
+'round'#2#6#7'Caption'#6#18'TextItalicCheckBox'#7'OnClick'#7#22'GeneralCheck'
+'BoxOnClick'#8'TabOrder'#2#3#4'Left'#2#6#6'Height'#2#24#3'Top'#2'w'#5'Width'
+#3#239#0#0#0#9'TCheckBox'#21'TextUnderlineCheckBox'#5'Align'#7#8'alBottom'#20
+'BorderSpacing.Around'#2#6#7'Caption'#6#21'TextUnderlineCheckBox'#7'OnClick'
+#7#22'GeneralCheckBoxOnClick'#8'TabOrder'#2#4#4'Left'#2#6#6'Height'#2#24#3'T'
+'op'#3#149#0#5'Width'#3#239#0#0#0#0#0#5'TPage'#13'CodetoolsPage'#7'Caption'#6
+#13'CodetoolsPage'#11'ClientWidth'#3#217#1#12'ClientHeight'#3#205#1#4'Left'#2
+#2#6'Height'#3#205#1#3'Top'#2#28#5'Width'#3#217#1#0#9'TGroupBox'#25'Automati'
+'cFeaturesGroupBox'#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#7'Ca'
+'ption'#6#25'AutomaticFeaturesGroupBox'#12'ClientHeight'#3#176#1#11'ClientWi'
+'dth'#3#201#1#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#3#193#1#3'Top'#2#6#5'Wid'
+'th'#3#205#1#0#6'TLabel'#14'AutoDelayLabel'#5'Align'#7#5'alTop'#17'BorderSpa'
+'cing.Top'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#14'AutoDelayLabel'
+#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#6#6'Height'#2#13#3'Top'#3
+#179#0#5'Width'#3#189#1#0#0#6'TLabel'#17'AutoDelayMinLabel'#7'Caption'#6#17
+'AutoDelayMinLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#21'AnchorSideTop.'
+'Control'#7#17'AutoDelayTrackBar'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Le'
+'ft'#2#6#6'Height'#2#13#3'Top'#3#149#0#5'Width'#2'p'#0#0#6'TLabel'#17'AutoDe'
+'layMaxLabel'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7'akR'
+'ight'#0#7'Caption'#6#17'AutoDelayMaxLabel'#5'Color'#7#6'clNone'#11'ParentCo'
+'lor'#8#21'AnchorSideTop.Control'#7#17'AutoDelayTrackBar'#18'AnchorSideTop.S'
+'ide'#7#9'asrBottom'#4'Left'#3'H'#1#6'Height'#2#13#3'Top'#3#149#0#5'Width'#2
+'s'#0#0#9'TCheckBox AutoIdentifierCompletionCheckBox'#5'Align'#7#5'alTop'#20
,'BorderSpacing.Around'#2#6#7'Caption'#6' AutoIdentifierCompletionCheckBox'#8
+'TabOrder'#2#0#4'Left'#2#6#6'Height'#2#24#3'Top'#2#6#5'Width'#3#189#1#0#0#9
+'playPreview'#11'ParentColor'#8#8'TabOrder'#2#2#5'Width'#3#205#1#24'BookMark'
+'Options.OnChange'#13#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'#2#14
+#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'S'
+'hortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8
+'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0
+#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8
+'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8
+'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8
+'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8
+'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8
+'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8
+'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'S'
+'hortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8
+'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'S'
,'hortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8
+'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'S'
+'hortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8
+'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201
+#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3
+#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman'
+'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7
+'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8
+#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1
+#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3
+#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
+'nd'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7
+'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X'
+'@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC'
+'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S'
+'hortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1
+#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3
+'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Comman'
+'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C'
+'ommand'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1
+#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'
+#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3
+'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu'
+'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh'
+'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1
+#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3
+#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
+'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7
+'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'
+#0#0#13'Lines.Strings'#1#6#14'DisplayPreview'#0#8'ReadOnly'#9#22'SelectedCol'
+'or.OnChange'#13#19'OnSpecialLineColors'#7#19'OnSpecialLineColors'#6'Cursor'
+#7#7'crIBeam'#4'Left'#2#6#6'Height'#3#173#0#3'Top'#3#26#1#5'Width'#3#205#1#0
+#0#0#5'TPage'#14'KeymappingPage'#7'Caption'#6#14'KeymappingPage'#11'ClientWi'
+'dth'#3#217#1#12'ClientHeight'#3#205#1#4'Left'#2#2#6'Height'#3#205#1#3'Top'#2
+#28#5'Width'#3#217#1#0#6'TLabel'#19'KeyMappingHelpLabel'#5'Align'#7#5'alTop'
+#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'
+#2#6#7'Caption'#6#19'KeyMappingHelpLabel'#5'Color'#7#6'clNone'#11'ParentColo'
+'r'#8#4'Left'#2#6#6'Height'#2#13#3'Top'#2'D'#5'Width'#3#205#1#0#0#7'TButton'
+#28'KeyMappingChooseSchemeButton'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'
+#2#6#17'BorderSpacing.Top'#2#6#19'BorderSpacing.Right'#2#6#25'BorderSpacing.'
+'InnerBorder'#2#2#7'Caption'#6#28'KeyMappingChooseSchemeButton'#7'OnClick'#7
+'!KeyMappingChooseSchemeButtonClick'#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#2
+#25#3'Top'#2#6#5'Width'#3#205#1#0#0#7'TButton KeyMappingConsistencyCheckButt'
+'on'#5'Align'#7#5'alTop'#18'BorderSpacing.Left'#2#6#17'BorderSpacing.Top'#2#6
+#19'BorderSpacing.Right'#2#6#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6
+' KeyMappingConsistencyCheckButton'#7'OnClick'#7'%KeyMappingConsistencyCheck'
+'ButtonClick'#8'TabOrder'#2#1#4'Left'#2#6#6'Height'#2#25#3'Top'#2'%'#5'Width'
+#3#205#1#0#0#9'TTreeView'#18'KeyMappingTreeView'#5'Align'#7#8'alClient'#20'B'
+'orderSpacing.Around'#2#6#17'DefaultItemHeight'#2#23#6'Images'#7#9'ImageList'
+#8'ReadOnly'#9#9'RowSelect'#9#8'TabOrder'#2#2#9'OnMouseUp'#7#25'KeyMappingTr'
+'eeViewMouseUp'#7'Options'#11#17'tvoAutoItemHeight'#16'tvoHideSelection'#21
+'tvoKeepCollapsedNodes'#11'tvoReadOnly'#12'tvoRowSelect'#14'tvoShowButtons'
+#12'tvoShowLines'#11'tvoShowRoot'#17'tvoShowSeparators'#11'tvoToolTips'#0#4
+'Left'#2#6#6'Height'#3'p'#1#3'Top'#2'W'#5'Width'#3#205#1#0#0#0#5'TPage'#9'Co'
+'lorPage'#7'Caption'#6#9'ColorPage'#11'ClientWidth'#3#217#1#12'ClientHeight'
+#3#205#1#4'Left'#2#2#6'Height'#3#205#1#3'Top'#2#28#5'Width'#3#217#1#0#6'TLab'
+'el'#13'LanguageLabel'#7'Caption'#6#13'LanguageLabel'#5'Color'#7#6'clNone'#11
+'ParentColor'#8#4'Left'#3#214#0#6'Height'#2#13#3'Top'#2#12#5'Width'#2'X'#0#0
+#6'TLabel'#16'ColorSchemeLabel'#7'Caption'#6#16'ColorSchemeLabel'#5'Color'#7
+#6'clNone'#11'ParentColor'#8#4'Left'#3#214#0#6'Height'#2#13#3'Top'#2'$'#5'Wi'
+'dth'#2'k'#0#0#6'TLabel'#19'FileExtensionsLabel'#7'Caption'#6#19'FileExtensi'
+'onsLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#3#214#0#6'Height'#2
+#13#3'Top'#2'<'#5'Width'#2'q'#0#0#6'TLabel'#17'ColorElementLabel'#7'Caption'
,#6#17'ColorElementLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#4#6
+'Height'#2#13#3'Top'#2'Z'#5'Width'#2'j'#0#0#9'TComboBox'#16'LanguageComboBox'
+#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'
+#0#9'MaxLength'#2#0#8'OnChange'#7#16'ComboBoxOnChange'#6'OnExit'#7#14'ComboB'
+'oxOnExit'#9'OnKeyDown'#7#17'ComboBoxOnKeyDown'#8'TabOrder'#2#0#4'Text'#6#16
+'LanguageComboBox'#4'Left'#2#3#6'Height'#2#21#3'Top'#2#10#5'Width'#3#200#0#0
+#0#9'TComboBox'#19'ColorSchemeComboBox'#16'AutoCompleteText'#11#22'cbactEndO'
+'fLineComplete'#20'cbactSearchAscending'#0#9'MaxLength'#2#0#8'OnChange'#7#16
+'ComboBoxOnChange'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboBox'
+'OnKeyDown'#8'TabOrder'#2#1#4'Text'#6#19'ColorSchemeComboBox'#4'Left'#2#3#6
+'Height'#2#21#3'Top'#2'"'#5'Width'#3#200#0#0#0#9'TComboBox'#22'FileExtension'
+'sComboBox'#16'AutoCompleteText'#11#22'cbactEndOfLineComplete'#20'cbactSearc'
+'hAscending'#0#13'Items.Strings'#1#6#26'pp;pas;inc;lpr;lrs;dpr;dpk'#6#18'pp;'
+'pas;inc;lpr;lrs'#6#10'pp;pas;inc'#0#9'MaxLength'#2#0#8'OnChange'#7#16'Combo'
+'BoxOnChange'#6'OnExit'#7#14'ComboBoxOnExit'#9'OnKeyDown'#7#17'ComboBoxOnKey'
+'Down'#8'TabOrder'#2#2#4'Left'#2#3#6'Height'#2#21#3'Top'#2':'#5'Width'#3#200
+#0#0#0#8'TSynEdit'#12'ColorPreview'#5'Align'#7#8'alBottom'#20'BorderSpacing.'
+'Around'#2#4#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#11'Fo'
+'nt.Height'#2#240#9'Font.Name'#6#7'courier'#6'Height'#2'b'#4'Name'#6#12'Colo'
+'rPreview'#11'ParentColor'#8#8'TabOrder'#2#3#5'Width'#3#209#1#11'OnMouseDown'
+#7#19'ColorPreviewMouseUp'#24'BookMarkOptions.OnChange'#13#15'Gutter.OnChang'
+'e'#13#23'Gutter.CodeFoldingWidth'#2#14#10'Keystrokes'#14#1#7'Command'#2#3#8
+'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0
+#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8
+'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1
+#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8
+'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8
+'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8
+'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10
+#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8
+'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8
+'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8
+'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
+'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
+'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
+'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
+'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#13'Lines.Strings'#1#6#12'ColorPrev'
,'iew'#0#8'ReadOnly'#9#22'SelectedColor.OnChange'#13#19'OnSpecialLineColors'#7
+#19'OnSpecialLineColors'#6'Cursor'#7#7'crIBeam'#4'Left'#2#4#6'Height'#2'b'#3
+'Top'#3'g'#1#5'Width'#3#209#1#0#0#8'TListBox'#19'ColorElementListBox'#17'OnS'
+'electionChange'#7'"ColorElementListBoxSelectionChange'#8'TabOrder'#2#4#8'To'
+'pIndex'#2#255#4'Left'#2#3#6'Height'#3#242#0#3'Top'#2'l'#5'Width'#3#200#0#0#0
+#7'TButton'#27'SetAttributeToDefaultButton'#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#27'SetAttribute'
+'ToDefaultButton'#7'OnClick'#7' SetAttributeToDefaultButtonClick'#8'TabOrder'
+#2#5#4'Left'#3#212#0#6'Height'#2#25#3'Top'#2'Z'#5'Width'#3#255#0#0#0#7'TButt'
+'on'#31'SetAllAttributesToDefaultButton'#7'Anchors'#11#5'akTop'#6'akLeft'#7
+'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#31'SetAllAttribut'
+'esToDefaultButton'#7'OnClick'#7'$SetAllAttributesToDefaultButtonClick'#8'Ta'
+'bOrder'#2#6#4'Left'#3#212#0#6'Height'#2#25#3'Top'#2'z'#5'Width'#3#255#0#0#0
+#9'TGroupBox'#22'TextAttributesGroupBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7
+'akRight'#0#7'Caption'#6#10'Attributes'#12'ClientHeight'#3#179#0#11'ClientWi'
+'dth'#3#251#0#8'TabOrder'#2#7#4'Left'#3#212#0#6'Height'#3#196#0#3'Top'#3#154
+#0#5'Width'#3#255#0#0#6'TLabel'#15'ForeGroundLabel'#7'Caption'#6#15'ForeGrou'
+'ndLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#8#6'Height'#2#13#5
+'Width'#2'c'#0#0#12'TColorButton'#21'ForegroundColorButton'#17'BorderSpacing'
+'.Top'#2#2#11'BorderWidth'#2#2#14'OnColorChanged'#7#23'ColorButtonColorChang'
+'ed'#21'AnchorSideTop.Control'#7#15'ForeGroundLabel'#18'AnchorSideTop.Side'#7
+#9'asrBottom'#4'Left'#2#8#6'Height'#2#21#3'Top'#2#15#5'Width'#2'K'#0#0#12'TC'
+'olorButton'#21'BackGroundColorButton'#17'BorderSpacing.Top'#2#2#11'BorderWi'
+'dth'#2#2#14'OnColorChanged'#7#23'ColorButtonColorChanged'#21'AnchorSideTop.'
+'Control'#7#15'BackGroundLabel'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'
+#2#8#6'Height'#2#21#3'Top'#2'8'#5'Width'#2'K'#0#0#6'TLabel'#15'BackGroundLab'
+'el'#17'BorderSpacing.Top'#2#28#7'Caption'#6#15'BackGroundLabel'#5'Color'#7#6
+'clNone'#11'ParentColor'#8#21'AnchorSideTop.Control'#7#15'ForeGroundLabel'#18
+'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#8#6'Height'#2#13#3'Top'#2')'#5
+'Width'#2'e'#0#0#9'TCheckBox'#28'ForeGroundUseDefaultCheckBox'#7'Anchors'#11
+#5'akTop'#6'akLeft'#7'akRight'#0#17'BorderSpacing.Top'#2#2#7'Caption'#6#28'F'
+'oreGroundUseDefaultCheckBox'#7'OnClick'#7#22'GeneralCheckBoxOnClick'#8'TabO'
+'rder'#2#0#21'AnchorSideTop.Control'#7#15'ForeGroundLabel'#18'AnchorSideTop.'
+'Side'#7#9'asrBottom'#4'Left'#2'^'#6'Height'#2#24#3'Top'#2#15#5'Width'#3#144
+#0#0#0#9'TCheckBox'#28'BackGroundUseDefaultCheckBox'#7'Anchors'#11#5'akTop'#6
+'akLeft'#7'akRight'#0#19'BorderSpacing.Right'#2#2#7'Caption'#6#28'BackGround'
+'UseDefaultCheckBox'#7'OnClick'#7#22'GeneralCheckBoxOnClick'#8'TabOrder'#2#1
+#21'AnchorSideTop.Control'#7#15'BackGroundLabel'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#4'Left'#2'^'#6'Height'#2#24#3'Top'#2'6'#5'Width'#3#144#0#0#0#9'T'
+'CheckBox'#16'TextBoldCheckBox'#5'Align'#7#8'alBottom'#20'BorderSpacing.Arou'
+'nd'#2#6#7'Caption'#6#16'TextBoldCheckBox'#7'OnClick'#7#22'GeneralCheckBoxOn'
+'Click'#8'TabOrder'#2#2#4'Left'#2#6#6'Height'#2#24#3'Top'#2'Y'#5'Width'#3#239
+#0#0#0#9'TCheckBox'#18'TextItalicCheckBox'#5'Align'#7#8'alBottom'#20'BorderS'
+'pacing.Around'#2#6#7'Caption'#6#18'TextItalicCheckBox'#7'OnClick'#7#22'Gene'
+'ralCheckBoxOnClick'#8'TabOrder'#2#3#4'Left'#2#6#6'Height'#2#24#3'Top'#2'w'#5
+'Width'#3#239#0#0#0#9'TCheckBox'#21'TextUnderlineCheckBox'#5'Align'#7#8'alBo'
+'ttom'#20'BorderSpacing.Around'#2#6#7'Caption'#6#21'TextUnderlineCheckBox'#7
+'OnClick'#7#22'GeneralCheckBoxOnClick'#8'TabOrder'#2#4#4'Left'#2#6#6'Height'
+#2#24#3'Top'#3#149#0#5'Width'#3#239#0#0#0#0#0#5'TPage'#13'CodetoolsPage'#7'C'
+'aption'#6#13'CodetoolsPage'#11'ClientWidth'#3#217#1#12'ClientHeight'#3#205#1
+#4'Left'#2#2#6'Height'#3#205#1#3'Top'#2#28#5'Width'#3#217#1#0#9'TGroupBox'#25
+'AutomaticFeaturesGroupBox'#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2
+#6#7'Caption'#6#25'AutomaticFeaturesGroupBox'#12'ClientHeight'#3#176#1#11'Cl'
+'ientWidth'#3#201#1#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#3#193#1#3'Top'#2#6
+#5'Width'#3#205#1#0#6'TLabel'#14'AutoDelayLabel'#5'Align'#7#5'alTop'#17'Bord'
+'erSpacing.Top'#2#24#20'BorderSpacing.Around'#2#6#7'Caption'#6#14'AutoDelayL'
+'abel'#5'Color'#7#6'clNone'#11'ParentColor'#8#4'Left'#2#6#6'Height'#2#13#3'T'
+'op'#3#179#0#5'Width'#3#189#1#0#0#6'TLabel'#17'AutoDelayMinLabel'#7'Caption'
+#6#17'AutoDelayMinLabel'#5'Color'#7#6'clNone'#11'ParentColor'#8#21'AnchorSid'
+'eTop.Control'#7#17'AutoDelayTrackBar'#18'AnchorSideTop.Side'#7#9'asrBottom'
+#4'Left'#2#6#6'Height'#2#13#3'Top'#3#149#0#5'Width'#2'p'#0#0#6'TLabel'#17'Au'
+'toDelayMaxLabel'#9'Alignment'#7#14'taRightJustify'#7'Anchors'#11#5'akTop'#7
+'akRight'#0#7'Caption'#6#17'AutoDelayMaxLabel'#5'Color'#7#6'clNone'#11'Paren'
+'tColor'#8#21'AnchorSideTop.Control'#7#17'AutoDelayTrackBar'#18'AnchorSideTo'
,'p.Side'#7#9'asrBottom'#4'Left'#3'H'#1#6'Height'#2#13#3'Top'#3#149#0#5'Width'
+#2's'#0#0#9'TCheckBox AutoIdentifierCompletionCheckBox'#5'Align'#7#5'alTop'
+#20'BorderSpacing.Around'#2#6#7'Caption'#6' AutoIdentifierCompletionCheckBox'
+#8'TabOrder'#2#0#4'Left'#2#6#6'Height'#2#24#3'Top'#2#6#5'Width'#3#189#1#0#0#9
+'TCheckBox'#26'AutoCodeParametersCheckBox'#5'Align'#7#5'alTop'#20'BorderSpac'
+'ing.Around'#2#6#7'Caption'#6#26'AutoCodeParametersCheckBox'#7'Enabled'#8#8
+'TabOrder'#2#1#4'Left'#2#6#6'Height'#2#24#3'Top'#2'B'#5'Width'#3#189#1#0#0#9
@ -383,9 +385,9 @@ LazarusResources.Add('TEditorOptionsForm','FORMDATA',[
+'"/.'#9'c #74786E",'#10'"(.'#9'c #60645B",'#10'"_.'#9'c #4E5349",'#10'":.'#9
+'c #42463D",'#10'"<.'#9'c #7A7D7A",'#10'"[.'#9'c #D3D6D2",'#10'"}.'#9'c #AEB'
+'2AB",'#10'"|.'#9'c #B3B8B0",'#10'"1.'#9'c #D0D3CE",'#10'"2.'#9'c #B8BCB8",'
+#10'"3.'#9'c #E1E5E1",'#10'"4.'#9'c #A0A49F",'#10'"5.'#9'c #4E514B",'#10'"6.'
,#10'"3.'#9'c #E1E5E1",'#10'"4.'#9'c #A0A49F",'#10'"5.'#9'c #4E514B",'#10'"6.'
+#9'c #4D5149",'#10'"7.'#9'c #E4E6E4",'#10'"8.'#9'c #E7E8E7",'#10'"9.'#9'c #E'
,'2E5E2",'#10'"0.'#9'c #DEE3DE",'#10'"a.'#9'c #DDE2DD",'#10'"b.'#9'c #A6ABA4"'
+'2E5E2",'#10'"0.'#9'c #DEE3DE",'#10'"a.'#9'c #DDE2DD",'#10'"b.'#9'c #A6ABA4"'
+','#10'"c.'#9'c #757A70",'#10'"d.'#9'c #64685E",'#10'"e.'#9'c #52574C",'#10
+'"f.'#9'c #4A4D45",'#10'"g.'#9'c #B3B7B3",'#10'"h.'#9'c #EFF2EF",'#10'"i.'#9
+'c #F1F2F1",'#10'"j.'#9'c #D4D7D4",'#10'"k.'#9'c #BBBEBB",'#10'"l.'#9'c #AEB'
@ -447,9 +449,9 @@ LazarusResources.Add('TEditorOptionsForm','FORMDATA',[
+'c #848484",'#10'"O '#9'c #606060",'#10'"P '#9'c #979797",'#10'"Q '#9'c #6E6'
+'E6E",'#10'"R '#9'c #969696",'#10'"S '#9'c #626262",'#10'"T '#9'c #D2D2D2",'
+#10'"U '#9'c #F8F8F8",'#10'"V '#9'c #7F7F7F",'#10'"W '#9'c #5D5D5D",'#10'"X '
+#9'c #9F9F9F",'#10'"Y '#9'c #555555",'#10'"Z '#9'c #7B7B7B",'#10'"` '#9'c #5'
,#9'c #9F9F9F",'#10'"Y '#9'c #555555",'#10'"Z '#9'c #7B7B7B",'#10'"` '#9'c #5'
+'C5C5C",'#10'" .'#9'c #7C7C7C",'#10'"..'#9'c #8E8E8E",'#10'"+.'#9'c #909090"'
,','#10'"@.'#9'c #FAFAFA",'#10'"#.'#9'c #B6B6B6",'#10'"$.'#9'c #787878",'#10
+','#10'"@.'#9'c #FAFAFA",'#10'"#.'#9'c #B6B6B6",'#10'"$.'#9'c #787878",'#10
+'"%.'#9'c #5A5A5A",'#10'"&.'#9'c #9C9C9C",'#10'"*.'#9'c #DFDFDF",'#10'"=.'#9
+'c #FBFBFB",'#10'"-.'#9'c #AEAEAE",'#10'";.'#9'c #737373",'#10'">.'#9'c #565'
+'656",'#10'",.'#9'c #9A9A9A",'#10'"''.'#9'c #D5D5D5",'#10'").'#9'c #BBBBBB",'

View File

@ -542,9 +542,20 @@ type
For example: A buttons widget returns 75x25 on GetPreferredSize.
CalculatePreferredSize adds 2 times the InnerBorder to the width and
height.
CellAlignHorizontal, CellAlignVertical: TControlCellAlign;
Used for example when the Parents.ChildSizing.Layout defines a table
layout.
}
TSpacingSize = 0..MaxInt;
TControlCellAlign = (
ccaFill,
ccaLeftTop,
ccaRightBottom,
ccaCenter
);
TControlCellAligns = set of TControlCellAlign;
{ TControlBorderSpacing }
@ -552,6 +563,8 @@ type
private
FAround: TSpacingSize;
FBottom: TSpacingSize;
FCellAlignHorizontal: TControlCellAlign;
FCellAlignVertical: TControlCellAlign;
FControl: TControl;
FInnerBorder: Integer;
FLeft: TSpacingSize;
@ -560,6 +573,8 @@ type
FTop: TSpacingSize;
procedure SetAround(const AValue: TSpacingSize);
procedure SetBottom(const AValue: TSpacingSize);
procedure SetCellAlignHorizontal(const AValue: TControlCellAlign);
procedure SetCellAlignVertical(const AValue: TControlCellAlign);
procedure SetInnerBorder(const AValue: Integer);
procedure SetLeft(const AValue: TSpacingSize);
procedure SetRight(const AValue: TSpacingSize);
@ -586,6 +601,8 @@ type
property Bottom: TSpacingSize read FBottom write SetBottom;
property Around: TSpacingSize read FAround write SetAround;
property InnerBorder: Integer read FInnerBorder write SetInnerBorder;
property CellAlignHorizontal: TControlCellAlign read FCellAlignHorizontal write SetCellAlignHorizontal;
property CellAlignVertical: TControlCellAlign read FCellAlignVertical write SetCellAlignVertical;
end;
@ -2504,6 +2521,22 @@ begin
Change;
end;
procedure TControlBorderSpacing.SetCellAlignHorizontal(
const AValue: TControlCellAlign);
begin
if FCellAlignHorizontal=AValue then exit;
FCellAlignHorizontal:=AValue;
Change;
end;
procedure TControlBorderSpacing.SetCellAlignVertical(
const AValue: TControlCellAlign);
begin
if FCellAlignVertical=AValue then exit;
FCellAlignVertical:=AValue;
Change;
end;
procedure TControlBorderSpacing.SetInnerBorder(const AValue: Integer);
begin
if FInnerBorder=AValue then exit;

View File

@ -630,32 +630,34 @@ type
FColumns: integer;
FCreatingWnd: boolean;
FHiddenButton: TRadioButton;
fIgnoreClicks: boolean;
FItemIndex: integer;
FItems: TStrings;
FLastClickedItemIndex: integer;
FOnClick: TNotifyEvent;
FReading: boolean;
fIgnoreClicks: boolean;
procedure ItemsChanged(Sender: TObject);
procedure Clicked(Sender: TObject);
FUpdatingItems: Boolean;
procedure Changed(Sender: TObject);
procedure Clicked(Sender: TObject);
procedure ItemEnter(Sender: TObject);
procedure UpdateTabStops;
procedure SetAutoFill(const AValue: Boolean);
procedure SetColumnLayout(const AValue: TColumnLayout);
procedure ItemExit(Sender: TObject);
procedure ItemKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure ItemResize(Sender: TObject);
procedure ItemsChanged(Sender: TObject);
procedure SetAutoFill(const AValue: Boolean);
procedure SetColumnLayout(const AValue: TColumnLayout);
procedure UpdateControlsPerLine;
procedure UpdateItems;
procedure UpdateTabStops;
protected
procedure Loaded; override;
procedure InitializeWnd; override;
procedure UpdateRadioButtonStates; virtual;
procedure ReadState(Reader: TReader); override;
procedure SetItem(Value: TStrings);
procedure SetItems(Value: TStrings);
procedure SetColumns(Value: integer);
procedure SetItemIndex(Value: integer);
function GetItemIndex: integer;
procedure Resize; override;
procedure CheckItemIndexChanged; virtual;
public
constructor Create(TheOwner: TComponent); override;
@ -665,7 +667,7 @@ type
public
property AutoFill: Boolean read FAutoFill write SetAutoFill;
property ItemIndex: integer read GetItemIndex write SetItemIndex default -1;
property Items: TStrings read FItems write SetItem;
property Items: TStrings read FItems write SetItems;
property Columns: integer read FColumns write SetColumns default 1;
property ColumnLayout: TColumnLayout read FColumnLayout write SetColumnLayout default clHorizontalThenVertical;
property OnClick: TNotifyEvent read FOnClick write FOnClick;
@ -726,6 +728,7 @@ type
FItems: TStrings;
FColumns: integer;
FOnItemClick: TCheckGroupClicked;
FUpdatingItems: Boolean;
function GetChecked(Index: integer): boolean;
function GetCheckEnabled(Index: integer): boolean;
procedure Clicked(Sender: TObject);

View File

@ -32,10 +32,13 @@ begin
FButtonList := TList.Create;
FColumnLayout := clHorizontalThenVertical;
FColumns := 1;
FAutoFill := true;
ChildSizing.Layout:=cclLeftToRightThenTopToBottom;
ChildSizing.ControlsPerLine:=FColumns;
ChildSizing.ShrinkHorizontal:=crsScaleChilds;
ChildSizing.ShrinkVertical:=crsScaleChilds;
ChildSizing.EnlargeHorizontal:=crsHomogenousChildResize;
ChildSizing.EnlargeVertical:=crsHomogenousChildResize;
SetInitialBounds(0,0,150,100);
end;
@ -50,8 +53,6 @@ procedure TCustomCheckGroup.ItemsChanged(Sender: TObject);
begin
UpdateItems;
UpdateControlsPerLine;
// TODO: Remove RecreateWnd
if HandleAllocated then RecreateWnd(Self);
OwnerFormDesignerModified(Self);
end;
@ -62,8 +63,8 @@ begin
DisableAlign;
try
if FAutoFill then begin
ChildSizing.EnlargeHorizontal:=crsHomogenousSpaceResize;
ChildSizing.EnlargeVertical:=crsHomogenousSpaceResize;
ChildSizing.EnlargeHorizontal:=crsHomogenousChildResize;
ChildSizing.EnlargeVertical:=crsHomogenousChildResize;
end else begin
ChildSizing.EnlargeHorizontal:=crsAnchorAligning;
ChildSizing.EnlargeVertical:=crsAnchorAligning;
@ -94,27 +95,35 @@ var
i : integer;
CheckBox: TCheckBox;
begin
// destroy checkboxes, if there are too many
while FButtonList.Count>FItems.Count do begin
TCheckBox(FButtonList[FButtonList.Count-1]).Free;
FButtonList.Delete(FButtonList.Count-1);
end;
// create as many TCheckBox as needed
while (FButtonList.Count<FItems.Count) do begin
CheckBox := TCheckBox.Create (self);
with CheckBox do begin
Name:='CheckBox'+IntToStr(FButtonList.Count);
AutoSize := False;
Parent := Self;
OnClick :=@Clicked;
include(ControlStyle, csNoDesignSelectable);
if FUpdatingItems then exit;
FUpdatingItems:=true;
try
// destroy checkboxes, if there are too many
while FButtonList.Count>FItems.Count do begin
TObject(FButtonList[FButtonList.Count-1]).Free;
FButtonList.Delete(FButtonList.Count-1);
end;
FButtonList.Add(CheckBox);
end;
for i:=0 to FItems.Count-1 do begin
CheckBox:=TCheckBox(FButtonList[i]);
CheckBox.Caption:=FItems[i];
// create as many TCheckBox as needed
while (FButtonList.Count<FItems.Count) do begin
CheckBox := TCheckBox.Create(Self);
with CheckBox do begin
Name:='CheckBox'+IntToStr(FButtonList.Count);
AutoSize := False;
BorderSpacing.CellAlignHorizontal:=ccaLeftTop;
BorderSpacing.CellAlignVertical:=ccaCenter;
Parent := Self;
OnClick :=@Self.Clicked;
Include(ControlStyle, csNoDesignSelectable);
end;
FButtonList.Add(CheckBox);
end;
for i:=0 to FItems.Count-1 do begin
CheckBox:=TCheckBox(FButtonList[i]);
CheckBox.Caption:=FItems[i];
end;
finally
FUpdatingItems:=false;
end;
end;
@ -181,8 +190,7 @@ begin
begin
FItems.Assign(Value);
UpdateItems;
// TODO: Remove RecreateWnd
if HandleAllocated then RecreateWnd(Self);
UpdateControlsPerLine;
end;
end;

View File

@ -19,35 +19,7 @@
Delphi compatibility:
- the interface is almost like in delphi 5
- with the GTK-bindings there must always one button active,
ItemIndex= -1 can't be handled
- FlipChildren procedure is missing
TODO:
- faster CreateWnd
Possible improvements:
- The current implementation often recreates the group even
if it might not be neccessary. This could be solved if with
an approach like Marc Weustink suggested:
"Why not on SetColumn/SetItems/FItems.Onchange create the necessary
checkboxes and align them. This way the RadioGroup is just a control
with other controls in it. It doesn't matter if the the gtk control is
created or not.
If not created and you already have added checkboxes, they will be
created when the groupbox is created and will be destroyed when the
groupbox is destroyed. This way you internally allways deal with
TCheckboxes and you dont have to mess with creating/destroying them.
Besides that, you dont have to recreate the control on every change."
On the other side this might have the following disadvantages:
- requires some work to find out which buttons to add/delete
- the TButtonList and the group property of affected buttons
have to be updated according to the new order of buttons
- works only if the interface library supports reordering of
radiobuttons
}
{------------------------------------------------------------------------------
@ -60,10 +32,10 @@
constructor TCustomRadioGroup.Create(TheOwner : TComponent);
begin
inherited Create (TheOwner);
FCreatingWnd := false;
ControlStyle := ControlStyle + [csCaptureMouse, csClickEvents, csSetCaption,
csDoubleClicks];
FItems := TStringList.Create;
FAutoFill := true;
//TStringList(FItems).OnChanging := @ItemsChanged;
TStringList(FItems).OnChange := @ItemsChanged;
FItemIndex := -1;
@ -75,6 +47,8 @@ begin
ChildSizing.ControlsPerLine:=FColumns;
ChildSizing.ShrinkHorizontal:=crsScaleChilds;
ChildSizing.ShrinkVertical:=crsScaleChilds;
ChildSizing.EnlargeHorizontal:=crsHomogenousChildResize;
ChildSizing.EnlargeVertical:=crsHomogenousChildResize;
SetInitialBounds(0,0,150,100);
TabStop := True;
end;
@ -103,9 +77,6 @@ end;
Create the visual component of the Radiogroup.
------------------------------------------------------------------------------}
procedure TCustomRadioGroup.InitializeWnd;
var
i : integer;
temp : TRadioButton;
begin
if FCreatingWnd then RaiseGDBException('TCustomRadioGroup.InitializeWnd');
FCreatingWnd := true;
@ -113,61 +84,6 @@ begin
inherited InitializeWnd;
// destroy radiobuttons, if there are too many
while FButtonList.Count>FItems.Count do begin
TRadioButton(FButtonList[FButtonList.Count-1]).Free;
FButtonList.Delete(FButtonList.Count-1);
end;
//DebugLn('[TCustomRadioGroup.InitializeWnd] B ',Name,':',ClassName,' FItems.Count=',FItems.Count,' HandleAllocated=',HandleAllocated);
// create as many TRadioButton as needed
while (FButtonList.Count<FItems.Count) do begin
Temp := TRadioButton.Create(Self);
Temp.Name:='RadioButton'+IntToStr(FButtonList.Count);
Temp.AutoSize := True;
Temp.OnClick := @Clicked;
Temp.OnChange := @Changed;
Temp.OnEnter :=@ItemEnter;
Temp.OnExit :=@ItemExit;
Temp.OnKeyDown :=@ItemKeyDown;
Temp.OnResize := @ItemResize;
include(temp.ControlStyle, csNoDesignSelectable);
FButtonList.Add(Temp);
end;
if FHiddenButton=nil then begin
FHiddenButton:=TRadioButton.Create(nil);
with FHiddenButton do begin
Name:='HiddenRadioButton';
Visible:=false;
include(ControlStyle, csNoDesignSelectable);
end;
end;
//DebugLn('[TCustomRadioGroup.InitializeWnd] C ',Name,':',ClassName,' FItems.Count=',FItems.Count,' HandleAllocated=',HandleAllocated);
if (FItemIndex>=FItems.Count) then FItemIndex:=FItems.Count-1;
if FItems.Count>0 then begin
for i:=0 to FItems.Count-1 do begin
Temp := TRadioButton(FButtonList[i]);
Temp.Caption := FItems[i];
Temp.Parent:=Self;
end;
with FHiddenButton do begin
FHiddenButton.Visible:=false;
Parent:=Self;
FHiddenButton.HandleNeeded;
end;
for i:=0 to FItems.Count-1 do begin
Temp := TRadioButton(FButtonList[i]);
Temp.Checked := (i = FItemIndex);
Temp.Visible := true;
end;
FHiddenButton.Checked:=(fItemIndex=-1);
UpdateTabStops;
end;
//DebugLn('[TCustomRadioGroup.InitializeWnd] F ',Name,':',ClassName,' FItems.Count=',FItems.Count,' HandleAllocated=',HandleAllocated,' ItemIndex=',ItemIndex);
FCreatingWnd := false;
end;
@ -194,6 +110,78 @@ begin
end;
procedure TCustomRadioGroup.UpdateItems;
var
i: integer;
ARadioButton: TRadioButton;
begin
if FUpdatingItems then exit;
FUpdatingItems:=true;
try
// destroy radiobuttons, if there are too many
while FButtonList.Count>FItems.Count do begin
TRadioButton(FButtonList[FButtonList.Count-1]).Free;
FButtonList.Delete(FButtonList.Count-1);
end;
// create as many TRadioButton as needed
while (FButtonList.Count<FItems.Count) do begin
ARadioButton := TRadioButton.Create(Self);
with ARadioButton do begin
Name:='RadioButton'+IntToStr(FButtonList.Count);
AutoSize := False;
OnClick := @Self.Clicked;
OnChange := @Self.Changed;
OnEnter :=@Self.ItemEnter;
OnExit :=@Self.ItemExit;
OnKeyDown :=@Self.ItemKeyDown;
OnResize := @Self.ItemResize;
BorderSpacing.CellAlignHorizontal:=ccaLeftTop;
BorderSpacing.CellAlignVertical:=ccaCenter;
Include(ControlStyle, csNoDesignSelectable);
end;
FButtonList.Add(ARadioButton);
end;
if FHiddenButton=nil then begin
FHiddenButton:=TRadioButton.Create(nil);
with FHiddenButton do begin
Name:='HiddenRadioButton';
Visible:=false;
Include(ControlStyle, csNoDesignSelectable);
end;
end;
if (FItemIndex>=FItems.Count) then FItemIndex:=FItems.Count-1;
if FItems.Count>0 then begin
// to reduce overhead do it in several steps
// assign Caption and then Parent
for i:=0 to FItems.Count-1 do begin
ARadioButton := TRadioButton(FButtonList[i]);
ARadioButton.Caption := FItems[i];
ARadioButton.Parent:=Self;
end;
with FHiddenButton do begin
FHiddenButton.Visible:=false;
Parent:=Self;
FHiddenButton.HandleNeeded;
end;
// the checked and unchecked states can be applied only after all other
for i:=0 to FItems.Count-1 do begin
ARadioButton := TRadioButton(FButtonList[i]);
ARadioButton.Checked := (i = FItemIndex);
ARadioButton.Visible := true;
end;
FHiddenButton.Checked:=(fItemIndex=-1);
UpdateTabStops;
end;
finally
FUpdatingItems:=false;
end;
end;
procedure TCustomRadioGroup.UpdateControlsPerLine;
var
NewControlsPerLine: LongInt;
@ -201,11 +189,17 @@ begin
if ChildSizing.Layout=cclLeftToRightThenTopToBottom then
NewControlsPerLine:=Max(1,FColumns)
else
NewControlsPerLine:=((FItems.Count-1) div Max(1,FColumns))+1;
NewControlsPerLine:=Max(1,Rows);
ChildSizing.ControlsPerLine:=NewControlsPerLine;
//DebugLn('TCustomRadioGroup.UpdateControlsPerLine ',dbgs(ChildSizing.ControlsPerLine),' ',dbgs(NewControlsPerLine),' FColumns=',dbgs(FColumns),' FItems.Count=',dbgs(FItems.Count),' ',dbgs(ChildSizing.Layout=cclLeftToRightThenTopToBottom));
end;
procedure TCustomRadioGroup.Loaded;
begin
inherited Loaded;
UpdateItems;
end;
procedure TCustomRadioGroup.ItemKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
@ -241,6 +235,7 @@ procedure TCustomRadioGroup.ItemKeyDown(Sender: TObject; var Key: Word;
TRadioButton(FButtonList[ItemIndex]).SetFocus;
Key := 0;
end;
begin
if Shift=[] then begin
case Key of
@ -260,10 +255,8 @@ end;
------------------------------------------------------------------------------}
procedure TCustomRadioGroup.ItemsChanged (Sender : TObject);
begin
// TODO: Remove RecreateWnd
UpdateItems;
UpdateControlsPerLine;
if HandleAllocated and (not (csLoading in ComponentState)) then
RecreateWnd(Self);
OwnerFormDesignerModified(Self);
end;
@ -287,21 +280,19 @@ begin
end;
{------------------------------------------------------------------------------
Method: TCustomRadioGroup.SetItem
Method: TCustomRadioGroup.SetItems
Params: value - Stringlist containing items to be displayed as radiobuttons
Returns: Nothing
Assign items from a stringlist.
------------------------------------------------------------------------------}
procedure TCustomRadioGroup.SetItem(Value: TStrings);
procedure TCustomRadioGroup.SetItems(Value: TStrings);
begin
if (Value <> FItems) then
begin
FItems.Assign(Value);
UpdateItems;
UpdateControlsPerLine;
// TODO: Remove RecreateWnd
if HandleAllocated and (not (csLoading in ComponentState)) then
RecreateWnd(Self);
end;
end;
@ -372,19 +363,9 @@ begin
Result := FItemIndex;
end;
{------------------------------------------------------------------------------
Method: TCustomRadioGroup.Resize
Reposition buttons on resize
------------------------------------------------------------------------------}
procedure TCustomRadioGroup.Resize;
begin
inherited Resize;
end;
procedure TCustomRadioGroup.CheckItemIndexChanged;
begin
if FCreatingWnd then exit;
if FCreatingWnd or FUpdatingItems then exit;
if [csLoading,csDestroying]*ComponentState<>[] then exit;
UpdateRadioButtonStates;
if [csDesigning]*ComponentState<>[] then exit;
@ -420,8 +401,6 @@ begin
inherited ReadState(Reader);
FReading := False;
if (fItemIndex<-1) or (fItemIndex>=FItems.Count) then fItemIndex:=-1;
// TODO: Remove RecreateWnd
if HandleAllocated then RecreateWnd(Self);
end;
{------------------------------------------------------------------------------
@ -468,8 +447,8 @@ begin
DisableAlign;
try
if FAutoFill then begin
ChildSizing.EnlargeHorizontal:=crsHomogenousSpaceResize;
ChildSizing.EnlargeVertical:=crsHomogenousSpaceResize;
ChildSizing.EnlargeHorizontal:=crsHomogenousChildResize;
ChildSizing.EnlargeVertical:=crsHomogenousChildResize;
end else begin
ChildSizing.EnlargeHorizontal:=crsAnchorAligning;
ChildSizing.EnlargeVertical:=crsAnchorAligning;

View File

@ -808,7 +808,7 @@ var
RowBox: TAutoSizeBox;
x: Integer;
ColBox: TAutoSizeBox;
CellBox: TAutoSizeBox;
ControlBox: TAutoSizeBox;
CurControl: TControl;
NewBounds: TRect;
CellBounds: TRect;
@ -821,9 +821,9 @@ begin
for y:=0 to ChildCount[asboVertical]-1 do begin
RowBox:=Childs[asboVertical][y];
for x:=0 to RowBox.ChildCount[asboHorizontal]-1 do begin
CellBox:=RowBox.Childs[asboHorizontal][x];
ColBox:=CellBox.Parent[asboVertical];
CurControl:=CellBox.Control;
ControlBox:=RowBox.Childs[asboHorizontal][x];
ColBox:=ControlBox.Parent[asboVertical];
CurControl:=ControlBox.Control;
if CurControl=nil then continue;
CellBounds:=Bounds(ColBox.LeftTop[asboHorizontal],
RowBox.LeftTop[asboVertical],
@ -831,14 +831,18 @@ begin
RowBox.PreferredSize[asboVertical]);
NewBounds.Left:=CellBounds.Left;
NewBounds.Top:=CellBounds.Top;
NewWidth:=CellBox.PreferredSize[asboHorizontal];
NewHeight:=CellBox.PreferredSize[asboVertical];
if (NewWidth<>ColBox.PreferredSize[asboHorizontal]) then begin
NewWidth:=ControlBox.PreferredSize[asboHorizontal];
NewHeight:=ControlBox.PreferredSize[asboVertical];
if (NewWidth<ColBox.PreferredSize[asboHorizontal]) then begin
// column is bigger than preferred width of the control
if ChildSizing.EnlargeHorizontal
in [crsScaleChilds,crsHomogenousChildResize]
then
NewWidth:=CellBounds.Right-CellBounds.Left;
//DebugLn('TAutoSizeBox.SetTableControlBounds ',DbgSName(CurControl),' ',dbgs(ord(CurControl.BorderSpacing.CellAlignHorizontal)));
case CurControl.BorderSpacing.CellAlignHorizontal of
ccaFill: NewWidth:=CellBounds.Right-CellBounds.Left;
ccaLeftTop: ;
ccaRightBottom: NewBounds.Left:=CellBounds.Right-NewWidth;
ccaCenter: NewBounds.Left:=NewBounds.Left
+(CellBounds.Right-CellBounds.Left-NewWidth) div 2;
end;
end else if (NewWidth>ColBox.PreferredSize[asboHorizontal]) then begin
// column is smaller than preferred width of the control
if ChildSizing.ShrinkHorizontal
@ -846,12 +850,15 @@ begin
then
NewWidth:=CellBounds.Right-CellBounds.Left;
end;
if (NewHeight<>ColBox.PreferredSize[asboVertical]) then begin
if (NewHeight<ColBox.PreferredSize[asboVertical]) then begin
// column is bigger than preferred height of the control
if ChildSizing.EnlargeVertical
in [crsScaleChilds,crsHomogenousChildResize]
then
NewHeight:=CellBounds.Bottom-CellBounds.Top;
case CurControl.BorderSpacing.CellAlignVertical of
ccaFill: NewHeight:=CellBounds.Bottom-CellBounds.Top;
ccaLeftTop: ;
ccaRightBottom: NewBounds.Top:=CellBounds.Bottom-NewHeight;
ccaCenter: NewBounds.Top:=NewBounds.Top
+(CellBounds.Bottom-CellBounds.Top-NewHeight) div 2;
end;
end else if (NewHeight>ColBox.PreferredSize[asboVertical]) then begin
// column is smaller than preferred height of the control
if ChildSizing.ShrinkVertical
@ -862,7 +869,6 @@ begin
NewBounds.Right:=NewBounds.Left+NewWidth;
NewBounds.Bottom:=NewBounds.Top+NewHeight;
// TODO: align
OldBounds:=CurControl.BoundsRect;
if not CompareRect(@NewBounds,@OldBounds) then begin
//DebugLn('TAutoSizeBox.SetTableControlBounds Control=',DbgSName(CurControl),' CellBounds=',dbgs(CellBounds),' NewBounds=',dbgs(NewBounds));
@ -4113,7 +4119,7 @@ begin
if (ChildSizing.Layout=cclNone) or (ListOfControls.Count=0) then
exit;
//debugln('TWinControl.AlignNonAlignedControls ',DbgSName(Self),' ListOfControls.Count=',dbgs(ListOfControls.Count));
//debugln('TWinControl.AlignNonAlignedControls ',DbgSName(Self),' ListOfControls.Count=',dbgs(ListOfControls.Count),' ',dbgs(ord(ChildSizing.EnlargeHorizontal)));
Box:=TAutoSizeBox.Create;
try