LCL: AutoSize and childs: using the same algorithm for moving as for resizing

git-svn-id: trunk@20320 -
This commit is contained in:
mattias 2009-05-31 06:49:50 +00:00
parent 1a2a7ade29
commit 141931d775
3 changed files with 220 additions and 192 deletions

View File

@ -1,18 +1,20 @@
inherited BackupOptionsFrame: TBackupOptionsFrame
Height = 324
Width = 562
ClientHeight = 324
ClientWidth = 562
ClientHeight = 320
ClientWidth = 558
TabOrder = 0
Visible = False
DesignLeft = 66
DesignTop = 87
DesignLeft = 346
DesignTop = 375
object BackupHelpLabel: TLabel[0]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
AnchorSideRight.Side = asrBottom
Height = 14
Width = 81
Left = 0
Height = 18
Top = 0
Width = 111
Caption = 'BackupHelpLabel'
ParentColor = False
end
@ -22,15 +24,16 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Height = 141
Top = 20
Width = 562
Left = 0
Height = 166
Top = 24
Width = 558
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
Caption = 'BackupProjectGroupBox'
ClientHeight = 123
ClientWidth = 558
ClientHeight = 147
ClientWidth = 554
TabOrder = 0
object BakProjAddExtLabel: TLabel
AnchorSideLeft.Control = BakProjAddExtComboBox
@ -40,9 +43,9 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideRight.Control = BackupProjectGroupBox
AnchorSideRight.Side = asrBottom
Left = 112
Height = 14
Top = 45
Width = 440
Height = 18
Top = 47
Width = 436
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'BakProjAddExtLabel'
@ -56,9 +59,9 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideRight.Control = BackupProjectGroupBox
AnchorSideRight.Side = asrBottom
Left = 112
Height = 14
Top = 72
Width = 440
Height = 18
Top = 82
Width = 436
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'BakProjMaxCounterLabel'
@ -72,9 +75,9 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideRight.Control = BackupProjectGroupBox
AnchorSideRight.Side = asrBottom
Left = 112
Height = 14
Top = 99
Width = 440
Height = 18
Top = 117
Width = 436
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'BakProjSubDirLabel'
@ -86,7 +89,7 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
Left = 6
Height = 30
Top = 6
Width = 546
Width = 542
Anchors = [akTop, akLeft, akRight]
AutoFill = True
AutoSize = True
@ -109,12 +112,12 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideTop.Control = BakProjTypeRadioGroup
AnchorSideTop.Side = asrBottom
Left = 6
Height = 21
Height = 29
Top = 42
Width = 100
AutoSelect = True
BorderSpacing.Around = 6
ItemHeight = 13
ItemHeight = 0
TabOrder = 1
Text = 'BakProjAddExtComboBox'
end
@ -122,12 +125,12 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideTop.Control = BakProjAddExtComboBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 21
Top = 69
Height = 29
Top = 77
Width = 100
AutoSelect = True
BorderSpacing.Around = 6
ItemHeight = 13
ItemHeight = 0
TabOrder = 2
Text = 'BakProjMaxCounterComboBox'
end
@ -135,12 +138,12 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideTop.Control = BakProjMaxCounterComboBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 21
Top = 96
Height = 29
Top = 112
Width = 100
AutoSelect = True
BorderSpacing.Around = 6
ItemHeight = 13
ItemHeight = 0
TabOrder = 3
Text = 'BakProjSubDirComboBox'
end
@ -151,15 +154,16 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Height = 141
Top = 167
Width = 562
Left = 0
Height = 166
Top = 196
Width = 558
Anchors = [akTop, akLeft, akRight]
AutoSize = True
BorderSpacing.Top = 6
Caption = 'BackupOtherGroupBox'
ClientHeight = 123
ClientWidth = 558
ClientHeight = 147
ClientWidth = 554
TabOrder = 1
object BakOtherAddExtLabel: TLabel
AnchorSideLeft.Control = BakOtherAddExtComboBox
@ -169,9 +173,9 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideRight.Control = BackupOtherGroupBox
AnchorSideRight.Side = asrBottom
Left = 112
Height = 14
Top = 45
Width = 440
Height = 18
Top = 47
Width = 436
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'BakOtherAddExtLabel'
@ -185,9 +189,9 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideRight.Control = BackupOtherGroupBox
AnchorSideRight.Side = asrBottom
Left = 112
Height = 14
Top = 72
Width = 440
Height = 18
Top = 82
Width = 436
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'BakOtherMaxCounterLabel'
@ -201,9 +205,9 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideRight.Control = BackupOtherGroupBox
AnchorSideRight.Side = asrBottom
Left = 112
Height = 14
Top = 99
Width = 440
Height = 18
Top = 117
Width = 436
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
Caption = 'BakOtherSubDirLabel'
@ -215,7 +219,7 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
Left = 6
Height = 30
Top = 6
Width = 546
Width = 542
Anchors = [akTop, akLeft, akRight]
AutoFill = True
AutoSize = True
@ -238,11 +242,11 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideTop.Control = BakOtherTypeRadioGroup
AnchorSideTop.Side = asrBottom
Left = 6
Height = 21
Height = 29
Top = 42
Width = 100
BorderSpacing.Around = 6
ItemHeight = 13
ItemHeight = 0
TabOrder = 1
Text = 'BakOtherAddExtComboBox'
end
@ -250,11 +254,11 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideTop.Control = BakOtherAddExtComboBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 21
Top = 69
Height = 29
Top = 77
Width = 100
BorderSpacing.Around = 6
ItemHeight = 13
ItemHeight = 0
TabOrder = 2
Text = 'BakOtherMaxCounterComboBox'
end
@ -262,11 +266,11 @@ inherited BackupOptionsFrame: TBackupOptionsFrame
AnchorSideTop.Control = BakOtherMaxCounterComboBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 21
Top = 96
Height = 29
Top = 112
Width = 100
BorderSpacing.Around = 6
ItemHeight = 13
ItemHeight = 0
TabOrder = 3
Text = 'BakOtherSubDirComboBox'
end

