implementing anchor editor, setting sibling and reference sides

git-svn-id: trunk@6649 -
This commit is contained in:
mattias 2005-01-20 20:51:06 +00:00
parent efeb185b05
commit 0312b4613d
15 changed files with 1189 additions and 277 deletions

8
.gitattributes vendored
View File

@ -1044,6 +1044,14 @@ images/components/tupdown.xpm -text svneol=native#image/x-xpixmap
images/components/txmlpropstorage.xpm -text svneol=native#image/x-xpixmap
images/components/unregisteredcomponent.xpm -text svneol=native#image/x-xpixmap
images/components_images.lrs svneol=native#text/pascal
images/designer/anchorbottombottom.xpm -text svneol=native#image/x-xpixmap
images/designer/anchorcenterhorizontal.xpm -text svneol=native#image/x-xpixmap
images/designer/anchorcentervertical.xpm -text svneol=native#image/x-xpixmap
images/designer/anchorleftleft.xpm -text svneol=native#image/x-xpixmap
images/designer/anchorleftright.xpm -text svneol=native#image/x-xpixmap
images/designer/anchorrightright.xpm -text svneol=native#image/x-xpixmap
images/designer/anchortopbottom.xpm -text svneol=native#image/x-xpixmap
images/designer/anchortoptop.xpm -text svneol=native#image/x-xpixmap
images/downarrow.ico -text svneol=unset#image/x-icon
images/downarrow.xpm -text svneol=native#image/x-xpixmap
images/fonts.ico -text svneol=unset#image/x-icon

View File

@ -15,7 +15,6 @@ object AnchorDesigner: TAnchorDesigner
Width = 520
object BorderSpaceGroupBox: TGroupBox
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.OnChange = nil
Caption = 'BorderSpaceGroupBox'
ClientHeight = 87
ClientWidth = 168
@ -26,9 +25,9 @@ object AnchorDesigner: TAnchorDesigner
Top = 80
Width = 172
object LeftBorderSpaceSpinEdit: TSpinEdit
BorderSpacing.OnChange = nil
Decimal_Places = 0
MaxValue = 100
OnChange = BorderSpaceSpinEditChange
ParentShowHint = False
ShowHint = True
TabStop = True
@ -38,9 +37,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 50
end
object RightBorderSpaceSpinEdit: TSpinEdit
BorderSpacing.OnChange = nil
Decimal_Places = 0
MaxValue = 100
OnChange = BorderSpaceSpinEditChange
ParentShowHint = False
ShowHint = True
TabStop = True
@ -51,9 +50,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 50
end
object TopBorderSpaceSpinEdit: TSpinEdit
BorderSpacing.OnChange = nil
Decimal_Places = 0
MaxValue = 100
OnChange = BorderSpaceSpinEditChange
ParentShowHint = False
ShowHint = True
TabStop = True
@ -63,9 +62,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 50
end
object BottomBorderSpaceSpinEdit: TSpinEdit
BorderSpacing.OnChange = nil
Decimal_Places = 0
MaxValue = 100
OnChange = BorderSpaceSpinEditChange
ParentShowHint = False
ShowHint = True
TabStop = True
@ -76,9 +75,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 50
end
object AroundBorderSpaceSpinEdit: TSpinEdit
BorderSpacing.OnChange = nil
Decimal_Places = 0
MaxValue = 100
OnChange = BorderSpaceSpinEditChange
ParentShowHint = False
ShowHint = True
TabStop = True
@ -91,7 +90,6 @@ object AnchorDesigner: TAnchorDesigner
end
object TopGroupBox: TGroupBox
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
Caption = 'TopGroupBox'
ClientHeight = 33
ClientWidth = 404
@ -102,9 +100,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 408
object TopRefTopSpeedButton: TSpeedButton
Anchors = [akTop, akRight]
BorderSpacing.OnChange = nil
GroupIndex = 1
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 296
@ -113,9 +111,9 @@ object AnchorDesigner: TAnchorDesigner
end
object TopRefBottomSpeedButton: TSpeedButton
Anchors = [akTop, akRight]
BorderSpacing.OnChange = nil
GroupIndex = 1
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 331
@ -124,9 +122,9 @@ object AnchorDesigner: TAnchorDesigner
end
object TopRefCenterSpeedButton: TSpeedButton
Anchors = [akTop, akRight]
BorderSpacing.OnChange = nil
GroupIndex = 1
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 366
@ -135,7 +133,6 @@ object AnchorDesigner: TAnchorDesigner
end
object TopSiblingLabel: TLabel
AutoSize = True
BorderSpacing.OnChange = nil
Caption = 'Sibling'
ParentColor = True
Left = 94
@ -144,7 +141,6 @@ object AnchorDesigner: TAnchorDesigner
Width = 38
end
object TopAnchoredCheckBox: TCheckBox
BorderSpacing.OnChange = nil
Caption = 'Enabled'
OnChange = AnchorEnabledCheckBoxChange
TabOrder = 0
@ -155,8 +151,8 @@ object AnchorDesigner: TAnchorDesigner
end
object TopSiblingComboBox: TComboBox
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
MaxLength = 0
OnChange = SiblingComboBoxChange
ParentShowHint = False
ShowHint = True
TabOrder = 1
@ -168,7 +164,6 @@ object AnchorDesigner: TAnchorDesigner
end
object BottomGroupBox: TGroupBox
Anchors = [akLeft, akRight, akBottom]
BorderSpacing.OnChange = nil
Caption = 'BottomGroupBox'
ClientHeight = 33
ClientWidth = 404
@ -180,9 +175,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 408
object BottomRefTopSpeedButton: TSpeedButton
Anchors = [akTop, akRight]
BorderSpacing.OnChange = nil
GroupIndex = 3
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 296
@ -191,9 +186,9 @@ object AnchorDesigner: TAnchorDesigner
end
object BottomRefBottomSpeedButton: TSpeedButton
Anchors = [akTop, akRight]
BorderSpacing.OnChange = nil
GroupIndex = 3
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 331
@ -202,9 +197,9 @@ object AnchorDesigner: TAnchorDesigner
end
object BottomRefCenterSpeedButton: TSpeedButton
Anchors = [akTop, akRight]
BorderSpacing.OnChange = nil
GroupIndex = 3
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 366
@ -213,7 +208,6 @@ object AnchorDesigner: TAnchorDesigner
end
object BottomSiblingLabel: TLabel
AutoSize = True
BorderSpacing.OnChange = nil
Caption = 'Sibling'
ParentColor = True
Left = 94
@ -222,7 +216,6 @@ object AnchorDesigner: TAnchorDesigner
Width = 38
end
object BottomAnchoredCheckBox: TCheckBox
BorderSpacing.OnChange = nil
Caption = 'Enabled'
OnChange = AnchorEnabledCheckBoxChange
TabOrder = 0
@ -233,8 +226,8 @@ object AnchorDesigner: TAnchorDesigner
end
object BottomSiblingComboBox: TComboBox
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
MaxLength = 0
OnChange = SiblingComboBoxChange
ParentShowHint = False
ShowHint = True
TabOrder = 1
@ -246,7 +239,6 @@ object AnchorDesigner: TAnchorDesigner
end
object RightGroupBox: TGroupBox
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.OnChange = nil
Caption = 'RightGroupBox'
ClientHeight = 112
ClientWidth = 146
@ -257,9 +249,9 @@ object AnchorDesigner: TAnchorDesigner
Top = 64
Width = 150
object RightRefLeftSpeedButton: TSpeedButton
BorderSpacing.OnChange = nil
GroupIndex = 4
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 5
@ -268,9 +260,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 30
end
object RightRefRightSpeedButton: TSpeedButton
BorderSpacing.OnChange = nil
GroupIndex = 4
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 40
@ -279,9 +271,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 30
end
object RightRefCenterSpeedButton: TSpeedButton
BorderSpacing.OnChange = nil
GroupIndex = 4
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 75
@ -291,7 +283,6 @@ object AnchorDesigner: TAnchorDesigner
end
object RightSiblingLabel: TLabel
AutoSize = True
BorderSpacing.OnChange = nil
Caption = 'Sibling'
ParentColor = True
Left = 2
@ -300,7 +291,6 @@ object AnchorDesigner: TAnchorDesigner
Width = 38
end
object RightAnchoredCheckBox: TCheckBox
BorderSpacing.OnChange = nil
Caption = 'Enabled'
OnChange = AnchorEnabledCheckBoxChange
TabOrder = 0
@ -311,8 +301,8 @@ object AnchorDesigner: TAnchorDesigner
end
object RightSiblingComboBox: TComboBox
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
MaxLength = 0
OnChange = SiblingComboBoxChange
ParentShowHint = False
ShowHint = True
Text = 'RightSiblingComboBox'
@ -324,7 +314,6 @@ object AnchorDesigner: TAnchorDesigner
end
object LeftGroupBox: TGroupBox
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.OnChange = nil
Caption = 'LeftGroupBox'
ClientHeight = 112
ClientWidth = 146
@ -335,9 +324,9 @@ object AnchorDesigner: TAnchorDesigner
Top = 64
Width = 150
object LeftRefLeftSpeedButton: TSpeedButton
BorderSpacing.OnChange = nil
GroupIndex = 2
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 5
@ -346,9 +335,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 30
end
object LeftRefRightSpeedButton: TSpeedButton
BorderSpacing.OnChange = nil
GroupIndex = 2
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 40
@ -357,9 +346,9 @@ object AnchorDesigner: TAnchorDesigner
Width = 30
end
object LeftRefCenterSpeedButton: TSpeedButton
BorderSpacing.OnChange = nil
GroupIndex = 2
NumGlyphs = 0
OnClick = ReferenceSideButtonClicked
ShowHint = True
ParentShowHint = False
Left = 75
@ -369,7 +358,6 @@ object AnchorDesigner: TAnchorDesigner
end
object LeftSiblingLabel: TLabel
AutoSize = True
BorderSpacing.OnChange = nil
Caption = 'Sibling'
ParentColor = True
Left = 2
@ -378,7 +366,6 @@ object AnchorDesigner: TAnchorDesigner
Width = 38
end
object LeftAnchoredCheckBox: TCheckBox
BorderSpacing.OnChange = nil
Caption = 'Enabled'
OnChange = AnchorEnabledCheckBoxChange
TabOrder = 0
@ -389,8 +376,8 @@ object AnchorDesigner: TAnchorDesigner
end
object LeftSiblingComboBox: TComboBox
Anchors = [akTop, akLeft, akRight]
BorderSpacing.OnChange = nil
MaxLength = 0
OnChange = SiblingComboBoxChange
ParentShowHint = False
ShowHint = True
Text = 'LeftSiblingComboBox'

View File