View File

@ -2,109 +2,110 @@
LazarusResources.Add('TBackupOptionsFrame','FORMDATA',[
'TPF0'#241#19'TBackupOptionsFrame'#18'BackupOptionsFrame'#6'Height'#3'D'#1#5
+'Width'#3'2'#2#12'ClientHeight'#3'D'#1#11'ClientWidth'#3'2'#2#8'TabOrder'#2#0
+#7'Visible'#8#10'DesignLeft'#2'B'#9'DesignTop'#2'W'#0#242#2#0#6'TLabel'#15'B'
+'ackupHelpLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Cont'
+'rol'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#6'Height'#2#14#5'Wi'
+'dth'#2'Q'#7'Caption'#6#15'BackupHelpLabel'#11'ParentColor'#8#0#0#242#2#1#9
+'TGroupBox'#21'BackupProjectGroupBox'#22'AnchorSideLeft.Control'#7#5'Owner'
+#21'AnchorSideTop.Control'#7#15'BackupHelpLabel'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7
+#9'asrBottom'#6'Height'#3#141#0#3'Top'#2#20#5'Width'#3'2'#2#7'Anchors'#11#5
+'Width'#3'2'#2#12'ClientHeight'#3'@'#1#11'ClientWidth'#3'.'#2#8'TabOrder'#2#0
+#7'Visible'#8#10'DesignLeft'#3'Z'#1#9'DesignTop'#3'w'#1#0#242#2#0#6'TLabel'
+#15'BackupHelpLabel'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.'
+'Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#0#6'H'
+'eight'#2#18#3'Top'#2#0#5'Width'#2'o'#7'Caption'#6#15'BackupHelpLabel'#11'Pa'
+'rentColor'#8#0#0#242#2#1#9'TGroupBox'#21'BackupProjectGroupBox'#22'AnchorSi'
+'deLeft.Control'#7#5'Owner'#21'AnchorSideTop.Control'#7#15'BackupHelpLabel'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'
+#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#0#6'Height'#3#166#0#3'Top'
+#2#24#5'Width'#3'.'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSi'
+'ze'#9#17'BorderSpacing.Top'#2#6#7'Caption'#6#21'BackupProjectGroupBox'#12'C'
+'lientHeight'#3#147#0#11'ClientWidth'#3'*'#2#8'TabOrder'#2#0#0#6'TLabel'#18
+'BakProjAddExtLabel'#22'AnchorSideLeft.Control'#7#21'BakProjAddExtComboBox'
+#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#21'BakPr'
+'ojAddExtComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.'
+'Control'#7#21'BackupProjectGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'
+#4'Left'#2'p'#6'Height'#2#18#3'Top'#2'/'#5'Width'#3#180#1#7'Anchors'#11#5'ak'
+'Top'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#18'Ba'
+'kProjAddExtLabel'#11'ParentColor'#8#0#0#6'TLabel'#22'BakProjMaxCounterLabel'
+#22'AnchorSideLeft.Control'#7#25'BakProjMaxCounterComboBox'#19'AnchorSideLef'
+'t.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#25'BakProjMaxCounterComb'
+'oBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#21
+'BackupProjectGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'
+#6'Height'#2#18#3'Top'#2'R'#5'Width'#3#180#1#7'Anchors'#11#5'akTop'#6'akLeft'
+#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#22'BakProjMaxCounter'
+'Label'#11'ParentColor'#8#0#0#6'TLabel'#18'BakProjSubDirLabel'#22'AnchorSide'
+'Left.Control'#7#21'BakProjSubDirComboBox'#19'AnchorSideLeft.Side'#7#9'asrBo'
+'ttom'#21'AnchorSideTop.Control'#7#21'BakProjSubDirComboBox'#18'AnchorSideTo'
+'p.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#21'BackupProjectGroupB'
+'ox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2#18#3'T'
+'op'#2'u'#5'Width'#3#180#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20
+'BorderSpacing.Around'#2#6#7'Caption'#6#18'BakProjSubDirLabel'#11'ParentColo'
+'r'#8#0#0#11'TRadioGroup'#21'BakProjTypeRadioGroup'#23'AnchorSideRight.Contr'
+'ol'#7#21'BackupProjectGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'L'
+'eft'#2#6#6'Height'#2#30#3'Top'#2#6#5'Width'#3#30#2#7'Anchors'#11#5'akTop'#6
+'akLeft'#7'akRight'#0#8'AutoFill'#9#8'AutoSize'#9#20'BorderSpacing.Around'#2
+#6#7'Caption'#6#21'BakProjTypeRadioGroup'#28'ChildSizing.LeftRightSpacing'#2
+#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7
+#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
+'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#2#7'Column'
+'s'#2#2#21'Constraints.MinHeight'#2#30#7'OnClick'#7#22'BakTypeRadioGroupClic'
+'k'#8'TabOrder'#2#0#0#0#9'TComboBox'#21'BakProjAddExtComboBox'#21'AnchorSide'
+'Top.Control'#7#21'BakProjTypeRadioGroup'#18'AnchorSideTop.Side'#7#9'asrBott'
+'om'#4'Left'#2#6#6'Height'#2#29#3'Top'#2'*'#5'Width'#2'd'#10'AutoSelect'#9#20
+'BorderSpacing.Around'#2#6#10'ItemHeight'#2#0#8'TabOrder'#2#1#4'Text'#6#21'B'
+'akProjAddExtComboBox'#0#0#9'TComboBox'#25'BakProjMaxCounterComboBox'#21'Anc'
+'horSideTop.Control'#7#21'BakProjAddExtComboBox'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#4'Left'#2#6#6'Height'#2#29#3'Top'#2'M'#5'Width'#2'd'#10'AutoSele'
+'ct'#9#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2#0#8'TabOrder'#2#2#4'Tex'
+'t'#6#25'BakProjMaxCounterComboBox'#0#0#9'TComboBox'#21'BakProjSubDirComboBo'
+'x'#21'AnchorSideTop.Control'#7#25'BakProjMaxCounterComboBox'#18'AnchorSideT'
+'op.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#29#3'Top'#2'p'#5'Width'#2'd'
+#10'AutoSelect'#9#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2#0#8'TabOrder'
+#2#3#4'Text'#6#21'BakProjSubDirComboBox'#0#0#0#242#2#2#9'TGroupBox'#19'Backu'
+'pOtherGroupBox'#22'AnchorSideLeft.Control'#7#5'Owner'#21'AnchorSideTop.Cont'
+'rol'#7#21'BackupProjectGroupBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'A'
+'nchorSideRight.Control'#7#5'Owner'#20'AnchorSideRight.Side'#7#9'asrBottom'#4
+'Left'#2#0#6'Height'#3#166#0#3'Top'#3#196#0#5'Width'#3'.'#2#7'Anchors'#11#5
+'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'BorderSpacing.Top'#2#6#7'Cap'
+'tion'#6#21'BackupProjectGroupBox'#12'ClientHeight'#2'{'#11'ClientWidth'#3'.'
+#2#8'TabOrder'#2#0#0#6'TLabel'#18'BakProjAddExtLabel'#22'AnchorSideLeft.Cont'
+'rol'#7#21'BakProjAddExtComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21
+'AnchorSideTop.Control'#7#21'BakProjAddExtComboBox'#18'AnchorSideTop.Side'#7
+#9'asrCenter'#23'AnchorSideRight.Control'#7#21'BackupProjectGroupBox'#20'Anc'
+'horSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2#14#3'Top'#2'-'#5
+'Width'#3#184#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpaci'
+'ng.Around'#2#6#7'Caption'#6#18'BakProjAddExtLabel'#11'ParentColor'#8#0#0#6
+'TLabel'#22'BakProjMaxCounterLabel'#22'AnchorSideLeft.Control'#7#25'BakProjM'
+'axCounterComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.'
+'Control'#7#25'BakProjMaxCounterComboBox'#18'AnchorSideTop.Side'#7#9'asrCent'
+'er'#23'AnchorSideRight.Control'#7#21'BackupProjectGroupBox'#20'AnchorSideRi'
+'ght.Side'#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2#14#3'Top'#2'H'#5'Width'#3
+#184#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'
+#2#6#7'Caption'#6#22'BakProjMaxCounterLabel'#11'ParentColor'#8#0#0#6'TLabel'
+#18'BakProjSubDirLabel'#22'AnchorSideLeft.Control'#7#21'BakProjSubDirComboBo'
+'x'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#21'Ba'
+'kProjSubDirComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRig'
+'ht.Control'#7#21'BackupProjectGroupBox'#20'AnchorSideRight.Side'#7#9'asrBot'
+'tom'#4'Left'#2'p'#6'Height'#2#14#3'Top'#2'c'#5'Width'#3#184#1#7'Anchors'#11
+#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#18
+'BakProjSubDirLabel'#11'ParentColor'#8#0#0#11'TRadioGroup'#21'BakProjTypeRad'
+'ioGroup'#23'AnchorSideRight.Control'#7#21'BackupProjectGroupBox'#20'AnchorS'
+'ideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#30#3'Top'#2#6#5'Width'
+#3'"'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#8'AutoSi'
+'ze'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#21'BakProjTypeRadioGroup'#28
+'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'C'
+'hildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing'
+'.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHoriz'
+'ontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChi'
+'lds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSiz'
+'ing.ControlsPerLine'#2#2#7'Columns'#2#2#21'Constraints.MinHeight'#2#30#7'On'
+'Click'#7#22'BakTypeRadioGroupClick'#8'TabOrder'#2#0#0#0#9'TComboBox'#21'Bak'
+'ProjAddExtComboBox'#21'AnchorSideTop.Control'#7#21'BakProjTypeRadioGroup'#18
+'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'Top'#2'*'#5
+'Width'#2'd'#10'AutoSelect'#9#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2
+#13#8'TabOrder'#2#1#4'Text'#6#21'BakProjAddExtComboBox'#0#0#9'TComboBox'#25
+'BakProjMaxCounterComboBox'#21'AnchorSideTop.Control'#7#21'BakProjAddExtComb'
+'oBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#21#3'To'
+'p'#2'E'#5'Width'#2'd'#10'AutoSelect'#9#20'BorderSpacing.Around'#2#6#10'Item'
+'Height'#2#13#8'TabOrder'#2#2#4'Text'#6#25'BakProjMaxCounterComboBox'#0#0#9
+'TComboBox'#21'BakProjSubDirComboBox'#21'AnchorSideTop.Control'#7#25'BakProj'
+'MaxCounterComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Hei'
+'ght'#2#21#3'Top'#2'`'#5'Width'#2'd'#10'AutoSelect'#9#20'BorderSpacing.Aroun'
+'d'#2#6#10'ItemHeight'#2#13#8'TabOrder'#2#3#4'Text'#6#21'BakProjSubDirComboB'
+'ox'#0#0#0#242#2#2#9'TGroupBox'#19'BackupOtherGroupBox'#22'AnchorSideLeft.Co'
+'ntrol'#7#5'Owner'#21'AnchorSideTop.Control'#7#21'BackupProjectGroupBox'#18
+'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Owner'#20
+'AnchorSideRight.Side'#7#9'asrBottom'#6'Height'#3#141#0#3'Top'#3#167#0#5'Wid'
+'th'#3'2'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#17'B'
+'orderSpacing.Top'#2#6#7'Caption'#6#19'BackupOtherGroupBox'#12'ClientHeight'
+#2'{'#11'ClientWidth'#3'.'#2#8'TabOrder'#2#1#0#6'TLabel'#19'BakOtherAddExtLa'
+'bel'#22'AnchorSideLeft.Control'#7#22'BakOtherAddExtComboBox'#19'AnchorSideL'
,'eft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#22'BakOtherAddExtCombo'
+'Box'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#19
+'BackupOtherGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6
+'Height'#2#14#3'Top'#2'-'#5'Width'#3#184#1#7'Anchors'#11#5'akTop'#6'akLeft'#7
+'akRight'#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#19'BakOtherAddExtLabel'
+#11'ParentColor'#8#0#0#6'TLabel'#23'BakOtherMaxCounterLabel'#22'AnchorSideLe'
+'ft.Control'#7#26'BakOtherMaxCounterComboBox'#19'AnchorSideLeft.Side'#7#9'as'
+'rBottom'#21'AnchorSideTop.Control'#7#26'BakOtherMaxCounterComboBox'#18'Anch'
+'orSideTop.Side'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#19'BackupOther'
+'GroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2
+#14#3'Top'#2'H'#5'Width'#3#184#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'
+#0#20'BorderSpacing.Around'#2#6#7'Caption'#6#23'BakOtherMaxCounterLabel'#11
+'ParentColor'#8#0#0#6'TLabel'#19'BakOtherSubDirLabel'#22'AnchorSideLeft.Cont'
+'rol'#7#22'BakOtherSubDirComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21
+'AnchorSideTop.Control'#7#22'BakOtherSubDirComboBox'#18'AnchorSideTop.Side'#7
+#9'asrCenter'#23'AnchorSideRight.Control'#7#19'BackupOtherGroupBox'#20'Ancho'
+'rSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2#14#3'Top'#2'c'#5'W'
+'idth'#3#184#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacin'
+'g.Around'#2#6#7'Caption'#6#19'BakOtherSubDirLabel'#11'ParentColor'#8#0#0#11
+'TRadioGroup'#22'BakOtherTypeRadioGroup'#23'AnchorSideRight.Control'#7#19'Ba'
+'ckupOtherGroupBox'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'He'
+'ight'#2#30#3'Top'#2#6#5'Width'#3'"'#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'ak'
+'Right'#0#8'AutoFill'#9#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'
+#6#22'BakOtherTypeRadioGroup'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildS'
+'izing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomog'
+'enousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildRe'
+'size'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.'
+'ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToR'
+'ightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#2#7'Columns'#2#2#21
+'Constraints.MinHeight'#2#30#7'OnClick'#7#22'BakTypeRadioGroupClick'#8'TabOr'
+'der'#2#0#0#0#9'TComboBox'#22'BakOtherAddExtComboBox'#21'AnchorSideTop.Contr'
+'ol'#7#22'BakOtherTypeRadioGroup'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Le'
+'ft'#2#6#6'Height'#2#21#3'Top'#2'*'#5'Width'#2'd'#20'BorderSpacing.Around'#2
+#6#10'ItemHeight'#2#13#8'TabOrder'#2#1#4'Text'#6#22'BakOtherAddExtComboBox'#0
+#0#9'TComboBox'#26'BakOtherMaxCounterComboBox'#21'AnchorSideTop.Control'#7#22
+'BakOtherAddExtComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6
+'Height'#2#21#3'Top'#2'E'#5'Width'#2'd'#20'BorderSpacing.Around'#2#6#10'Item'
+'Height'#2#13#8'TabOrder'#2#2#4'Text'#6#26'BakOtherMaxCounterComboBox'#0#0#9
+'TComboBox'#22'BakOtherSubDirComboBox'#21'AnchorSideTop.Control'#7#26'BakOth'
+'erMaxCounterComboBox'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'H'
+'eight'#2#21#3'Top'#2'`'#5'Width'#2'd'#20'BorderSpacing.Around'#2#6#10'ItemH'
+'eight'#2#13#8'TabOrder'#2#3#4'Text'#6#22'BakOtherSubDirComboBox'#0#0#0#0
+'tion'#6#19'BackupOtherGroupBox'#12'ClientHeight'#3#147#0#11'ClientWidth'#3
+'*'#2#8'TabOrder'#2#1#0#6'TLabel'#19'BakOtherAddExtLabel'#22'AnchorSideLeft.'
,'Control'#7#22'BakOtherAddExtComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'
+#21'AnchorSideTop.Control'#7#22'BakOtherAddExtComboBox'#18'AnchorSideTop.Sid'
+'e'#7#9'asrCenter'#23'AnchorSideRight.Control'#7#19'BackupOtherGroupBox'#20
+'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2#18#3'Top'#2'/'
+#5'Width'#3#180#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpa'
+'cing.Around'#2#6#7'Caption'#6#19'BakOtherAddExtLabel'#11'ParentColor'#8#0#0
+#6'TLabel'#23'BakOtherMaxCounterLabel'#22'AnchorSideLeft.Control'#7#26'BakOt'
+'herMaxCounterComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSide'
+'Top.Control'#7#26'BakOtherMaxCounterComboBox'#18'AnchorSideTop.Side'#7#9'as'
+'rCenter'#23'AnchorSideRight.Control'#7#19'BackupOtherGroupBox'#20'AnchorSid'
+'eRight.Side'#7#9'asrBottom'#4'Left'#2'p'#6'Height'#2#18#3'Top'#2'R'#5'Width'
+#3#180#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Arou'
+'nd'#2#6#7'Caption'#6#23'BakOtherMaxCounterLabel'#11'ParentColor'#8#0#0#6'TL'
+'abel'#19'BakOtherSubDirLabel'#22'AnchorSideLeft.Control'#7#22'BakOtherSubDi'
+'rComboBox'#19'AnchorSideLeft.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'
+#7#22'BakOtherSubDirComboBox'#18'AnchorSideTop.Side'#7#9'asrCenter'#23'Ancho'
+'rSideRight.Control'#7#19'BackupOtherGroupBox'#20'AnchorSideRight.Side'#7#9
+'asrBottom'#4'Left'#2'p'#6'Height'#2#18#3'Top'#2'u'#5'Width'#3#180#1#7'Ancho'
+'rs'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#7'Capti'
+'on'#6#19'BakOtherSubDirLabel'#11'ParentColor'#8#0#0#11'TRadioGroup'#22'BakO'
+'therTypeRadioGroup'#23'AnchorSideRight.Control'#7#19'BackupOtherGroupBox'#20
+'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#30#3'Top'#2#6#5
+'Width'#3#30#2#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoFill'#9#8
+'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#22'BakOtherTypeRadioG'
+'roup'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'
+#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'Chi'
+'ldSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.Shr'
+'inkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crs'
+'ScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27
+'ChildSizing.ControlsPerLine'#2#2#7'Columns'#2#2#21'Constraints.MinHeight'#2
+#30#7'OnClick'#7#22'BakTypeRadioGroupClick'#8'TabOrder'#2#0#0#0#9'TComboBox'
+#22'BakOtherAddExtComboBox'#21'AnchorSideTop.Control'#7#22'BakOtherTypeRadio'
+'Group'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#29#3'T'
+'op'#2'*'#5'Width'#2'd'#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2#0#8'Ta'
+'bOrder'#2#1#4'Text'#6#22'BakOtherAddExtComboBox'#0#0#9'TComboBox'#26'BakOth'
+'erMaxCounterComboBox'#21'AnchorSideTop.Control'#7#22'BakOtherAddExtComboBox'
+#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#29#3'Top'#2'M'
+#5'Width'#2'd'#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2#0#8'TabOrder'#2
+#2#4'Text'#6#26'BakOtherMaxCounterComboBox'#0#0#9'TComboBox'#22'BakOtherSubD'
+'irComboBox'#21'AnchorSideTop.Control'#7#26'BakOtherMaxCounterComboBox'#18'A'
+'nchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#29#3'Top'#2'p'#5
+'Width'#2'd'#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2#0#8'TabOrder'#2#3
+#4'Text'#6#22'BakOtherSubDirComboBox'#0#0#0#0
]);