@ -7,108 +7,107 @@ LazarusResources.Add('TAnchorDesigner','FORMDATA',[
+'nerDestroy'#6'OnShow'#7#18'AnchorDesignerShow'#13'PixelsPerInch'#2'Z'#18'Ho'
+'rzScrollBar.Page'#3#7#2#18'VertScrollBar.Page'#3#2#1#4'Left'#3'"'#1#6'Heigh'
+'t'#3#3#1#3'Top'#3#163#0#5'Width'#3#8#2#0#9'TGroupBox'#19'BorderSpaceGroupBo'
+'x'#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#22'BorderSpacing.OnChange'
+#13#7'Caption'#6#19'BorderSpaceGroupBox'#12'ClientHeight'#2'W'#11'ClientWidt'
+'h'#3#168#0#11'ParentColor'#9#8'TabOrder'#2#0#4'Left'#3#172#0#6'Height'#2'h'
+#3'Top'#2'P'#5'Width'#3#172#0#0#9'TSpinEdit'#23'LeftBorderSpaceSpinEdit'#22
+'BorderSpacing.OnChange'#13#14'Decimal_Places'#2#0#8'MaxValue'#5#0#0#0#0#0#0
+#0#200#5'@'#14'ParentShowHint'#8#8'ShowHint'#9#7'TabStop'#9#8'TabOrder'#2#0#6
+'Height'#2#20#3'Top'#2#30#5'Width'#2'2'#0#0#9'TSpinEdit'#24'RightBorderSpace'
+'SpinEdit'#22'BorderSpacing.OnChange'#13#14'Decimal_Places'#2#0#8'MaxValue'#5
+#0#0#0#0#0#0#0#200#5'@'#14'ParentShowHint'#8#8'ShowHint'#9#7'TabStop'#9#8'Ta'
+'bOrder'#2#1#4'Left'#2'v'#6'Height'#2#20#3'Top'#2#30#5'Width'#2'2'#0#0#9'TSp'
+'inEdit'#22'TopBorderSpaceSpinEdit'#22'BorderSpacing.OnChange'#13#14'Decimal'
+'_Places'#2#0#8'MaxValue'#5#0#0#0#0#0#0#0#200#5'@'#14'ParentShowHint'#8#8'Sh'
+'owHint'#9#7'TabStop'#9#8'TabOrder'#2#2#4'Left'#2':'#6'Height'#2#20#5'Width'
+#2'2'#0#0#9'TSpinEdit'#25'BottomBorderSpaceSpinEdit'#22'BorderSpacing.OnChan'
+'ge'#13#14'Decimal_Places'#2#0#8'MaxValue'#5#0#0#0#0#0#0#0#200#5'@'#14'Paren'
+'tShowHint'#8#8'ShowHint'#9#7'TabStop'#9#8'TabOrder'#2#3#4'Left'#2':'#6'Heig'
+'ht'#2#20#3'Top'#2'9'#5'Width'#2'2'#0#0#9'TSpinEdit'#25'AroundBorderSpaceSpi'
+'nEdit'#22'BorderSpacing.OnChange'#13#14'Decimal_Places'#2#0#8'MaxValue'#5#0
+#0#0#0#0#0#0#200#5'@'#14'ParentShowHint'#8#8'ShowHint'#9#7'TabStop'#9#8'TabO'
+'rder'#2#4#4'Left'#2':'#6'Height'#2#20#3'Top'#2#30#5'Width'#2'2'#0#0#0#9'TGr'
+'oupBox'#11'TopGroupBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'Bo'
+'rderSpacing.OnChange'#13#7'Caption'#6#11'TopGroupBox'#12'ClientHeight'#2'!'
+#11'ClientWidth'#3#148#1#11'ParentColor'#9#8'TabOrder'#2#1#4'Left'#2'@'#6'He'
+'ight'#2'2'#5'Width'#3#152#1#0#12'TSpeedButton'#20'TopRefTopSpeedButton'#7'A'
+'nchors'#11#5'akTop'#7'akRight'#0#22'BorderSpacing.OnChange'#13#10'GroupInde'
+'x'#2#1#9'NumGlyphs'#2#0#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#3'('#1#6
+'Height'#2#30#5'Width'#2#30#0#0#12'TSpeedButton'#23'TopRefBottomSpeedButton'
+#7'Anchors'#11#5'akTop'#7'akRight'#0#22'BorderSpacing.OnChange'#13#10'GroupI'
+'ndex'#2#1#9'NumGlyphs'#2#0#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#3'K'#1
+#6'Height'#2#30#5'Width'#2#30#0#0#12'TSpeedButton'#23'TopRefCenterSpeedButto'
+'n'#7'Anchors'#11#5'akTop'#7'akRight'#0#22'BorderSpacing.OnChange'#13#10'Gro'
+'upIndex'#2#1#9'NumGlyphs'#2#0#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#3
+'n'#1#6'Height'#2#30#5'Width'#2#30#0#0#6'TLabel'#15'TopSiblingLabel'#8'AutoS'
+'ize'#9#22'BorderSpacing.OnChange'#13#7'Caption'#6#7'Sibling'#11'ParentColor'
+#9#4'Left'#2'^'#6'Height'#2#12#3'Top'#2#4#5'Width'#2'&'#0#0#9'TCheckBox'#19
+'TopAnchoredCheckBox'#22'BorderSpacing.OnChange'#13#7'Caption'#6#7'Enabled'#8
+'OnChange'#7#27'AnchorEnabledCheckBoxChange'#8'TabOrder'#2#0#11'UseOnChange'
+#9#4'Left'#2#2#6'Height'#2#24#5'Width'#2'F'#0#0#9'TComboBox'#18'TopSiblingCo'
+'mboBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpacing.OnCh'
+'ange'#13#9'MaxLength'#2#0#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1
+'x'#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#7'Caption'#6#19'BorderSpa'
+'ceGroupBox'#12'ClientHeight'#2'W'#11'ClientWidth'#3#168#0#11'ParentColor'#9
+#8'TabOrder'#2#0#4'Left'#3#172#0#6'Height'#2'h'#3'Top'#2'P'#5'Width'#3#172#0
+#0#9'TSpinEdit'#23'LeftBorderSpaceSpinEdit'#14'Decimal_Places'#2#0#8'MaxValu'
+'e'#5#0#0#0#0#0#0#0#200#5'@'#8'OnChange'#7#25'BorderSpaceSpinEditChange'#14
+'ParentShowHint'#8#8'ShowHint'#9#7'TabStop'#9#8'TabOrder'#2#0#6'Height'#2#20
+#3'Top'#2#30#5'Width'#2'2'#0#0#9'TSpinEdit'#24'RightBorderSpaceSpinEdit'#14
+'Decimal_Places'#2#0#8'MaxValue'#5#0#0#0#0#0#0#0#200#5'@'#8'OnChange'#7#25'B'
+'orderSpaceSpinEditChange'#14'ParentShowHint'#8#8'ShowHint'#9#7'TabStop'#9#8
+'TabOrder'#2#1#4'Left'#2'v'#6'Height'#2#20#3'Top'#2#30#5'Width'#2'2'#0#0#9'T'
+'SpinEdit'#22'TopBorderSpaceSpinEdit'#14'Decimal_Places'#2#0#8'MaxValue'#5#0
+#0#0#0#0#0#0#200#5'@'#8'OnChange'#7#25'BorderSpaceSpinEditChange'#14'ParentS'
+'howHint'#8#8'ShowHint'#9#7'TabStop'#9#8'TabOrder'#2#2#4'Left'#2':'#6'Height'
+#2#20#5'Width'#2'2'#0#0#9'TSpinEdit'#25'BottomBorderSpaceSpinEdit'#14'Decima'
+'l_Places'#2#0#8'MaxValue'#5#0#0#0#0#0#0#0#200#5'@'#8'OnChange'#7#25'BorderS'
+'paceSpinEditChange'#14'ParentShowHint'#8#8'ShowHint'#9#7'TabStop'#9#8'TabOr'
+'der'#2#3#4'Left'#2':'#6'Height'#2#20#3'Top'#2'9'#5'Width'#2'2'#0#0#9'TSpinE'
+'dit'#25'AroundBorderSpaceSpinEdit'#14'Decimal_Places'#2#0#8'MaxValue'#5#0#0
+#0#0#0#0#0#200#5'@'#8'OnChange'#7#25'BorderSpaceSpinEditChange'#14'ParentSho'
+'wHint'#8#8'ShowHint'#9#7'TabStop'#9#8'TabOrder'#2#4#4'Left'#2':'#6'Height'#2
+#20#3'Top'#2#30#5'Width'#2'2'#0#0#0#9'TGroupBox'#11'TopGroupBox'#7'Anchors'
+#11#5'akTop'#6'akLeft'#7'akRight'#0#7'Caption'#6#11'TopGroupBox'#12'ClientHe'
+'ight'#2'!'#11'ClientWidth'#3#148#1#11'ParentColor'#9#8'TabOrder'#2#1#4'Left'
+#2'@'#6'Height'#2'2'#5'Width'#3#152#1#0#12'TSpeedButton'#20'TopRefTopSpeedBu'
+'tton'#7'Anchors'#11#5'akTop'#7'akRight'#0#10'GroupIndex'#2#1#9'NumGlyphs'#2
+#0#7'OnClick'#7#26'ReferenceSideButtonClicked'#8'ShowHint'#9#14'ParentShowHi'
+'nt'#8#4'Left'#3'('#1#6'Height'#2#30#5'Width'#2#30#0#0#12'TSpeedButton'#23'T'
+'opRefBottomSpeedButton'#7'Anchors'#11#5'akTop'#7'akRight'#0#10'GroupIndex'#2
+#1#9'NumGlyphs'#2#0#7'OnClick'#7#26'ReferenceSideButtonClicked'#8'ShowHint'#9
+#14'ParentShowHint'#8#4'Left'#3'K'#1#6'Height'#2#30#5'Width'#2#30#0#0#12'TSp'
+'eedButton'#23'TopRefCenterSpeedButton'#7'Anchors'#11#5'akTop'#7'akRight'#0
+#10'GroupIndex'#2#1#9'NumGlyphs'#2#0#7'OnClick'#7#26'ReferenceSideButtonClic'
+'ked'#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#3'n'#1#6'Height'#2#30#5'Wid'
+'th'#2#30#0#0#6'TLabel'#15'TopSiblingLabel'#8'AutoSize'#9#7'Caption'#6#7'Sib'
+'ling'#11'ParentColor'#9#4'Left'#2'^'#6'Height'#2#12#3'Top'#2#4#5'Width'#2'&'
+#0#0#9'TCheckBox'#19'TopAnchoredCheckBox'#7'Caption'#6#7'Enabled'#8'OnChange'
+#7#27'AnchorEnabledCheckBoxChange'#8'TabOrder'#2#0#11'UseOnChange'#9#4'Left'
+#2#2#6'Height'#2#24#5'Width'#2'F'#0#0#9'TComboBox'#18'TopSiblingComboBox'#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#9'MaxLength'#2#0#8'OnChange'#7
+#21'SiblingComboBoxChange'#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1
+#4'Text'#6#18'TopSiblingComboBox'#4'Left'#3#158#0#6'Height'#2#25#5'Width'#3
+#129#0#0#0#0#9'TGroupBox'#14'BottomGroupBox'#7'Anchors'#11#6'akLeft'#7'akRig'
+'ht'#8'akBottom'#0#22'BorderSpacing.OnChange'#13#7'Caption'#6#14'BottomGroup'
+'Box'#12'ClientHeight'#2'!'#11'ClientWidth'#3#148#1#11'ParentColor'#9#8'TabO'
+'rder'#2#2#4'Left'#2'@'#6'Height'#2'2'#3'Top'#3#200#0#5'Width'#3#152#1#0#12
+'TSpeedButton'#23'BottomRefTopSpeedButton'#7'Anchors'#11#5'akTop'#7'akRight'
+#0#22'BorderSpacing.OnChange'#13#10'GroupIndex'#2#3#9'NumGlyphs'#2#0#8'ShowH'
+'int'#9#14'ParentShowHint'#8#4'Left'#3'('#1#6'Height'#2#30#5'Width'#2#30#0#0
+#12'TSpeedButton'#26'BottomRefBottomSpeedButton'#7'Anchors'#11#5'akTop'#7'ak'
+'Right'#0#22'BorderSpacing.OnChange'#13#10'GroupIndex'#2#3#9'NumGlyphs'#2#0#8
+'ht'#8'akBottom'#0#7'Caption'#6#14'BottomGroupBox'#12'ClientHeight'#2'!'#11
+'ClientWidth'#3#148#1#11'ParentColor'#9#8'TabOrder'#2#2#4'Left'#2'@'#6'Heigh'
+'t'#2'2'#3'Top'#3#200#0#5'Width'#3#152#1#0#12'TSpeedButton'#23'BottomRefTopS'
+'peedButton'#7'Anchors'#11#5'akTop'#7'akRight'#0#10'GroupIndex'#2#3#9'NumGly'
+'phs'#2#0#7'OnClick'#7#26'ReferenceSideButtonClicked'#8'ShowHint'#9#14'Paren'
+'tShowHint'#8#4'Left'#3'('#1#6'Height'#2#30#5'Width'#2#30#0#0#12'TSpeedButto'
+'n'#26'BottomRefBottomSpeedButton'#7'Anchors'#11#5'akTop'#7'akRight'#0#10'Gr'
+'oupIndex'#2#3#9'NumGlyphs'#2#0#7'OnClick'#7#26'ReferenceSideButtonClicked'#8
+'ShowHint'#9#14'ParentShowHint'#8#4'Left'#3'K'#1#6'Height'#2#30#5'Width'#2#30
+#0#0#12'TSpeedButton'#26'BottomRefCenterSpeedButton'#7'Anchors'#11#5'akTop'#7
+'akRight'#0#22'BorderSpacing.OnChange'#13#10'GroupIndex'#2#3#9'NumGlyphs'#2#0
+#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#3'n'#1#6'Height'#2#30#5'Width'#2
+#30#0#0#6'TLabel'#18'BottomSiblingLabel'#8'AutoSize'#9#22'BorderSpacing.OnCh'
+'ange'#13#7'Caption'#6#7'Sibling'#11'ParentColor'#9#4'Left'#2'^'#6'Height'#2
+#12#3'Top'#2#8#5'Width'#2'&'#0#0#9'TCheckBox'#22'BottomAnchoredCheckBox'#22
+'BorderSpacing.OnChange'#13#7'Caption'#6#7'Enabled'#8'OnChange'#7#27'AnchorE'
,'nabledCheckBoxChange'#8'TabOrder'#2#0#11'UseOnChange'#9#4'Left'#2#2#6'Heigh'
+'t'#2#24#5'Width'#2'F'#0#0#9'TComboBox'#21'BottomSiblingComboBox'#7'Anchors'
+#11#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpacing.OnChange'#13#9'MaxLengt'
+'h'#2#0#14'ParentShowHint'#8#8'ShowHint'#9#8'TabOrder'#2#1#4'Text'#6#21'Bott'
+'omSiblingComboBox'#4'Left'#3#158#0#6'Height'#2#25#5'Width'#3#129#0#0#0#0#9
+'TGroupBox'#13'RightGroupBox'#7'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0
+#22'BorderSpacing.OnChange'#13#7'Caption'#6#13'RightGroupBox'#12'ClientHeigh'
+'t'#2'p'#11'ClientWidth'#3#146#0#11'ParentColor'#9#8'TabOrder'#2#3#4'Left'#3
+'l'#1#6'Height'#3#129#0#3'Top'#2'@'#5'Width'#3#150#0#0#12'TSpeedButton'#23'R'
+'ightRefLeftSpeedButton'#22'BorderSpacing.OnChange'#13#10'GroupIndex'#2#4#9
+'NumGlyphs'#2#0#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#2#5#6'Height'#2#30
+#3'Top'#2'Q'#5'Width'#2#30#0#0#12'TSpeedButton'#24'RightRefRightSpeedButton'
+#22'BorderSpacing.OnChange'#13#10'GroupIndex'#2#4#9'NumGlyphs'#2#0#8'ShowHin'
+'t'#9#14'ParentShowHint'#8#4'Left'#2'('#6'Height'#2#30#3'Top'#2'Q'#5'Width'#2
+#30#0#0#12'TSpeedButton'#25'RightRefCenterSpeedButton'#22'BorderSpacing.OnCh'
+'ange'#13#10'GroupIndex'#2#4#9'NumGlyphs'#2#0#8'ShowHint'#9#14'ParentShowHin'
+'t'#8#4'Left'#2'K'#6'Height'#2#30#3'Top'#2'Q'#5'Width'#2#30#0#0#6'TLabel'#17
+'RightSiblingLabel'#8'AutoSize'#9#22'BorderSpacing.OnChange'#13#7'Caption'#6
+#7'Sibling'#11'ParentColor'#9#4'Left'#2#2#6'Height'#2#12#3'Top'#2#28#5'Width'
+#2'&'#0#0#9'TCheckBox'#21'RightAnchoredCheckBox'#22'BorderSpacing.OnChange'
+#13#7'Caption'#6#7'Enabled'#8'OnChange'#7#27'AnchorEnabledCheckBoxChange'#8
+'TabOrder'#2#0#11'UseOnChange'#9#4'Left'#2#2#6'Height'#2#24#5'Width'#2'F'#0#0
+#9'TComboBox'#20'RightSiblingComboBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'ak'
+'Right'#0#22'BorderSpacing.OnChange'#13#9'MaxLength'#2#0#14'ParentShowHint'#8
+#8'ShowHint'#9#4'Text'#6#20'RightSiblingComboBox'#4'Left'#2#5#6'Height'#2#25
+#3'Top'#2'1'#5'Width'#3#135#0#0#0#0#9'TGroupBox'#12'LeftGroupBox'#7'Anchors'
+#11#5'akTop'#6'akLeft'#8'akBottom'#0#22'BorderSpacing.OnChange'#13#7'Caption'
+#6#12'LeftGroupBox'#12'ClientHeight'#2'p'#11'ClientWidth'#3#146#0#11'ParentC'
+'olor'#9#8'TabOrder'#2#4#4'Left'#2#8#6'Height'#3#129#0#3'Top'#2'@'#5'Width'#3
+#150#0#0#12'TSpeedButton'#22'LeftRefLeftSpeedButton'#22'BorderSpacing.OnChan'
+'ge'#13#10'GroupIndex'#2#2#9'NumGlyphs'#2#0#8'ShowHint'#9#14'ParentShowHint'
+#8#4'Left'#2#5#6'Height'#2#30#3'Top'#2'Q'#5'Width'#2#30#0#0#12'TSpeedButton'
+#23'LeftRefRightSpeedButton'#22'BorderSpacing.OnChange'#13#10'GroupIndex'#2#2
+#9'NumGlyphs'#2#0#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#2'('#6'Height'#2
+#30#3'Top'#2'Q'#5'Width'#2#30#0#0#12'TSpeedButton'#24'LeftRefCenterSpeedButt'
+'on'#22'BorderSpacing.OnChange'#13#10'GroupIndex'#2#2#9'NumGlyphs'#2#0#8'Sho'
+'wHint'#9#14'ParentShowHint'#8#4'Left'#2'K'#6'Height'#2#30#3'Top'#2'Q'#5'Wid'
+'th'#2#30#0#0#6'TLabel'#16'LeftSiblingLabel'#8'AutoSize'#9#22'BorderSpacing.'
+'OnChange'#13#7'Caption'#6#7'Sibling'#11'ParentColor'#9#4'Left'#2#2#6'Height'
+#2#12#3'Top'#2#28#5'Width'#2'&'#0#0#9'TCheckBox'#20'LeftAnchoredCheckBox'#22
+'BorderSpacing.OnChange'#13#7'Caption'#6#7'Enabled'#8'OnChange'#7#27'AnchorE'
+'nabledCheckBoxChange'#8'TabOrder'#2#0#11'UseOnChange'#9#4'Left'#2#2#6'Heigh'
+'t'#2#24#5'Width'#2'F'#0#0#9'TComboBox'#19'LeftSiblingComboBox'#7'Anchors'#11
+#5'akTop'#6'akLeft'#7'akRight'#0#22'BorderSpacing.OnChange'#13#9'MaxLength'#2
+#0#14'ParentShowHint'#8#8'ShowHint'#9#4'Text'#6#19'LeftSiblingComboBox'#4'Le'
+'ft'#2#5#6'Height'#2#25#3'Top'#2'1'#5'Width'#3#134#0#0#0#0#0
+'akRight'#0#10'GroupIndex'#2#3#9'NumGlyphs'#2#0#7'OnClick'#7#26'ReferenceSid'
+'eButtonClicked'#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#3'n'#1#6'Height'
+#2#30#5'Width'#2#30#0#0#6'TLabel'#18'BottomSiblingLabel'#8'AutoSize'#9#7'Cap'
+'tion'#6#7'Sibling'#11'ParentColor'#9#4'Left'#2'^'#6'Height'#2#12#3'Top'#2#8
+#5'Width'#2'&'#0#0#9'TCheckBox'#22'BottomAnchoredCheckBox'#7'Caption'#6#7'En'
+'abled'#8'OnChange'#7#27'AnchorEnabledCheckBoxChange'#8'TabOrder'#2#0#11'Use'
,'OnChange'#9#4'Left'#2#2#6'Height'#2#24#5'Width'#2'F'#0#0#9'TComboBox'#21'Bo'
+'ttomSiblingComboBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#9'MaxLen'
+'gth'#2#0#8'OnChange'#7#21'SiblingComboBoxChange'#14'ParentShowHint'#8#8'Sho'
+'wHint'#9#8'TabOrder'#2#1#4'Text'#6#21'BottomSiblingComboBox'#4'Left'#3#158#0
+#6'Height'#2#25#5'Width'#3#129#0#0#0#0#9'TGroupBox'#13'RightGroupBox'#7'Anch'
+'ors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#7'Caption'#6#13'RightGroupBox'#12
+'ClientHeight'#2'p'#11'ClientWidth'#3#146#0#11'ParentColor'#9#8'TabOrder'#2#3
+#4'Left'#3'l'#1#6'Height'#3#129#0#3'Top'#2'@'#5'Width'#3#150#0#0#12'TSpeedBu'
+'tton'#23'RightRefLeftSpeedButton'#10'GroupIndex'#2#4#9'NumGlyphs'#2#0#7'OnC'
+'lick'#7#26'ReferenceSideButtonClicked'#8'ShowHint'#9#14'ParentShowHint'#8#4
+'Left'#2#5#6'Height'#2#30#3'Top'#2'Q'#5'Width'#2#30#0#0#12'TSpeedButton'#24
+'RightRefRightSpeedButton'#10'GroupIndex'#2#4#9'NumGlyphs'#2#0#7'OnClick'#7
+#26'ReferenceSideButtonClicked'#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#2
+'('#6'Height'#2#30#3'Top'#2'Q'#5'Width'#2#30#0#0#12'TSpeedButton'#25'RightRe'
+'fCenterSpeedButton'#10'GroupIndex'#2#4#9'NumGlyphs'#2#0#7'OnClick'#7#26'Ref'
+'erenceSideButtonClicked'#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#2'K'#6
+'Height'#2#30#3'Top'#2'Q'#5'Width'#2#30#0#0#6'TLabel'#17'RightSiblingLabel'#8
+'AutoSize'#9#7'Caption'#6#7'Sibling'#11'ParentColor'#9#4'Left'#2#2#6'Height'
+#2#12#3'Top'#2#28#5'Width'#2'&'#0#0#9'TCheckBox'#21'RightAnchoredCheckBox'#7
+'Caption'#6#7'Enabled'#8'OnChange'#7#27'AnchorEnabledCheckBoxChange'#8'TabOr'
+'der'#2#0#11'UseOnChange'#9#4'Left'#2#2#6'Height'#2#24#5'Width'#2'F'#0#0#9'T'
+'ComboBox'#20'RightSiblingComboBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRig'
+'ht'#0#9'MaxLength'#2#0#8'OnChange'#7#21'SiblingComboBoxChange'#14'ParentSho'
+'wHint'#8#8'ShowHint'#9#4'Text'#6#20'RightSiblingComboBox'#4'Left'#2#5#6'Hei'
+'ght'#2#25#3'Top'#2'1'#5'Width'#3#135#0#0#0#0#9'TGroupBox'#12'LeftGroupBox'#7
+'Anchors'#11#5'akTop'#6'akLeft'#8'akBottom'#0#7'Caption'#6#12'LeftGroupBox'
+#12'ClientHeight'#2'p'#11'ClientWidth'#3#146#0#11'ParentColor'#9#8'TabOrder'
+#2#4#4'Left'#2#8#6'Height'#3#129#0#3'Top'#2'@'#5'Width'#3#150#0#0#12'TSpeedB'
+'utton'#22'LeftRefLeftSpeedButton'#10'GroupIndex'#2#2#9'NumGlyphs'#2#0#7'OnC'
+'lick'#7#26'ReferenceSideButtonClicked'#8'ShowHint'#9#14'ParentShowHint'#8#4
+'Left'#2#5#6'Height'#2#30#3'Top'#2'Q'#5'Width'#2#30#0#0#12'TSpeedButton'#23
+'LeftRefRightSpeedButton'#10'GroupIndex'#2#2#9'NumGlyphs'#2#0#7'OnClick'#7#26
+'ReferenceSideButtonClicked'#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#2'('
+#6'Height'#2#30#3'Top'#2'Q'#5'Width'#2#30#0#0#12'TSpeedButton'#24'LeftRefCen'
+'terSpeedButton'#10'GroupIndex'#2#2#9'NumGlyphs'#2#0#7'OnClick'#7#26'Referen'
+'ceSideButtonClicked'#8'ShowHint'#9#14'ParentShowHint'#8#4'Left'#2'K'#6'Heig'
+'ht'#2#30#3'Top'#2'Q'#5'Width'#2#30#0#0#6'TLabel'#16'LeftSiblingLabel'#8'Aut'
+'oSize'#9#7'Caption'#6#7'Sibling'#11'ParentColor'#9#4'Left'#2#2#6'Height'#2
+#12#3'Top'#2#28#5'Width'#2'&'#0#0#9'TCheckBox'#20'LeftAnchoredCheckBox'#7'Ca'
+'ption'#6#7'Enabled'#8'OnChange'#7#27'AnchorEnabledCheckBoxChange'#8'TabOrde'
+'r'#2#0#11'UseOnChange'#9#4'Left'#2#2#6'Height'#2#24#5'Width'#2'F'#0#0#9'TCo'
+'mboBox'#19'LeftSiblingComboBox'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'
+#0#9'MaxLength'#2#0#8'OnChange'#7#21'SiblingComboBoxChange'#14'ParentShowHin'
+'t'#8#8'ShowHint'#9#4'Text'#6#19'LeftSiblingComboBox'#4'Left'#2#5#6'Height'#2
+#25#3'Top'#2'1'#5'Width'#3#134#0#0#0#0#0
]);