View File

@ -171,7 +171,8 @@ type
destructor Destroy; override;
procedure Clear;
procedure ComputePreferredClientArea(MoveNonAlignedChilds: boolean;
out PreferredClientWidth, PreferredClientHeight: integer);
out MoveNonAlignedToLeft, MoveNonAlignedToTop,
PreferredClientWidth, PreferredClientHeight: integer);
procedure FixControlProperties(Child: TControl);
procedure ClearSides;
procedure SetFixedLeftTop(ChildData: TAutoSizeCtrlData; Side: TAnchorKind;
@ -838,7 +839,8 @@ end;
procedure TAutoSizeCtrlData.ComputePreferredClientArea(
MoveNonAlignedChilds: boolean;
out PreferredClientWidth, PreferredClientHeight: integer);
out MoveNonAlignedToLeft, MoveNonAlignedToTop,
PreferredClientWidth, PreferredClientHeight: integer);
{ if MoveNonAlignedChilds=true then all non-aligned childs will be moved in
parallel, so that at least one child is positioned left most and one child
is positioned top most.
@ -958,6 +960,8 @@ var
begin
PreferredClientWidth:=0;
PreferredClientHeight:=0;
MoveNonAlignedToLeft:=0;
MoveNonAlignedToTop:=0;
if ChildCount=0 then exit;
@ -1042,6 +1046,42 @@ begin
end;
end;
// compute needed MoveNonAlignedToLeft,MoveNonAlignedToTop
if MoveNonAlignedChilds then
begin
for i:=0 to ChildCount-1 do
begin
Child:=WinControl.Controls[i];
ChildData:=Childs[Child];
if (Child.Align=alNone)
and (akLeft in Child.Anchors) and (Child.AnchorSide[akLeft].Control=nil)
then begin
if (ChildData.Sides[akLeft].DistanceState[assddLeftTop]=assdfValid) then
MoveNonAlignedToLeft:=Max(MoveNonAlignedToLeft,
Child.Left-ChildData.Sides[akLeft].Distance[assddLeftTop]);
{ the below is only correct, if PreferredClientWidth is realized.
if (ChildData.Sides[akLeft].DistanceState[assddRightBottom]=assdfValid) then
MoveNonAlignedToLeft:=Min(MoveNonAlignedToLeft,
Child.Left
-(PreferredClientWidth
-ChildData.Sides[akLeft].Distance[assddRightBottom]));}
end;
if (Child.Align=alNone)
and (akTop in Child.Anchors) and (Child.AnchorSide[akTop].Control=nil)
then begin
if (ChildData.Sides[akTop].DistanceState[assddLeftTop]=assdfValid) then
MoveNonAlignedToTop:=Max(MoveNonAlignedToTop,
Child.Top-ChildData.Sides[akTop].Distance[assddLeftTop]);
{ the below is only correct, if PreferredClientWidth is realized.
if (ChildData.Sides[akTop].DistanceState[assddRightBottom]=assdfValid) then
MoveNonAlignedToTop:=Min(MoveNonAlignedToTop,
Child.Top
-(PreferredClientHeight
-ChildData.Sides[akTop].Distance[assddRightBottom]));}
end;
end;
end;
{$IFDEF VerboseAutoSizeCtrlData}
DebugLn(['TAutoSizeCtrlData.ComputePreferredClientArea END ',DbgSName(Control),' PreferredClientWidth/height=',PreferredClientWidth,',',PreferredClientHeight]);
{$ENDIF}
@ -3065,46 +3105,26 @@ var
// borderspacing is used
// e.g. dx=10 means all non-align-childs should be moved 10 pixels to the left
var
i: Integer;
Child: TControl;
p: Integer;
MinSpaceLeft: LongInt;
MinSpaceTop: LongInt;
NewClientWidth, NewClientHeight: integer;
Layout: TAutoSizeCtrlData;
begin
if ChildSizing.Layout<>cclNone then begin
dx:=0;
dy:=0;
exit;
end;
dx:=High(integer);
dy:=High(integer);
MinSpaceLeft:=ChildSizing.LeftRightSpacing;
MinSpaceTop:=ChildSizing.TopBottomSpacing;
for i:=0 to ControlCount-1 do begin
Child:=Controls[i];
if Child.Align<>alNone then continue;
if not Child.IsControlVisible then continue;
if (akLeft in Child.Anchors)
and (Child.AnchorSide[akLeft].Control=nil) then begin
// the left side of this control is only defined by designer coords
p:=Child.Left
-Max(Child.BorderSpacing.GetSpace(akLeft),MinSpaceLeft)
-CurClientRect.Left;
if dx>p then dx:=p;
end;
if (akTop in Child.Anchors)
and (Child.AnchorSide[akTop].Control=nil) then begin
// the top side of this control is only defined by designer coords
p:=Child.Top
-Max(Child.BorderSpacing.GetSpace(akTop),MinSpaceTop)
-CurClientRect.Top;
if dy>p then dy:=p;
end;
// get the move requirements for the child controls
Layout:=nil;
try
Layout:=TAutoSizeCtrlData.Create(Self);
Layout.ComputePreferredClientArea(true,dx,dy,
NewClientWidth,NewClientHeight);
if (NewClientWidth<>0) or (NewClientHeight<>0) then ;
//if (dx<>0) or (dy<>0) then DebugLn(['GetMoveDiffForNonAlignedChilds ',DbgSName(Self),' dx=',dx,' dy=',dy]);
finally
Layout.Free;
end;
if dx=High(integer) then
dx:=0;
if dy=High(integer) then
dy:=0;
end;
var
@ -7208,6 +7228,7 @@ var
OldClientRect: TRect;
NewWidth: Integer;
NewHeight: Integer;
NewMoveLeft, NewMoveRight: integer;
begin
inherited CalculatePreferredSize(PreferredWidth,PreferredHeight,WithThemeSpace);
@ -7226,7 +7247,9 @@ begin
Layout:=nil;
try
Layout:=TAutoSizeCtrlData.Create(Self);
Layout.ComputePreferredClientArea(false,NewClientWidth,NewClientHeight);
Layout.ComputePreferredClientArea(false,NewMoveLeft,NewMoveRight,
NewClientWidth,NewClientHeight);
if (NewMoveLeft<>0) or (NewMoveRight<>0) then ;
finally
Layout.Free;
end;