View File

@ -137,18 +137,22 @@ type
procedure AnchorDesignerDestroy(Sender: TObject);
procedure AnchorDesignerShow(Sender: TObject);
procedure AnchorEnabledCheckBoxChange(Sender: TObject);
procedure BorderSpaceSpinEditChange(Sender: TObject);
procedure SiblingComboBoxChange(Sender: TObject);
procedure ReferenceSideButtonClicked(Sender: TObject);
private
FSelection: TPersistentSelectionList;
FUpdating: Boolean;
protected
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
procedure FillComboBoxWithSiblings(AComboBox: TComboBox);
function AnchorDesignerNoSiblingText: string;
public
SrcTypeImageList: TImageList;
Values: TAnchorDesignerValues;
procedure Refresh(Force: boolean);
procedure OnRefreshPropertyValues;
function GetSelectedControls: TList;
function FindSibling(const Sibling: string): TControl;
class function ControlToStr(AControl: TControl): string;
procedure CollectValues(const ASelection: TList;
var TheValues: TAnchorDesignerValues;
@ -165,21 +169,6 @@ implementation
{ TAnchorDesigner }
procedure TAnchorDesigner.AnchorDesignerCreate(Sender: TObject);
function AddResImg(ImgList: TImageList; const ResName: string): integer;
var Bitmap: TBitmap;
begin
Bitmap:=TBitmap.Create;
if LazarusResources.Find(ResName)=nil then begin
DebugLn('TAnchorDesigner.AnchorDesignerCreate: ',
' WARNING: icon not found: "',ResName,'"');
Result:=-1;
exit;
end;
Bitmap.LoadFromLazarusResource(ResName);
Result:=ImgList.Add(Bitmap,nil);
end;
var
AnchorEnabledHint: String;
begin
@ -229,24 +218,19 @@ begin
TopSiblingComboBox.Hint:='This is the sibling control to which the top side is anchored. Leave empty for parent.';
TopSiblingLabel.Caption:='Sibling';
SrcTypeImageList:=TImageList.Create(Self);
with SrcTypeImageList do
begin
Name:='SrcTypeImageList';
Width:=25;
Height:=25;
//AddResImg(SrcTypeImageList,'anchorside_bottomtop');
//AddResImg(SrcTypeImageList,'anchorside_bottombottom');
//AddResImg(SrcTypeImageList,'anchorside_centervert');
//AddResImg(SrcTypeImageList,'anchorside_toptop');
//AddResImg(SrcTypeImageList,'anchorside_topbottom');
//AddResImg(SrcTypeImageList,'anchorside_leftleft');
//AddResImg(SrcTypeImageList,'anchorside_leftright');
//AddResImg(SrcTypeImageList,'anchorside_centerhorz');
//AddResImg(SrcTypeImageList,'anchorside_rightleft');
//AddResImg(SrcTypeImageList,'anchorside_rightright');
end;
LeftRefLeftSpeedButton.Glyph.LoadFromLazarusResource('anchorleftleft');
LeftRefCenterSpeedButton.Glyph.LoadFromLazarusResource('anchorcenterhorizontal');
LeftRefRightSpeedButton.Glyph.LoadFromLazarusResource('anchorleftright');
RightRefLeftSpeedButton.Glyph.LoadFromLazarusResource('anchorleftright');
RightRefCenterSpeedButton.Glyph.LoadFromLazarusResource('anchorcenterhorizontal');
RightRefRightSpeedButton.Glyph.LoadFromLazarusResource('anchorrightright');
TopRefTopSpeedButton.Glyph.LoadFromLazarusResource('anchortoptop');
TopRefCenterSpeedButton.Glyph.LoadFromLazarusResource('anchorcentervertical');
TopRefBottomSpeedButton.Glyph.LoadFromLazarusResource('anchortopbottom');
BottomRefTopSpeedButton.Glyph.LoadFromLazarusResource('anchortopbottom');
BottomRefCenterSpeedButton.Glyph.LoadFromLazarusResource('anchorcentervertical');
BottomRefBottomSpeedButton.Glyph.LoadFromLazarusResource('anchorbottombottom');
// autosizing
BottomSiblingLabel.AnchorToNeighbour(akLeft,10,BottomAnchoredCheckBox);
BottomSiblingComboBox.AnchorToNeighbour(akLeft,5,BottomSiblingLabel);
@ -283,7 +267,7 @@ var
CurControl: TControl;
begin
debugln('TAnchorDesigner.AnchorEnabledCheckBoxChange ',DbgSName(Sender),' ',dbgs(TCheckBox(Sender).Checked));
if Values=nil then exit;
if FUpdating or (Values=nil) then exit;
if Sender=LeftAnchoredCheckBox then
Kind:=akLeft
else if Sender=RightAnchoredCheckBox then
@ -313,6 +297,170 @@ begin
end;
end;
procedure TAnchorDesigner.BorderSpaceSpinEditChange(Sender: TObject);
var
Around: Boolean;
NewValue: LongInt;
CurSide: TAnchorDesignerSideValues;
SelectedControls: TList;
i: Integer;
CurControl: TControl;
Kind: TAnchorKind;
begin
debugln('TAnchorDesigner.BorderSpaceSpinEditChange ',DbgSName(Sender),' ',dbgs(TSpinEdit(Sender).Value));
if FUpdating or (Values=nil) then exit;
Around:=false;
if Sender=LeftBorderSpaceSpinEdit then
Kind:=akLeft
else if Sender=RightBorderSpaceSpinEdit then
Kind:=akRight
else if Sender=TopBorderSpaceSpinEdit then
Kind:=akTop
else if Sender=BottomBorderSpaceSpinEdit then
Kind:=akBottom
else if Sender=AroundBorderSpaceSpinEdit then begin
Kind:=akLeft;
Around:=true;
end else
exit;
NewValue:=RoundToInt(TSpinEdit(Sender).Value);
CurSide:=Values.Sides[Kind];
if (Around and (Values.AmbigiousBorderspaceAround
or (Values.BorderspaceAround<>NewValue)))
or ((not Around) and (CurSide.AmbigiousBorderSpace
or (CurSide.BorderSpace<>NewValue)))
then begin
debugln('TAnchorDesigner.BorderSpaceSpinEditChange ',DbgSName(Sender),' NewValue=',dbgs(NewValue));
// user changed a BorderSpace
SelectedControls:=GetSelectedControls;
if SelectedControls=nil then exit;
for i:=0 to SelectedControls.Count-1 do begin
CurControl:=TControl(SelectedControls[i]);
if Around then
CurControl.BorderSpacing.Around:=NewValue
else
CurControl.BorderSpacing.Space[Kind]:=NewValue;
end;
GlobalDesignHook.RefreshPropertyValues;
end;
end;
procedure TAnchorDesigner.SiblingComboBoxChange(Sender: TObject);
var
Kind: TAnchorKind;
NewSibling: TControl;
CurSide: TAnchorDesignerSideValues;
SelectedControls: TList;
i: Integer;
CurControl: TControl;
NewValue: String;
begin
debugln('TAnchorDesigner.SiblingComboBoxChange ',DbgSName(Sender),' ',TComboBox(Sender).Text);
if FUpdating or (Values=nil) then exit;
if Sender=LeftSiblingComboBox then
Kind:=akLeft
else if Sender=RightSiblingComboBox then
Kind:=akRight
else if Sender=TopSiblingComboBox then
Kind:=akTop
else if Sender=BottomSiblingComboBox then
Kind:=akBottom
else
exit;
NewValue:=TComboBox(Sender).Caption;
CurSide:=Values.Sides[Kind];
if CurSide.AmbigiousSibling or (CompareText(CurSide.Sibling,NewValue)<>0) then
begin
NewSibling:=FindSibling(NewValue);
if NewSibling=nil then exit;
debugln('TAnchorDesigner.SiblingComboBoxChange ',DbgSName(Sender),' NewSibling=',DbgSName(NewSibling));
// user changed a sibling
SelectedControls:=GetSelectedControls;
if SelectedControls=nil then exit;
for i:=0 to SelectedControls.Count-1 do begin
CurControl:=TControl(SelectedControls[i]);
CurControl.AnchorSide[Kind].Control:=NewSibling;
end;
GlobalDesignHook.RefreshPropertyValues;
end;
end;
procedure TAnchorDesigner.ReferenceSideButtonClicked(Sender: TObject);
var
CurSide: TAnchorDesignerSideValues;
Kind: TAnchorKind;
Side: TAnchorSideReference;
SelectedControls: TList;
i: Integer;
CurControl: TControl;
begin
debugln('TAnchorDesigner.ReferenceSideButtonClicked ',DbgSName(Sender),' ',dbgs(TSpeedButton(Sender).Down));
if FUpdating or (Values=nil) then exit;
if Sender=LeftRefCenterSpeedButton then begin
Kind:=akLeft;
Side:=asrCenter;
end
else if Sender=LeftRefLeftSpeedButton then begin
Kind:=akLeft;
Side:=asrLeft;
end
else if Sender=LeftRefRightSpeedButton then begin
Kind:=akLeft;
Side:=asrRight;
end
else if Sender=RightRefCenterSpeedButton then begin
Kind:=akRight;
Side:=asrCenter;
end
else if Sender=RightRefLeftSpeedButton then begin
Kind:=akRight;
Side:=asrLeft;
end
else if Sender=RightRefRightSpeedButton then begin
Kind:=akRight;
Side:=asrRight;
end
else if Sender=TopRefCenterSpeedButton then begin
Kind:=akTop;
Side:=asrCenter;
end
else if Sender=TopRefTopSpeedButton then begin
Kind:=akTop;
Side:=asrTop;
end
else if Sender=TopRefBottomSpeedButton then begin
Kind:=akTop;
Side:=asrBottom;
end
else if Sender=BottomRefCenterSpeedButton then begin
Kind:=akBottom;
Side:=asrCenter;
end
else if Sender=BottomRefTopSpeedButton then begin
Kind:=akBottom;
Side:=asrTop;
end
else if Sender=BottomRefBottomSpeedButton then begin
Kind:=akBottom;
Side:=asrBottom;
end else
exit;
if not TSpeedButton(Sender).Down then exit;
CurSide:=Values.Sides[Kind];
if CurSide.AmbigiousSide or (CurSide.Side<>Side) then
begin
debugln('TAnchorDesigner.ReferenceSideButtonClicked ',DbgSName(Sender));
// user changed a sibling
SelectedControls:=GetSelectedControls;
if SelectedControls=nil then exit;
for i:=0 to SelectedControls.Count-1 do begin
CurControl:=TControl(SelectedControls[i]);
CurControl.AnchorSide[Kind].Side:=Side;
end;
GlobalDesignHook.RefreshPropertyValues;
end;
end;
procedure TAnchorDesigner.KeyUp(var Key: Word; Shift: TShiftState);
begin
inherited KeyUp(Key, Shift);
@ -367,119 +515,125 @@ begin
// check if uddate is needed
if not Visible then exit;
end;
FreeAndNil(Values);
CurSelection:=GetSelectedControls;
CollectValues(CurSelection,Values,SelectedControlCount);
//debugln('TAnchorDesigner.Refresh B ',dbgs(SelectedControlCount));
if FUpdating then exit;
FUpdating:=true;
try
FreeAndNil(Values);
CurSelection:=GetSelectedControls;
CollectValues(CurSelection,Values,SelectedControlCount);
//debugln('TAnchorDesigner.Refresh B ',dbgs(SelectedControlCount));
if (Values=nil) then begin
Caption:='Anchor Editor - no control selected';
BorderSpaceGroupBox.Enabled:=false;
TopGroupBox.Enabled:=false;
LeftGroupBox.Enabled:=false;
RightGroupBox.Enabled:=false;
BottomGroupBox.Enabled:=false;
end else begin
Caption:='Anchors of selected controls';
if (Values=nil) then begin
Caption:='Anchor Editor - no control selected';
BorderSpaceGroupBox.Enabled:=false;
TopGroupBox.Enabled:=false;
LeftGroupBox.Enabled:=false;
RightGroupBox.Enabled:=false;
BottomGroupBox.Enabled:=false;
end else begin
Caption:='Anchors of selected controls';
// all
BorderSpaceGroupBox.Enabled:=true;
if Values.AmbigiousBorderspaceAround then
AroundBorderSpaceSpinEdit.Value:=-1
else
AroundBorderSpaceSpinEdit.Value:=Values.BorderspaceAround;
// all
BorderSpaceGroupBox.Enabled:=true;
if Values.AmbigiousBorderspaceAround then
AroundBorderSpaceSpinEdit.Value:=-1
else
AroundBorderSpaceSpinEdit.Value:=Values.BorderspaceAround;
// Top
TopGroupBox.Enabled:=true;
CurSide:=Values.Sides[akTop];
TopAnchoredCheckBox.AllowGrayed:=CurSide.AmbigiousEnabled;
if CurSide.AmbigiousEnabled then
TopAnchoredCheckBox.State:=cbGrayed
else
TopAnchoredCheckBox.Checked:=CurSide.Enabled;
if CurSide.AmbigiousBorderSpace then
TopBorderSpaceSpinEdit.Value:=-1
else
TopBorderSpaceSpinEdit.Value:=CurSide.BorderSpace;
TopBorderSpaceSpinEdit.ValueEmpty:=CurSide.AmbigiousBorderSpace;
Sibling:=CurSide.Sibling;
TopSiblingComboBox.Text:=Sibling;
FillComboBoxWithSiblings(TopSiblingComboBox);
TopRefBottomSpeedButton.Enabled:=Sibling<>'';
TopRefBottomSpeedButton.Down:=(CurSide.Side=asrBottom);
TopRefCenterSpeedButton.Enabled:=Sibling<>'';
TopRefCenterSpeedButton.Down:=(CurSide.Side=asrCenter);
TopRefTopSpeedButton.Enabled:=Sibling<>'';
TopRefTopSpeedButton.Down:=(CurSide.Side=asrTop);
// Top
TopGroupBox.Enabled:=true;
CurSide:=Values.Sides[akTop];
TopAnchoredCheckBox.AllowGrayed:=CurSide.AmbigiousEnabled;
if CurSide.AmbigiousEnabled then
TopAnchoredCheckBox.State:=cbGrayed
else
TopAnchoredCheckBox.Checked:=CurSide.Enabled;
if CurSide.AmbigiousBorderSpace then
TopBorderSpaceSpinEdit.Value:=-1
else
TopBorderSpaceSpinEdit.Value:=CurSide.BorderSpace;
TopBorderSpaceSpinEdit.ValueEmpty:=CurSide.AmbigiousBorderSpace;
Sibling:=CurSide.Sibling;
TopSiblingComboBox.Text:=Sibling;
FillComboBoxWithSiblings(TopSiblingComboBox);
TopRefBottomSpeedButton.Enabled:=Sibling<>'';
TopRefBottomSpeedButton.Down:=(CurSide.Side=asrBottom);
TopRefCenterSpeedButton.Enabled:=Sibling<>'';
TopRefCenterSpeedButton.Down:=(CurSide.Side=asrCenter);
TopRefTopSpeedButton.Enabled:=Sibling<>'';
TopRefTopSpeedButton.Down:=(CurSide.Side=asrTop);
// Bottom
BottomGroupBox.Enabled:=true;
CurSide:=Values.Sides[akBottom];
BottomAnchoredCheckBox.AllowGrayed:=CurSide.AmbigiousEnabled;
if CurSide.AmbigiousEnabled then
BottomAnchoredCheckBox.State:=cbGrayed
else
BottomAnchoredCheckBox.Checked:=CurSide.Enabled;
if CurSide.AmbigiousBorderSpace then
BottomBorderSpaceSpinEdit.Value:=-1
else
BottomBorderSpaceSpinEdit.Value:=CurSide.BorderSpace;
BottomBorderSpaceSpinEdit.ValueEmpty:=CurSide.AmbigiousBorderSpace;
Sibling:=CurSide.Sibling;
BottomSiblingComboBox.Text:=Sibling;
FillComboBoxWithSiblings(BottomSiblingComboBox);
BottomRefBottomSpeedButton.Enabled:=Sibling<>'';
BottomRefBottomSpeedButton.Down:=(CurSide.Side=asrBottom);
BottomRefCenterSpeedButton.Enabled:=Sibling<>'';
BottomRefCenterSpeedButton.Down:=(CurSide.Side=asrCenter);
BottomRefTopSpeedButton.Enabled:=Sibling<>'';
BottomRefTopSpeedButton.Down:=(CurSide.Side=asrTop);
// Bottom
BottomGroupBox.Enabled:=true;
CurSide:=Values.Sides[akBottom];
BottomAnchoredCheckBox.AllowGrayed:=CurSide.AmbigiousEnabled;
if CurSide.AmbigiousEnabled then
BottomAnchoredCheckBox.State:=cbGrayed
else
BottomAnchoredCheckBox.Checked:=CurSide.Enabled;
if CurSide.AmbigiousBorderSpace then
BottomBorderSpaceSpinEdit.Value:=-1
else
BottomBorderSpaceSpinEdit.Value:=CurSide.BorderSpace;
BottomBorderSpaceSpinEdit.ValueEmpty:=CurSide.AmbigiousBorderSpace;
Sibling:=CurSide.Sibling;
BottomSiblingComboBox.Text:=Sibling;
FillComboBoxWithSiblings(BottomSiblingComboBox);
BottomRefBottomSpeedButton.Enabled:=Sibling<>'';
BottomRefBottomSpeedButton.Down:=(CurSide.Side=asrBottom);
BottomRefCenterSpeedButton.Enabled:=Sibling<>'';
BottomRefCenterSpeedButton.Down:=(CurSide.Side=asrCenter);
BottomRefTopSpeedButton.Enabled:=Sibling<>'';
BottomRefTopSpeedButton.Down:=(CurSide.Side=asrTop);
// Left
LeftGroupBox.Enabled:=true;
CurSide:=Values.Sides[akLeft];
LeftAnchoredCheckBox.AllowGrayed:=CurSide.AmbigiousEnabled;
if CurSide.AmbigiousEnabled then
LeftAnchoredCheckBox.State:=cbGrayed
else
LeftAnchoredCheckBox.Checked:=CurSide.Enabled;
if CurSide.AmbigiousBorderSpace then
LeftBorderSpaceSpinEdit.Value:=-1
else
LeftBorderSpaceSpinEdit.Value:=CurSide.BorderSpace;
LeftBorderSpaceSpinEdit.ValueEmpty:=CurSide.AmbigiousBorderSpace;
Sibling:=CurSide.Sibling;
LeftSiblingComboBox.Text:=Sibling;
FillComboBoxWithSiblings(LeftSiblingComboBox);
LeftRefRightSpeedButton.Enabled:=Sibling<>'';
LeftRefRightSpeedButton.Down:=(CurSide.Side=asrBottom);
LeftRefCenterSpeedButton.Enabled:=Sibling<>'';
LeftRefCenterSpeedButton.Down:=(CurSide.Side=asrCenter);
LeftRefLeftSpeedButton.Enabled:=Sibling<>'';
LeftRefLeftSpeedButton.Down:=(CurSide.Side=asrTop);
// Left
LeftGroupBox.Enabled:=true;
CurSide:=Values.Sides[akLeft];
LeftAnchoredCheckBox.AllowGrayed:=CurSide.AmbigiousEnabled;
if CurSide.AmbigiousEnabled then
LeftAnchoredCheckBox.State:=cbGrayed
else
LeftAnchoredCheckBox.Checked:=CurSide.Enabled;
if CurSide.AmbigiousBorderSpace then
LeftBorderSpaceSpinEdit.Value:=-1
else
LeftBorderSpaceSpinEdit.Value:=CurSide.BorderSpace;
LeftBorderSpaceSpinEdit.ValueEmpty:=CurSide.AmbigiousBorderSpace;
Sibling:=CurSide.Sibling;
LeftSiblingComboBox.Text:=Sibling;
FillComboBoxWithSiblings(LeftSiblingComboBox);
LeftRefRightSpeedButton.Enabled:=Sibling<>'';
LeftRefRightSpeedButton.Down:=(CurSide.Side=asrBottom);
LeftRefCenterSpeedButton.Enabled:=Sibling<>'';
LeftRefCenterSpeedButton.Down:=(CurSide.Side=asrCenter);
LeftRefLeftSpeedButton.Enabled:=Sibling<>'';
LeftRefLeftSpeedButton.Down:=(CurSide.Side=asrTop);
// Right
RightGroupBox.Enabled:=true;
CurSide:=Values.Sides[akRight];
RightAnchoredCheckBox.AllowGrayed:=CurSide.AmbigiousEnabled;
if CurSide.AmbigiousEnabled then
RightAnchoredCheckBox.State:=cbGrayed
else
RightAnchoredCheckBox.Checked:=CurSide.Enabled;
if CurSide.AmbigiousBorderSpace then
RightBorderSpaceSpinEdit.Value:=-1
else
RightBorderSpaceSpinEdit.Value:=CurSide.BorderSpace;
RightBorderSpaceSpinEdit.ValueEmpty:=CurSide.AmbigiousBorderSpace;
Sibling:=CurSide.Sibling;
RightSiblingComboBox.Text:=Sibling;
FillComboBoxWithSiblings(RightSiblingComboBox);
RightRefRightSpeedButton.Enabled:=Sibling<>'';
RightRefRightSpeedButton.Down:=(CurSide.Side=asrBottom);
RightRefCenterSpeedButton.Enabled:=Sibling<>'';
RightRefCenterSpeedButton.Down:=(CurSide.Side=asrCenter);
RightRefLeftSpeedButton.Enabled:=Sibling<>'';
RightRefLeftSpeedButton.Down:=(CurSide.Side=asrTop);
// Right
RightGroupBox.Enabled:=true;
CurSide:=Values.Sides[akRight];
RightAnchoredCheckBox.AllowGrayed:=CurSide.AmbigiousEnabled;
if CurSide.AmbigiousEnabled then
RightAnchoredCheckBox.State:=cbGrayed
else
RightAnchoredCheckBox.Checked:=CurSide.Enabled;
if CurSide.AmbigiousBorderSpace then
RightBorderSpaceSpinEdit.Value:=-1
else
RightBorderSpaceSpinEdit.Value:=CurSide.BorderSpace;
RightBorderSpaceSpinEdit.ValueEmpty:=CurSide.AmbigiousBorderSpace;
Sibling:=CurSide.Sibling;
RightSiblingComboBox.Text:=Sibling;
FillComboBoxWithSiblings(RightSiblingComboBox);
RightRefRightSpeedButton.Enabled:=Sibling<>'';
RightRefRightSpeedButton.Down:=(CurSide.Side=asrBottom);
RightRefCenterSpeedButton.Enabled:=Sibling<>'';
RightRefCenterSpeedButton.Down:=(CurSide.Side=asrCenter);
RightRefLeftSpeedButton.Enabled:=Sibling<>'';
RightRefLeftSpeedButton.Down:=(CurSide.Side=asrTop);
end;
finally
FUpdating:=false;
end;
end;
@ -508,6 +662,29 @@ begin
end;
end;
function TAnchorDesigner.FindSibling(const Sibling: string): TControl;
var
Root: TPersistent;
RootComponent: TComponent;
i: Integer;
CurComponent: TComponent;
CurControl: TControl;
begin
Root:=GlobalDesignHook.LookupRoot;
if not (Root is TComponent) then exit;
RootComponent:=TComponent(Root);
for i:=0 to RootComponent.ComponentCount-1 do begin
CurComponent:=TComponent(RootComponent.Components[i]);
if CurComponent is TControl then begin
CurControl:=TControl(CurComponent);
if CompareText(Sibling,ControlToStr(CurControl))=0 then begin
Result:=CurControl;
exit;
end;
end;
end;
end;
function TAnchorDesigner.ControlToStr(AControl: TControl): string;
begin
if AControl=nil then

View File

@ -52,7 +52,7 @@ cd <lazarusdir>/images/
6. laz_images.lrs
cd <lazarusdir>/images/
../tools/lazres laz_images.lrs btn_*.xpm pkg_*.xpm menu/menu_*.xpm codeexplorer/*.xpm
../tools/lazres laz_images.lrs btn_*.xpm pkg_*.xpm menu/menu_*.xpm codeexplorer/*.xpm designer/*.xpm
7. splash.lrs

View File

@ -0,0 +1,64 @@
/* XPM */
static char * anchorbottombottom_xpm[] = {
"26 26 35 1",
" c None",
". c #FFFFFF",
"+ c #C1C1C1",
"@ c #BCBCBC",
"# c #BDBDBD",
"$ c #CCCCCC",
"% c #BFBFBF",
"& c #BABABA",
"* c #808080",
"= c #000000",
"- c #F4F4F4",
"; c #C8C8C8",
"> c #BEBEBE",
", c #C6C6C6",
"' c #C0C0C0",
") c #C7C7C7",
"! c #C4C4C4",
"~ c #F8F8F8",
"{ c #C5C5C5",
"] c #BBBBBB",
"^ c #B9B9B9",
"/ c #FEFEFE",
"( c #7C7C7C",
"_ c #8B8B8B",
": c #767676",
"< c #828282",
"[ c #878787",
"} c #7A7A7A",
"| c #7F7F7F",
"1 c #888888",
"2 c #7D7D7D",
"3 c #898989",
"4 c #020202",
"5 c #050505",
"6 c #010101",
" .+@#$%&%+%*= .+@#$%&%+%*=",
" -;>,>+&%+%*= -;>,>+&%+%*=",
" .@+''+)!+%*= .@+''+)!+%*=",
" .@+''+)!+%*= .@+''+)!+%*=",
" ~%{]!+#^+%*= ~%{]!+#^+%*=",
" ~%{]%+!'+%*= ~%{]%+!'+%*=",
" .@+''+^!+%*= .@+''+^!+%*=",
" -;>,!+#^+%*= -;>,!+#^+%*=",
" ~%{]!+#^+%*= ~%{]!+#^+%*=",
" ~%{]%+!'+%*= ~%{]%+!'+%*=",
" .+@#{+%@+%*= .+@#{+%@+%*=",
" /(_:<[}|123= /(_:<[}|123=",
" =4=5=6===4= =4=5=6===4= ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" "};

View File

@ -0,0 +1,71 @@
/* XPM */
static char * anchorcenterhorizontal_xpm[] = {
"26 26 42 1",
" c None",
". c #F4F4F4",
"+ c #C8C8C8",
"@ c #BEBEBE",
"# c #C6C6C6",
"$ c #B8B8B8",
"% c #C1C1C1",
"& c #BFBFBF",
"* c #808080",
"= c #000000",
"- c #FFFFFF",
"; c #BCBCBC",
"> c #C0C0C0",
", c #BDBDBD",
"' c #F8F8F8",
") c #C5C5C5",
"! c #BBBBBB",
"~ c #CFCFCF",
"{ c #BABABA",
"] c #FEFEFE",
"^ c #7C7C7C",
"/ c #8B8B8B",
"( c #767676",
"_ c #828282",
": c #878787",
"< c #7A7A7A",
"[ c #7F7F7F",
"} c #888888",
"| c #7D7D7D",
"1 c #898989",
"2 c #020202",
"3 c #050505",
"4 c #010101",
"5 c #EFEFEF",
"6 c #F0F0F0",
"7 c #FCFCFC",
"8 c #030303",
"9 c #C7C7C7",
"0 c #C4C4C4",
"a c #B9B9B9",
"b c #B6B6B6",
"c c #B7B7B7",
" .+@#$+@#$%&*= ",
" -;%>,;%>,%&*= ",
" '&)!%&)!%%&*= ",
" '&)!%&)!%%&*= ",
" -;%>,;%>,%&*= ",
" .+@#$+@#$%&*= ",
" -%;,)%;,)%&*= ",
" -%;,)%&~{%&*= ",
" ]^/(_:<[[}|1= ",
" =2=3=4====2= ",
" ",
" ",
" ",
" ",
" ",
" ",
" '-5--6-----------7-8 ",
" -%;,)%&%&90%%&&%%&*= ",
" .+@#$90%%,a%%&0%%&*= ",
" -;%>,,a%%0>%%&a%%&*= ",
" '&)!%0>%%)@%%&>%%&*= ",
" '&)!%)@%%,>%%&@%%&*= ",
" -;%>,,>%%a0%%&>%%&*= ",
" .+@#$a0%%~{%%&0%%&*= ",
" -%;,)~{%%&>#b~{%%&*= ",
" -%;,)%&;+c>#b~{%%&*= "};

View File

@ -0,0 +1,71 @@
/* XPM */
static char * anchorcentervertical_xpm[] = {
"26 26 42 1",
" c None",
". c #FFFFFF",
"+ c #FCFCFC",
"@ c #030303",
"# c #C7C7C7",
"$ c #C4C4C4",
"% c #C1C1C1",
"& c #BFBFBF",
"* c #808080",
"= c #000000",
"- c #BDBDBD",
"; c #B9B9B9",
"> c #C0C0C0",
", c #F8F8F8",
"' c #EFEFEF",
") c #F0F0F0",
"! c #C5C5C5",
"~ c #BEBEBE",
"{ c #BCBCBC",
"] c #F4F4F4",
"^ c #C8C8C8",
"/ c #C6C6C6",
"( c #B8B8B8",
"_ c #CFCFCF",
": c #BABABA",
"< c #BBBBBB",
"[ c #B6B6B6",
"} c #B7B7B7",
"| c #FEFEFE",
"1 c #7C7C7C",
"2 c #8B8B8B",
"3 c #767676",
"4 c #828282",
"5 c #878787",
"6 c #7A7A7A",
"7 c #7F7F7F",
"8 c #020202",
"9 c #050505",
"0 c #010101",
"a c #888888",
"b c #7D7D7D",
"c c #898989",
" ",
" ",
" ",
"........+.@ ",
"#$%%&&%%&*= ",
"-;%%&$%%&*= ",
"$>%%&;%%&*= ,.'..)....",
"!~%%&>%%&*= .%{-!%&%&~",
"->%%&~%%&*= ]^~/(^~/(^",
";$%%&>%%&*= .{%>-{%>-{",
"_:%%&$%%&*= ,&!<%&!<%&",
"&>/[_:%%&*= ,&!<%&!<%&",
"}>/[_:%%&*= .{%>-{%>-{",
"-;%%&$%%&*= ]^~/(^~/(^",
"$>%%&;%%&*= .%{-!%{-!%",
"!~%%&>%%&*= .%{-!%&{^}",
"->%%&~%%&*= .%{-!%{-!%",
";$%%&>%%&*= .%{-!%&{^}",
"_:%%&$%%&*= |123456777",
"&>/[_:%%&*= =8=9=0====",
"^}>/[_:%&*= ",
"7777777abc= ",
"========8= ",
" ",
" ",
" "};

View File

@ -0,0 +1,60 @@
/* XPM */
static char * anchorleftleft_xpm[] = {
"26 26 31 1",
" c None",
". c #F8F8F8",
"+ c #FFFFFF",
"@ c #EFEFEF",
"# c #FCFCFC",
"$ c #C1C1C1",
"% c #BCBCBC",
"& c #BBBBBB",
"* c #CCCCCC",
"= c #BFBFBF",
"- c #BABABA",
"; c #F4F4F4",
"> c #C8C8C8",
", c #BEBEBE",
"' c #C0C0C0",
") c #C7C7C7",
"! c #C4C4C4",
"~ c #C5C5C5",
"{ c #BDBDBD",
"] c #B9B9B9",
"^ c #C6C6C6",
"/ c #B6B6B6",
"( c #CFCFCF",
"_ c #FEFEFE",
": c #7C7C7C",
"< c #8B8B8B",
"[ c #7F7F7F",
"} c #888888",
"| c #7D7D7D",
"1 c #000000",
"2 c #020202",
" ",
" .+@++++++++#",
" +$%&*=-=-=$=",
" ;>,,,$-=-=$=",
" +%$''$)!)!$=",
" .=~!!${]{]$=",
" .=~==$!'!'$=",
" +%$''$]!]!$=",
" +%$''${'{'$=",
" ;>,,,$]!]!$=",
" +$%'^/(-(-$=",
" _:<[[[[[[[}|",
" 121111111112",
" ",
" .+@++++++++#",
" +$%&*=-=-=$=",
" ;>,,,$-=-=$=",
" +%$''$)!)!$=",
" .=~!!${]{]$=",
" .=~==$!'!'$=",
" +%$''$]!]!$=",
" +%$''${'{'$=",
" ;>,,,$]!]!$=",
" +$%'^/(-(-$=",
" _:<[[[[[[[}|",
" 121111111112"};

View File

@ -0,0 +1,71 @@
/* XPM */
static char * anchorleftright_xpm[] = {
"26 26 42 1",
" c None",
". c #FFFFFF",
"+ c #FCFCFC",
"@ c #030303",
"# c #F8F8F8",
"$ c #EFEFEF",
"% c #F0F0F0",
"& c #C7C7C7",
"* c #C4C4C4",
"= c #C1C1C1",
"- c #BFBFBF",
"; c #808080",
"> c #000000",
", c #BCBCBC",
"' c #BDBDBD",
") c #C5C5C5",
"! c #BEBEBE",
"~ c #B9B9B9",
"{ c #F4F4F4",
"] c #C8C8C8",
"^ c #C6C6C6",
"/ c #B8B8B8",
"( c #C0C0C0",
"_ c #BBBBBB",
": c #CFCFCF",
"< c #BABABA",
"[ c #B6B6B6",
"} c #B7B7B7",
"| c #7F7F7F",
"1 c #888888",
"2 c #7D7D7D",
"3 c #898989",
"4 c #FEFEFE",
"5 c #7C7C7C",
"6 c #8B8B8B",
"7 c #767676",
"8 c #828282",
"9 c #878787",
"0 c #7A7A7A",
"a c #020202",
"b c #050505",
"c c #010101",
" ",
" ",
" ",
"........+.@ #.$..%....",
"&*==--==-;> .=,')=-=-!",
"'~==-*==-;> {]!^/]!^/]",
"*(==-~==-;> .,=(',=(',",
")!==-(==-;> #-)_=-)_=-",
"'(==-!==-;> #-)_=-)_=-",
"~*==-(==-;> .,=(',=(',",
":<==-*==-;> {]!^/]!^/]",
"-(^[:<==-;> .=,')=,')=",
"}(^[:<==-;> .=,')=-,]}",
"'~==-*==-;> {]!^/]!^/]",
"*(==-~==-;> .,=(',=(',",
")!==-(==-;> #-)_=-)_=-",
"'(==-!==-;> #-)_=-)_=-",
"~*==-(==-;> .,=(',=(',",
":<==-*==-;> {]!^/]!^/]",
"-(^[:<==-;> .=,')=,')=",
"]}(^[:<=-;> .=,')=-,]}",
"|||||||123> 4567890|||",
">>>>>>>>a> >a>b>c>>>>",
" ",
" ",
" "};

View File

@ -0,0 +1,56 @@
/* XPM */
static char * anchorrightright_xpm[] = {
"26 26 27 1",
" c None",
". c #FFFFFF",
"+ c #FCFCFC",
"@ c #030303",
"# c #BEBEBE",
"$ c #BBBBBB",
"% c #CCCCCC",
"& c #BFBFBF",
"* c #BABABA",
"= c #C1C1C1",
"- c #808080",
"; c #000000",
"> c #C5C5C5",
", c #BDBDBD",
"' c #C0C0C0",
") c #C7C7C7",
"! c #C4C4C4",
"~ c #B9B9B9",
"{ c #B7B7B7",
"] c #C6C6C6",
"^ c #B6B6B6",
"/ c #CFCFCF",
"( c #7F7F7F",
"_ c #888888",
": c #7D7D7D",
"< c #898989",
"[ c #020202",
" ",
".......+.@ ",
"#$%&*&=&-; ",
">##=*&=&-; ",
",''=)!=&-; ",
"~!!=,~=&-; ",
"*&&=!'=&-; ",
"!''=~!=&-; ",
"!''=,'=&-; ",
">##=~!=&-; ",
"{']^/*=&-; ",
"((((((_:<; ",
";;;;;;;[;; ",
" ",
".......+.@ ",
"#$%&*&=&-; ",
">##=*&=&-; ",
",''=)!=&-; ",
"~!!=,~=&-; ",
"*&&=!'=&-; ",
"!''=~!=&-; ",
"!''=,'=&-; ",
">##=~!=&-; ",
"{']^/*=&-; ",
"((((((_:<; ",
";;;;;;;[;; "};

View File

@ -0,0 +1,71 @@
/* XPM */
static char * anchortopbottom_xpm[] = {
"26 26 42 1",
" c None",
". c #F4F4F4",
"+ c #C8C8C8",
"@ c #BEBEBE",
"# c #C6C6C6",
"$ c #B8B8B8",
"% c #C1C1C1",
"& c #BFBFBF",
"* c #808080",
"= c #000000",
"- c #FFFFFF",
"; c #BCBCBC",
"> c #C0C0C0",
", c #BDBDBD",
"' c #F8F8F8",
") c #C5C5C5",
"! c #BBBBBB",
"~ c #B7B7B7",
"{ c #B6B6B6",
"] c #CFCFCF",
"^ c #BABABA",
"/ c #FEFEFE",
"( c #7C7C7C",
"_ c #8B8B8B",
": c #767676",
"< c #828282",
"[ c #878787",
"} c #7A7A7A",
"| c #7F7F7F",
"1 c #888888",
"2 c #7D7D7D",
"3 c #898989",
"4 c #020202",
"5 c #050505",
"6 c #010101",
"7 c #EFEFEF",
"8 c #F0F0F0",
"9 c #FCFCFC",
"0 c #030303",
"a c #C7C7C7",
"b c #C4C4C4",
"c c #B9B9B9",
" .+@#$+@#$+@#+@#$%&*= ",
" -;%>,;%>,;%>;%>,%&*= ",
" '&)!%&)!%&)!&)!%%&*= ",
" '&)!%&)!%&)!&)!%%&*= ",
" -;%>,;%>,;%>;%>,%&*= ",
" .+@#$+@#$+@#+@#$%&*= ",
" -%;,)%;,)%;,%;,)%&*= ",
" -%;,)%&;+~~>#{]^%&*= ",
" /(_:<[}|||||||||123= ",
" =4=5=6===========4= ",
" ",
" ",
" ",
" ",
" ",
" ",
" '-7--8-----------9-0 ",
" -%;,)%&%&ab%%&&%%&*= ",
" .+@#$ab%%,c%%&b%%&*= ",
" -;%>,,c%%b>%%&c%%&*= ",
" '&)!%b>%%)@%%&>%%&*= ",
" '&)!%)@%%,>%%&@%%&*= ",
" -;%>,,>%%cb%%&>%%&*= ",
" .+@#$cb%%]^%%&b%%&*= ",
" -%;,)]^%%&>#{]^%%&*= ",
" -%;,)%&;+~>#{]^%%&*= "};

View File

@ -0,0 +1,53 @@
/* XPM */
static char * anchortoptop_xpm[] = {
"26 26 24 1",
" c None",
". c #F8F8F8",
"+ c #FFFFFF",
"@ c #EFEFEF",
"# c #FCFCFC",
"$ c #030303",
"% c #C1C1C1",
"& c #BCBCBC",
"* c #BDBDBD",
"= c #CCCCCC",
"- c #BFBFBF",
"; c #BABABA",
"> c #808080",
", c #000000",
"' c #F4F4F4",
") c #C8C8C8",
"! c #BEBEBE",
"~ c #C6C6C6",
"{ c #C0C0C0",
"] c #C7C7C7",
"^ c #C4C4C4",
"/ c #C5C5C5",
"( c #BBBBBB",
"_ c #B9B9B9",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
".+@++++++#+$ .+@++++++#+$ ",
"+%&*=-;-%->, +%&*=-;-%->, ",
"')!~!%;-%->, ')!~!%;-%->, ",
"+&%{{%]^%->, +&%{{%]^%->, ",
".-/(^%*_%->, .-/(^%*_%->, ",
".-/(-%^{%->, .-/(-%^{%->, ",
"+&%{{%_^%->, +&%{{%_^%->, ",
"')!~^%*_%->, ')!~^%*_%->, ",
".-/(^%*_%->, .-/(^%*_%->, ",
".-/(-%^{%->, .-/(-%^{%->, ",
"+&%{{%_^%->, +&%{{%_^%->, ",
"')!~^%*_%->, ')!~^%*_%->, "};

View File

@ -2367,3 +2367,211 @@ LazarusResources.Add('ce_variable','XPM',[
+'.-.;.>.>. ",'#10'" ,.''.).!.~.{.].>.>.>. ",'#10'" ^.>'
+'.>.>.>.>.>.>. ",'#10'" "};'#10
]);
LazarusResources.Add('anchorbottombottom','XPM',[
'/* XPM */'#10'static char * anchorbottombottom_xpm[] = {'#10'"26 26 35 1",'
+#10'" '#9'c None",'#10'".'#9'c #FFFFFF",'#10'"+'#9'c #C1C1C1",'#10'"@'#9'c #'
+'BCBCBC",'#10'"#'#9'c #BDBDBD",'#10'"$'#9'c #CCCCCC",'#10'"%'#9'c #BFBFBF",'
+#10'"&'#9'c #BABABA",'#10'"*'#9'c #808080",'#10'"='#9'c #000000",'#10'"-'#9
+'c #F4F4F4",'#10'";'#9'c #C8C8C8",'#10'">'#9'c #BEBEBE",'#10'",'#9'c #C6C6C6'
+'",'#10'"'''#9'c #C0C0C0",'#10'")'#9'c #C7C7C7",'#10'"!'#9'c #C4C4C4",'#10'"'
+'~'#9'c #F8F8F8",'#10'"{'#9'c #C5C5C5",'#10'"]'#9'c #BBBBBB",'#10'"^'#9'c #B'
+'9B9B9",'#10'"/'#9'c #FEFEFE",'#10'"('#9'c #7C7C7C",'#10'"_'#9'c #8B8B8B",'
+#10'":'#9'c #767676",'#10'"<'#9'c #828282",'#10'"['#9'c #878787",'#10'"}'#9
+'c #7A7A7A",'#10'"|'#9'c #7F7F7F",'#10'"1'#9'c #888888",'#10'"2'#9'c #7D7D7D'
+'",'#10'"3'#9'c #898989",'#10'"4'#9'c #020202",'#10'"5'#9'c #050505",'#10'"6'
+#9'c #010101",'#10'" .+@#$%&%+%*= .+@#$%&%+%*=",'#10'" -;>,>+&%+%*= -;>,>+&%'
+'+%*=",'#10'" .@+''''+)!+%*= .@+''''+)!+%*=",'#10'" .@+''''+)!+%*= .@+''''+)'
+'!+%*=",'#10'" ~%{]!+#^+%*= ~%{]!+#^+%*=",'#10'" ~%{]%+!''+%*= ~%{]%+!''+%*='
+'",'#10'" .@+''''+^!+%*= .@+''''+^!+%*=",'#10'" -;>,!+#^+%*= -;>,!+#^+%*=",'
+#10'" ~%{]!+#^+%*= ~%{]!+#^+%*=",'#10'" ~%{]%+!''+%*= ~%{]%+!''+%*=",'#10'" '
+'.+@#{+%@+%*= .+@#{+%@+%*=",'#10'" /(_:<[}|123= /(_:<[}|123=",'#10'" =4=5=6='
+'==4= =4=5=6===4= ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" ",'
+#10'" ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" '
+' "};'#10
]);
LazarusResources.Add('anchorcenterhorizontal','XPM',[
'/* XPM */'#10'static char * anchorcenterhorizontal_xpm[] = {'#10'"26 26 42 1'
+'",'#10'" '#9'c None",'#10'".'#9'c #F4F4F4",'#10'"+'#9'c #C8C8C8",'#10'"@'#9
+'c #BEBEBE",'#10'"#'#9'c #C6C6C6",'#10'"$'#9'c #B8B8B8",'#10'"%'#9'c #C1C1C1'
+'",'#10'"&'#9'c #BFBFBF",'#10'"*'#9'c #808080",'#10'"='#9'c #000000",'#10'"-'
+#9'c #FFFFFF",'#10'";'#9'c #BCBCBC",'#10'">'#9'c #C0C0C0",'#10'",'#9'c #BDBD'
+'BD",'#10'"'''#9'c #F8F8F8",'#10'")'#9'c #C5C5C5",'#10'"!'#9'c #BBBBBB",'#10
+'"~'#9'c #CFCFCF",'#10'"{'#9'c #BABABA",'#10'"]'#9'c #FEFEFE",'#10'"^'#9'c #'
+'7C7C7C",'#10'"/'#9'c #8B8B8B",'#10'"('#9'c #767676",'#10'"_'#9'c #828282",'
+#10'":'#9'c #878787",'#10'"<'#9'c #7A7A7A",'#10'"['#9'c #7F7F7F",'#10'"}'#9
+'c #888888",'#10'"|'#9'c #7D7D7D",'#10'"1'#9'c #898989",'#10'"2'#9'c #020202'
+'",'#10'"3'#9'c #050505",'#10'"4'#9'c #010101",'#10'"5'#9'c #EFEFEF",'#10'"6'
+#9'c #F0F0F0",'#10'"7'#9'c #FCFCFC",'#10'"8'#9'c #030303",'#10'"9'#9'c #C7C7'
+'C7",'#10'"0'#9'c #C4C4C4",'#10'"a'#9'c #B9B9B9",'#10'"b'#9'c #B6B6B6",'#10
+'"c'#9'c #B7B7B7",'#10'" .+@#$+@#$%&*= ",'#10'" -;%>,;%>,%&*'
+'= ",'#10'" ''&)!%&)!%%&*= ",'#10'" ''&)!%&)!%%&*= '
+' ",'#10'" -;%>,;%>,%&*= ",'#10'" .+@#$+@#$%&*= ",'
+#10'" -%;,)%;,)%&*= ",'#10'" -%;,)%&~{%&*= ",'#10'" '
+' ]^/(_:<[[}|1= ",'#10'" =2=3=4====2= ",'#10'" '
+' ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" ''-5--6-----------7-8 ",'
+#10'" -%;,)%&%&90%%&&%%&*= ",'#10'" .+@#$90%%,a%%&0%%&*= ",'#10'" '
+'-;%>,,a%%0>%%&a%%&*= ",'#10'" ''&)!%0>%%)@%%&>%%&*= ",'#10'" ''&)!%'
+')@%%,>%%&@%%&*= ",'#10'" -;%>,,>%%a0%%&>%%&*= ",'#10'" .+@#$a0%%~{%'
+'%&0%%&*= ",'#10'" -%;,)~{%%&>#b~{%%&*= ",'#10'" -%;,)%&;+c>#b~{%%&*'
+'= "};'#10
]);
LazarusResources.Add('anchorcentervertical','XPM',[
'/* XPM */'#10'static char * anchorcentervertical_xpm[] = {'#10'"26 26 42 1",'
+#10'" '#9'c None",'#10'".'#9'c #FFFFFF",'#10'"+'#9'c #FCFCFC",'#10'"@'#9'c #'
+'030303",'#10'"#'#9'c #C7C7C7",'#10'"$'#9'c #C4C4C4",'#10'"%'#9'c #C1C1C1",'
+#10'"&'#9'c #BFBFBF",'#10'"*'#9'c #808080",'#10'"='#9'c #000000",'#10'"-'#9
+'c #BDBDBD",'#10'";'#9'c #B9B9B9",'#10'">'#9'c #C0C0C0",'#10'",'#9'c #F8F8F8'
+'",'#10'"'''#9'c #EFEFEF",'#10'")'#9'c #F0F0F0",'#10'"!'#9'c #C5C5C5",'#10'"'
+'~'#9'c #BEBEBE",'#10'"{'#9'c #BCBCBC",'#10'"]'#9'c #F4F4F4",'#10'"^'#9'c #C'
+'8C8C8",'#10'"/'#9'c #C6C6C6",'#10'"('#9'c #B8B8B8",'#10'"_'#9'c #CFCFCF",'
+#10'":'#9'c #BABABA",'#10'"<'#9'c #BBBBBB",'#10'"['#9'c #B6B6B6",'#10'"}'#9
+'c #B7B7B7",'#10'"|'#9'c #FEFEFE",'#10'"1'#9'c #7C7C7C",'#10'"2'#9'c #8B8B8B'
+'",'#10'"3'#9'c #767676",'#10'"4'#9'c #828282",'#10'"5'#9'c #878787",'#10'"6'
+#9'c #7A7A7A",'#10'"7'#9'c #7F7F7F",'#10'"8'#9'c #020202",'#10'"9'#9'c #0505'
+'05",'#10'"0'#9'c #010101",'#10'"a'#9'c #888888",'#10'"b'#9'c #7D7D7D",'#10
+'"c'#9'c #898989",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'"........+.@ '
+' ",'#10'"#$%%&&%%&*= ",'#10'"-;%%&$%%&*= ",'#10
+'"$>%%&;%%&*= ,.''..)....",'#10'"!~%%&>%%&*= .%{-!%&%&~",'#10'"->%%&'
+'~%%&*= ]^~/(^~/(^",'#10'";$%%&>%%&*= .{%>-{%>-{",'#10'"_:%%&$%%&*= '
+' ,&!<%&!<%&",'#10'"&>/[_:%%&*= ,&!<%&!<%&",'#10'"}>/[_:%%&*= .{%'
+'>-{%>-{",'#10'"-;%%&$%%&*= ]^~/(^~/(^",'#10'"$>%%&;%%&*= .%{-!%{-!%'
+'",'#10'"!~%%&>%%&*= .%{-!%&{^}",'#10'"->%%&~%%&*= .%{-!%{-!%",'#10
+'";$%%&>%%&*= .%{-!%&{^}",'#10'"_:%%&$%%&*= |123456777",'#10'"&>/[_:'
+'%%&*= =8=9=0====",'#10'"^}>/[_:%&*= ",'#10'"7777777abc= '
+' ",'#10'"========8= ",'#10'" '
+' ",'#10'" ",'#10'" "'
+'};'#10
]);
LazarusResources.Add('anchorleftleft','XPM',[
'/* XPM */'#10'static char * anchorleftleft_xpm[] = {'#10'"26 26 31 1",'#10'"'
+' '#9'c None",'#10'".'#9'c #F8F8F8",'#10'"+'#9'c #FFFFFF",'#10'"@'#9'c #EFEF'
+'EF",'#10'"#'#9'c #FCFCFC",'#10'"$'#9'c #C1C1C1",'#10'"%'#9'c #BCBCBC",'#10
+'"&'#9'c #BBBBBB",'#10'"*'#9'c #CCCCCC",'#10'"='#9'c #BFBFBF",'#10'"-'#9'c #'
+'BABABA",'#10'";'#9'c #F4F4F4",'#10'">'#9'c #C8C8C8",'#10'",'#9'c #BEBEBE",'
+#10'"'''#9'c #C0C0C0",'#10'")'#9'c #C7C7C7",'#10'"!'#9'c #C4C4C4",'#10'"~'#9
+'c #C5C5C5",'#10'"{'#9'c #BDBDBD",'#10'"]'#9'c #B9B9B9",'#10'"^'#9'c #C6C6C6'
+'",'#10'"/'#9'c #B6B6B6",'#10'"('#9'c #CFCFCF",'#10'"_'#9'c #FEFEFE",'#10'":'
+#9'c #7C7C7C",'#10'"<'#9'c #8B8B8B",'#10'"['#9'c #7F7F7F",'#10'"}'#9'c #8888'
+'88",'#10'"|'#9'c #7D7D7D",'#10'"1'#9'c #000000",'#10'"2'#9'c #020202",'#10
+'" ",'#10'" .+@++++++++#",'#10'" '
+' +$%&*=-=-=$=",'#10'" ;>,,,$-=-=$=",'#10'" '
+' +%$''''$)!)!$=",'#10'" .=~!!${]{]$=",'#10'" .=~='
+'=$!''!''$=",'#10'" +%$''''$]!]!$=",'#10'" +%$'''''
+'${''{''$=",'#10'" ;>,,,$]!]!$=",'#10'" +$%''^/(-('
+'-$=",'#10'" _:<[[[[[[[}|",'#10'" 121111111112",'
+#10'" ",'#10'" .+@++++++++#",'#10'" '
+' +$%&*=-=-=$=",'#10'" ;>,,,$-=-=$=",'#10'" '
+' +%$''''$)!)!$=",'#10'" .=~!!${]{]$=",'#10'" .'
+'=~==$!''!''$=",'#10'" +%$''''$]!]!$=",'#10'" +%$'
+'''''${''{''$=",'#10'" ;>,,,$]!]!$=",'#10'" +$%''^'
+'/(-(-$=",'#10'" _:<[[[[[[[}|",'#10'" 121111111112'
+'"};'#10
]);
LazarusResources.Add('anchorleftright','XPM',[
'/* XPM */'#10'static char * anchorleftright_xpm[] = {'#10'"26 26 42 1",'#10
+'" '#9'c None",'#10'".'#9'c #FFFFFF",'#10'"+'#9'c #FCFCFC",'#10'"@'#9'c #030'
+'303",'#10'"#'#9'c #F8F8F8",'#10'"$'#9'c #EFEFEF",'#10'"%'#9'c #F0F0F0",'#10
+'"&'#9'c #C7C7C7",'#10'"*'#9'c #C4C4C4",'#10'"='#9'c #C1C1C1",'#10'"-'#9'c #'
+'BFBFBF",'#10'";'#9'c #808080",'#10'">'#9'c #000000",'#10'",'#9'c #BCBCBC",'
+#10'"'''#9'c #BDBDBD",'#10'")'#9'c #C5C5C5",'#10'"!'#9'c #BEBEBE",'#10'"~'#9
+'c #B9B9B9",'#10'"{'#9'c #F4F4F4",'#10'"]'#9'c #C8C8C8",'#10'"^'#9'c #C6C6C6'
+'",'#10'"/'#9'c #B8B8B8",'#10'"('#9'c #C0C0C0",'#10'"_'#9'c #BBBBBB",'#10'":'
+#9'c #CFCFCF",'#10'"<'#9'c #BABABA",'#10'"['#9'c #B6B6B6",'#10'"}'#9'c #B7B7'
+'B7",'#10'"|'#9'c #7F7F7F",'#10'"1'#9'c #888888",'#10'"2'#9'c #7D7D7D",'#10
+'"3'#9'c #898989",'#10'"4'#9'c #FEFEFE",'#10'"5'#9'c #7C7C7C",'#10'"6'#9'c #'
+'8B8B8B",'#10'"7'#9'c #767676",'#10'"8'#9'c #828282",'#10'"9'#9'c #878787",'
+#10'"0'#9'c #7A7A7A",'#10'"a'#9'c #020202",'#10'"b'#9'c #050505",'#10'"c'#9
+'c #010101",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'"........+.@ #.$..%....",'#10
+'"&*==--==-;> .=,'')=-=-!",'#10'"''~==-*==-;> {]!^/]!^/]",'#10'"*(=='
+'-~==-;> .,=('',=('',",'#10'")!==-(==-;> #-)_=-)_=-",'#10'"''(==-!=='
+'-;> #-)_=-)_=-",'#10'"~*==-(==-;> .,=('',=('',",'#10'":<==-*==-;> '
+' {]!^/]!^/]",'#10'"-(^[:<==-;> .=,'')=,'')=",'#10'"}(^[:<==-;> .='
+','')=-,]}",'#10'"''~==-*==-;> {]!^/]!^/]",'#10'"*(==-~==-;> .,=('','
+'=('',",'#10'")!==-(==-;> #-)_=-)_=-",'#10'"''(==-!==-;> #-)_=-)_=-"'
+','#10'"~*==-(==-;> .,=('',=('',",'#10'":<==-*==-;> {]!^/]!^/]",'#10
+'"-(^[:<==-;> .=,'')=,'')=",'#10'"]}(^[:<=-;> .=,'')=-,]}",'#10'"|||'
+'||||123> 4567890|||",'#10'">>>>>>>>a> >a>b>c>>>>",'#10'" '
+' ",'#10'" ",'#10'" '
+' "};'#10
]);
LazarusResources.Add('anchorrightright','XPM',[
'/* XPM */'#10'static char * anchorrightright_xpm[] = {'#10'"26 26 27 1",'#10
+'" '#9'c None",'#10'".'#9'c #FFFFFF",'#10'"+'#9'c #FCFCFC",'#10'"@'#9'c #030'
+'303",'#10'"#'#9'c #BEBEBE",'#10'"$'#9'c #BBBBBB",'#10'"%'#9'c #CCCCCC",'#10
+'"&'#9'c #BFBFBF",'#10'"*'#9'c #BABABA",'#10'"='#9'c #C1C1C1",'#10'"-'#9'c #'
+'808080",'#10'";'#9'c #000000",'#10'">'#9'c #C5C5C5",'#10'",'#9'c #BDBDBD",'
+#10'"'''#9'c #C0C0C0",'#10'")'#9'c #C7C7C7",'#10'"!'#9'c #C4C4C4",'#10'"~'#9
+'c #B9B9B9",'#10'"{'#9'c #B7B7B7",'#10'"]'#9'c #C6C6C6",'#10'"^'#9'c #B6B6B6'
+'",'#10'"/'#9'c #CFCFCF",'#10'"('#9'c #7F7F7F",'#10'"_'#9'c #888888",'#10'":'
+#9'c #7D7D7D",'#10'"<'#9'c #898989",'#10'"['#9'c #020202",'#10'" '
+' ",'#10'".......+.@ ",'#10'"#$%&*&=&-; '
+' ",'#10'">##=*&=&-; ",'#10'",''''=)!=&-; '
+' ",'#10'"~!!=,~=&-; ",'#10'"*&&=!''=&-; ",'
+#10'"!''''=~!=&-; ",'#10'"!''''=,''=&-; ",'#10
+'">##=~!=&-; ",'#10'"{'']^/*=&-; ",'#10'"((((('
+'(_:<; ",'#10'";;;;;;;[;; ",'#10'" '
+' ",'#10'".......+.@ ",'#10'"#$%&*&=&-; '
+' ",'#10'">##=*&=&-; ",'#10'",''''=)!=&-; '
+' ",'#10'"~!!=,~=&-; ",'#10'"*&&=!''=&-; ",'
+#10'"!''''=~!=&-; ",'#10'"!''''=,''=&-; ",'#10
+'">##=~!=&-; ",'#10'"{'']^/*=&-; ",'#10'"((((('
+'(_:<; ",'#10'";;;;;;;[;; "};'#10
]);
LazarusResources.Add('anchortopbottom','XPM',[
'/* XPM */'#10'static char * anchortopbottom_xpm[] = {'#10'"26 26 42 1",'#10
+'" '#9'c None",'#10'".'#9'c #F4F4F4",'#10'"+'#9'c #C8C8C8",'#10'"@'#9'c #BEB'
+'EBE",'#10'"#'#9'c #C6C6C6",'#10'"$'#9'c #B8B8B8",'#10'"%'#9'c #C1C1C1",'#10
+'"&'#9'c #BFBFBF",'#10'"*'#9'c #808080",'#10'"='#9'c #000000",'#10'"-'#9'c #'
+'FFFFFF",'#10'";'#9'c #BCBCBC",'#10'">'#9'c #C0C0C0",'#10'",'#9'c #BDBDBD",'
+#10'"'''#9'c #F8F8F8",'#10'")'#9'c #C5C5C5",'#10'"!'#9'c #BBBBBB",'#10'"~'#9
+'c #B7B7B7",'#10'"{'#9'c #B6B6B6",'#10'"]'#9'c #CFCFCF",'#10'"^'#9'c #BABABA'
+'",'#10'"/'#9'c #FEFEFE",'#10'"('#9'c #7C7C7C",'#10'"_'#9'c #8B8B8B",'#10'":'
+#9'c #767676",'#10'"<'#9'c #828282",'#10'"['#9'c #878787",'#10'"}'#9'c #7A7A'
+'7A",'#10'"|'#9'c #7F7F7F",'#10'"1'#9'c #888888",'#10'"2'#9'c #7D7D7D",'#10
+'"3'#9'c #898989",'#10'"4'#9'c #020202",'#10'"5'#9'c #050505",'#10'"6'#9'c #'
+'010101",'#10'"7'#9'c #EFEFEF",'#10'"8'#9'c #F0F0F0",'#10'"9'#9'c #FCFCFC",'
+#10'"0'#9'c #030303",'#10'"a'#9'c #C7C7C7",'#10'"b'#9'c #C4C4C4",'#10'"c'#9
+'c #B9B9B9",'#10'" .+@#$+@#$+@#+@#$%&*= ",'#10'" -;%>,;%>,;%>;%>,%&*= '
+' ",'#10'" ''&)!%&)!%&)!&)!%%&*= ",'#10'" ''&)!%&)!%&)!&)!%%&*= ",'
+#10'" -;%>,;%>,;%>;%>,%&*= ",'#10'" .+@#$+@#$+@#+@#$%&*= ",'#10'" '
+'-%;,)%;,)%;,%;,)%&*= ",'#10'" -%;,)%&;+~~>#{]^%&*= ",'#10'" /(_:<[}'
+'|||||||||123= ",'#10'" =4=5=6===========4= ",'#10'" '
+' ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" ",'#10
+'" ",'#10'" ''-7--8-----------9-0 ",'#10'" -%'
+';,)%&%&ab%%&&%%&*= ",'#10'" .+@#$ab%%,c%%&b%%&*= ",'#10'" -;%>,,c%%'
+'b>%%&c%%&*= ",'#10'" ''&)!%b>%%)@%%&>%%&*= ",'#10'" ''&)!%)@%%,>%%&'
+'@%%&*= ",'#10'" -;%>,,>%%cb%%&>%%&*= ",'#10'" .+@#$cb%%]^%%&b%%&*= '
+' ",'#10'" -%;,)]^%%&>#{]^%%&*= ",'#10'" -%;,)%&;+~>#{]^%%&*= "};'
+#10
]);
LazarusResources.Add('anchortoptop','XPM',[
'/* XPM */'#10'static char * anchortoptop_xpm[] = {'#10'"26 26 24 1",'#10'" '
+#9'c None",'#10'".'#9'c #F8F8F8",'#10'"+'#9'c #FFFFFF",'#10'"@'#9'c #EFEFEF"'
+','#10'"#'#9'c #FCFCFC",'#10'"$'#9'c #030303",'#10'"%'#9'c #C1C1C1",'#10'"&'
+#9'c #BCBCBC",'#10'"*'#9'c #BDBDBD",'#10'"='#9'c #CCCCCC",'#10'"-'#9'c #BFBF'
+'BF",'#10'";'#9'c #BABABA",'#10'">'#9'c #808080",'#10'",'#9'c #000000",'#10
+'"'''#9'c #F4F4F4",'#10'")'#9'c #C8C8C8",'#10'"!'#9'c #BEBEBE",'#10'"~'#9'c '
+'#C6C6C6",'#10'"{'#9'c #C0C0C0",'#10'"]'#9'c #C7C7C7",'#10'"^'#9'c #C4C4C4",'
+#10'"/'#9'c #C5C5C5",'#10'"('#9'c #BBBBBB",'#10'"_'#9'c #B9B9B9",'#10'" '
+' ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" '
+'",'#10'" ",'#10'" ",'#10
+'" ",'#10'" ",'#10'" '
+' ",'#10'" ",'#10'" '
+' ",'#10'".+@++++++#+$ .+@++++++#+$ ",'#10'"+%&*=-;-%->, +%&*=-;'
+'-%->, ",'#10'"'')!~!%;-%->, '')!~!%;-%->, ",'#10'"+&%{{%]^%->, +&%{{%]^%->,'
+' ",'#10'".-/(^%*_%->, .-/(^%*_%->, ",'#10'".-/(-%^{%->, .-/(-%^{%->, ",'#10
+'"+&%{{%_^%->, +&%{{%_^%->, ",'#10'"'')!~^%*_%->, '')!~^%*_%->, ",'#10'".-/('
+'^%*_%->, .-/(^%*_%->, ",'#10'".-/(-%^{%->, .-/(-%^{%->, ",'#10'"+&%{{%_^%->'
+', +&%{{%_^%->, ",'#10'"'')!~^%*_%->, '')!~^%*_%->, "};'#10
]);

View File

@ -632,6 +632,7 @@ type
procedure SetBottom(const AValue: TSpacingSize);
procedure SetLeft(const AValue: TSpacingSize);
procedure SetRight(const AValue: TSpacingSize);
procedure SetSpace(Kind: TAnchorKind; const AValue: integer);
procedure SetTop(const AValue: TSpacingSize);
protected
procedure Change; dynamic;
@ -644,6 +645,7 @@ type
function GetSpace(Kind: TAnchorKind): Integer;
public
property Control: TControl read FControl;
property Space[Kind: TAnchorKind]: integer read GetSpace write SetSpace;
published
property OnChange: TNotifyEvent read FOnChange write FOnChange;
property Left: TSpacingSize read FLeft write SetLeft;
@ -2376,6 +2378,17 @@ begin
Change;
end;
procedure TControlBorderSpacing.SetSpace(Kind: TAnchorKind;
const AValue: integer);
begin
case Kind of
akLeft: Left:=AValue;
akTop: Top:=AValue;
akBottom: Bottom:=AValue;
akRight: Right:=AValue;
end;
end;
procedure TControlBorderSpacing.SetTop(const AValue: TSpacingSize);
begin
if FTop=AValue then exit;
@ -2821,6 +2834,9 @@ end.
{ =============================================================================
$Log$
Revision 1.270 2005/01/20 20:51:06 mattias
implementing anchor editor, setting sibling and reference sides
Revision 1.269 2005/01/17 17:49:27 mattias
fixed constraints for forms under gtk