Linux GTK2 Caption Bug - Fixed

Linux Background Draw Bug
Close Buttons on TGradTabControl
Updated TGradTabControl-Demo

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@824 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
eugene1
2009-06-06 13:14:46 +00:00
parent 7ae85c5538
commit beee4476aa
10 changed files with 1365 additions and 1328 deletions

View File

@ -1,7 +1,11 @@
Package GradButton:
- Still some errors during loading / showing Glyphs
- Glyphs should be working now
The Package gradtabcontrol is atm to buggy to use it.
Package GradTabControl:
- Is now useable, or more or less, it should be =)
- with 2 CloseButton-Modes
- ShowCloseButton := true; // The CloseButton is always visible
- ShowCloseButtonOnMouseOver := true; // The CloseBUtton is only visible if the Mouse if is over it
Some Glyphs are from http://www.famfamfam.com/lab/icons/silk/

View File

@ -1,17 +1,18 @@
object Form1: TForm1
Left = 292
Left = 243
Height = 492
Top = 130
Top = 105
Width = 884
Caption = 'Form1'
Caption = 'TGradTabControl-Testsuite'
ClientHeight = 492
ClientWidth = 884
OnCreate = FormCreate
OnDestroy = FormDestroy
ParentFont = False
LCLVersion = '0.9.27'
object Panel1: TPanel
Left = 0
Height = 492
Top = 0
Width = 646
Align = alClient
Caption = 'Panel1'
@ -24,181 +25,33 @@ object Form1: TForm1
Top = 1
Width = 644
Align = alClient
ControlStyle = [csAcceptsControls, csOwnedChildsSelectable]
ActivePage = GradTabPage2
ActivePage = GradTabPage1
OnTabButtonMouseDown = GradTabControl1TabButtonMouseDown
OnTabButtonMouseUp = GradTabControl1TabButtonMouseUp
OnTabButtonMouseMove = GradTabControl1TabButtonMouseMove
OnTabCloseButtonClick = GradTabControl1TabCloseButtonClick
OnDragDrop = GradTabControl1DragDrop
OnDragOver = GradTabControl1DragOver
OnMouseDown = GradTabControl1MouseDown
OnMouseWheelUp = GradTabControl1MouseWheelUp
OnMouseWheelDown = GradTabControl1MouseWheelDown
PageIndex = 1
PageIndex = 0
TabHeight = 20
MoveIncrement = 1
LongTabs = False
LongWidth = 101
OnPageChanged = GradTabControl1PageChanged
ShowLeftTopScrollButton = False
ShowRightBottomScrollButton = False
Images = ImageList1
object GradTabPage1: TGradTabPage
Left = 2
Height = 464
Top = 22
Width = 640
Caption = 'abc'
Color = clGrayText
TabColor = clBlue
TabGlyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
20000000000000040000640000006400000000000000000000006E554E8D704E
44A6683F35A51C0E0E1286C6DC2D6BC2E1995FBCDDB855B4D4D24CA9CAE843A0
C0EA3E9CBCD5429EBFBC50A8C79F79B9D03B0000230000002300664E4982593D
37706D4237706186964470D0F2F65FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B7D9FA85C9E14F00002300513C36266E4B
428E4C2D266B76BBD26F6BD2F5FF5DBAD5FF51AFCDFF52ACC8FF4AA8C7FF45A3
C3FF469FBCFF3D99B8FF409EBBFF4FB5D9FF7ACDEB820000230000000006583E
357C603A30B57BAFC16D5EBBDBFC5EC1E3FF5ABBDCFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF3395B6FF42A2C4FF54B1D1FD7EC0D28800002300000023006948
3E835F39308E85CCE65A6BD2F6FF5FC7EBFF53BBDFFF47B0D4FF44A4C3FF3A9A
B7FF2890B4FF2990B5FF349CC0FF4EB6DAFF7DCCE67800002300000000075E3F
386D5F382E6974B7CD7268C5E2FF55B0CDFF4EAFCEFF4AABCDFF43A9CCFF3DA3
C7FF3DA0C1FF40A1C1FF49A4C3FF51AFCDFF7ACCE98200002300000000045E41
378A653E337785B8C45169C4E5FC60C7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF57B5D5FD87BBCC7700002300000023002C23
1A1D5132298A70B1C6716AD2F6FF60C7EAFF5CB7D3FF4FABC7FF42A1C0FF3B9B
B9FF3995B0FF3892AFFF369CBFFF4EB6DAFF7BCEE9810000230000000004704E
44966C42379A7ABBCE715DB8D2FF50B2D4FF49B3D8FF44B0D4FF41A8CDFF39A0
C4FF349DC2FF35A0C6FF40A5C6FF4FACC8FF7ECAE48600002300000000056244
3BB15030289F749DA8536CCDEEFB5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B6D8FD82C0CD6C00002300000023006446
3D96472C245D7BC4DD6C6AD2F6FF60BDD9FF4FB0CDFF4AAAC8FF4CA8C4FF49A4
C1FF3D9AB8FF3697B6FF409DBBFF4EB6DAFF7ACCE98200002300644E46806848
3F8E55352D7E84C5D96A5BBAD9FC59BEE1FF59B9DBFF50B1D3FF3CA4C8FF3099
BDFF3193B5FF3999BBFF40A4C7FF50AFCFFD7CC3D787000023006B524A7C704C
45895C392D6C7FC3DA4F6CD2F5FE5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2991B5FF349CC0FF4FB6DAFF82CDE56F00002300000000063622
1B264D2E28747DC6DF6C6BCCEBFF49AFCFFF3BA6C9FF34A2C5FF2E9EC3FF2D9D
C2FF2D9CBFFF2F9BBEFF369EC0FF50B2D2FF79CCEA8200002300000000096242
3ABC523228A47AA4B35537A2C3F3189FCFFF189FCFFF189FCFFF189FCFFF189F
CFFF189FCFFF189FCFFF189FCFFF2E9FC4F77BB8C86900002300000023007B53
4966674034941A00000A71A1A2243A9FBD9E319FC1BC2E9FC3D32B9EC4EA2B9F
C3EC2D9FC3D6309FC3BF37A0C0A45EA1AD310000230000002300
}
object ToggleBox2: TToggleBox
Left = 357
Height = 23
Top = 155
Width = 90
Caption = 'ToggleBox2'
TabOrder = 0
end
end
object GradTabPage4: TGradTabPage
Left = 2
Height = 464
Top = 22
Width = 640
PageIndex = 2
Caption = 'äöü-test'
TabColor = clBlue
TabGlyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
20000000000000040000640000006400000000000000000000006E554E8D704E
44A6683F35A51C0E0E1286C6DC2D6BC2E1995FBCDDB855B4D4D24CA9CAE843A0
C0EA3E9CBCD5429EBFBC50A8C79F79B9D03B0000230000002300664E4982593D
37706D4237706186964470D0F2F65FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B7D9FA85C9E14F00002300513C36266E4B
428E4C2D266B76BBD26F6BD2F5FF5DBAD5FF51AFCDFF52ACC8FF4AA8C7FF45A3
C3FF469FBCFF3D99B8FF409EBBFF4FB5D9FF7ACDEB820000230000000006583E
357C603A30B57BAFC16D5EBBDBFC5EC1E3FF5ABBDCFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF3395B6FF42A2C4FF54B1D1FD7EC0D28800002300000023006948
3E835F39308E85CCE65A6BD2F6FF5FC7EBFF53BBDFFF47B0D4FF44A4C3FF3A9A
B7FF2890B4FF2990B5FF349CC0FF4EB6DAFF7DCCE67800002300000000075E3F
386D5F382E6974B7CD7268C5E2FF55B0CDFF4EAFCEFF4AABCDFF43A9CCFF3DA3
C7FF3DA0C1FF40A1C1FF49A4C3FF51AFCDFF7ACCE98200002300000000045E41
378A653E337785B8C45169C4E5FC60C7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF57B5D5FD87BBCC7700002300000023002C23
1A1D5132298A70B1C6716AD2F6FF60C7EAFF5CB7D3FF4FABC7FF42A1C0FF3B9B
B9FF3995B0FF3892AFFF369CBFFF4EB6DAFF7BCEE9810000230000000004704E
44966C42379A7ABBCE715DB8D2FF50B2D4FF49B3D8FF44B0D4FF41A8CDFF39A0
C4FF349DC2FF35A0C6FF40A5C6FF4FACC8FF7ECAE48600002300000000056244
3BB15030289F749DA8536CCDEEFB5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B6D8FD82C0CD6C00002300000023006446
3D96472C245D7BC4DD6C6AD2F6FF60BDD9FF4FB0CDFF4AAAC8FF4CA8C4FF49A4
C1FF3D9AB8FF3697B6FF409DBBFF4EB6DAFF7ACCE98200002300644E46806848
3F8E55352D7E84C5D96A5BBAD9FC59BEE1FF59B9DBFF50B1D3FF3CA4C8FF3099
BDFF3193B5FF3999BBFF40A4C7FF50AFCFFD7CC3D787000023006B524A7C704C
45895C392D6C7FC3DA4F6CD2F5FE5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2991B5FF349CC0FF4FB6DAFF82CDE56F00002300000000063622
1B264D2E28747DC6DF6C6BCCEBFF49AFCFFF3BA6C9FF34A2C5FF2E9EC3FF2D9D
C2FF2D9CBFFF2F9BBEFF369EC0FF50B2D2FF79CCEA8200002300000000096242
3ABC523228A47AA4B35537A2C3F3189FCFFF189FCFFF189FCFFF189FCFFF189F
CFFF189FCFFF189FCFFF189FCFFF2E9FC4F77BB8C86900002300000023007B53
4966674034941A00000A71A1A2243A9FBD9E319FC1BC2E9FC3D32B9EC4EA2B9F
C3EC2D9FC3D6309FC3BF37A0C0A45EA1AD310000230000002300
}
end
object GradTabPage3: TGradTabPage
Left = 2
Height = 466
Top = 22
Width = 640
PageIndex = 3
PageIndex = 2
Caption = 'GradTabPage3'
TabColor = clBlue
TabGlyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
20000000000000040000640000006400000000000000000000006E554E8D704E
44A6683F35A51C0E0E1286C6DC2D6BC2E1995FBCDDB855B4D4D24CA9CAE843A0
C0EA3E9CBCD5429EBFBC50A8C79F79B9D03B0000230000002300664E4982593D
37706D4237706186964470D0F2F65FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B7D9FA85C9E14F00002300513C36266E4B
428E4C2D266B76BBD26F6BD2F5FF5DBAD5FF51AFCDFF52ACC8FF4AA8C7FF45A3
C3FF469FBCFF3D99B8FF409EBBFF4FB5D9FF7ACDEB820000230000000006583E
357C603A30B57BAFC16D5EBBDBFC5EC1E3FF5ABBDCFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF3395B6FF42A2C4FF54B1D1FD7EC0D28800002300000023006948
3E835F39308E85CCE65A6BD2F6FF5FC7EBFF53BBDFFF47B0D4FF44A4C3FF3A9A
B7FF2890B4FF2990B5FF349CC0FF4EB6DAFF7DCCE67800002300000000075E3F
386D5F382E6974B7CD7268C5E2FF55B0CDFF4EAFCEFF4AABCDFF43A9CCFF3DA3
C7FF3DA0C1FF40A1C1FF49A4C3FF51AFCDFF7ACCE98200002300000000045E41
378A653E337785B8C45169C4E5FC60C7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF57B5D5FD87BBCC7700002300000023002C23
1A1D5132298A70B1C6716AD2F6FF60C7EAFF5CB7D3FF4FABC7FF42A1C0FF3B9B
B9FF3995B0FF3892AFFF369CBFFF4EB6DAFF7BCEE9810000230000000004704E
44966C42379A7ABBCE715DB8D2FF50B2D4FF49B3D8FF44B0D4FF41A8CDFF39A0
C4FF349DC2FF35A0C6FF40A5C6FF4FACC8FF7ECAE48600002300000000056244
3BB15030289F749DA8536CCDEEFB5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B6D8FD82C0CD6C00002300000023006446
3D96472C245D7BC4DD6C6AD2F6FF60BDD9FF4FB0CDFF4AAAC8FF4CA8C4FF49A4
C1FF3D9AB8FF3697B6FF409DBBFF4EB6DAFF7ACCE98200002300644E46806848
3F8E55352D7E84C5D96A5BBAD9FC59BEE1FF59B9DBFF50B1D3FF3CA4C8FF3099
BDFF3193B5FF3999BBFF40A4C7FF50AFCFFD7CC3D787000023006B524A7C704C
45895C392D6C7FC3DA4F6CD2F5FE5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2991B5FF349CC0FF4FB6DAFF82CDE56F00002300000000063622
1B264D2E28747DC6DF6C6BCCEBFF49AFCFFF3BA6C9FF34A2C5FF2E9EC3FF2D9D
C2FF2D9CBFFF2F9BBEFF369EC0FF50B2D2FF79CCEA8200002300000000096242
3ABC523228A47AA4B35537A2C3F3189FCFFF189FCFFF189FCFFF189FCFFF189F
CFFF189FCFFF189FCFFF189FCFFF2E9FC4F77BB8C86900002300000023007B53
4966674034941A00000A71A1A2243A9FBD9E319FC1BC2E9FC3D32B9EC4EA2B9F
C3EC2D9FC3D6309FC3BF37A0C0A45EA1AD310000230000002300
}
object Button3: TButton
Left = 99
Height = 25
Top = 71
Width = 75
Caption = 'Button3'
TabOrder = 0
end
end
object GradTabPage2: TGradTabPage
Left = 2
Height = 466
Top = 22
Width = 640
PageIndex = 1
Caption = 'GradTabPage2'
TabPopupMenu = PopupMenu1
TabColor = clGreen
TabTextAlignment = taLeftJustify
TabGlyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
20000000000000040000640000006400000000000000000000006E554E8D704E
@ -236,41 +89,117 @@ object Form1: TForm1
C3EC2D9FC3D6309FC3BF37A0C0A45EA1AD310000230000002300
}
TabShowGlyph = True
object PageControl1: TPageControl
Left = 173
Height = 200
Top = 57
Width = 200
ActivePage = TabSheet3
TabIndex = 2
TabButtonLayout = blGlyphLeft
end
object GradTabPage2: TGradTabPage
Left = 2
Height = 466
Top = 22
Width = 640
PageIndex = 1
Caption = 'GradTabPage2'
ShowCloseButton = True
TabColor = clBlue
TabTextAlignment = taLeftJustify
TabGlyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
20000000000000040000640000006400000000000000000000006E554E8D704E
44A6683F35A51C0E0E1286C6DC2D6BC2E1995FBCDDB855B4D4D24CA9CAE843A0
C0EA3E9CBCD5429EBFBC50A8C79F79B9D03B0000230000002300664E4982593D
37706D4237706186964470D0F2F65FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B7D9FA85C9E14F00002300513C36266E4B
428E4C2D266B76BBD26F6BD2F5FF5DBAD5FF51AFCDFF52ACC8FF4AA8C7FF45A3
C3FF469FBCFF3D99B8FF409EBBFF4FB5D9FF7ACDEB820000230000000006583E
357C603A30B57BAFC16D5EBBDBFC5EC1E3FF5ABBDCFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF3395B6FF42A2C4FF54B1D1FD7EC0D28800002300000023006948
3E835F39308E85CCE65A6BD2F6FF5FC7EBFF53BBDFFF47B0D4FF44A4C3FF3A9A
B7FF2890B4FF2990B5FF349CC0FF4EB6DAFF7DCCE67800002300000000075E3F
386D5F382E6974B7CD7268C5E2FF55B0CDFF4EAFCEFF4AABCDFF43A9CCFF3DA3
C7FF3DA0C1FF40A1C1FF49A4C3FF51AFCDFF7ACCE98200002300000000045E41
378A653E337785B8C45169C4E5FC60C7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF57B5D5FD87BBCC7700002300000023002C23
1A1D5132298A70B1C6716AD2F6FF60C7EAFF5CB7D3FF4FABC7FF42A1C0FF3B9B
B9FF3995B0FF3892AFFF369CBFFF4EB6DAFF7BCEE9810000230000000004704E
44966C42379A7ABBCE715DB8D2FF50B2D4FF49B3D8FF44B0D4FF41A8CDFF39A0
C4FF349DC2FF35A0C6FF40A5C6FF4FACC8FF7ECAE48600002300000000056244
3BB15030289F749DA8536CCDEEFB5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B6D8FD82C0CD6C00002300000023006446
3D96472C245D7BC4DD6C6AD2F6FF60BDD9FF4FB0CDFF4AAAC8FF4CA8C4FF49A4
C1FF3D9AB8FF3697B6FF409DBBFF4EB6DAFF7ACCE98200002300644E46806848
3F8E55352D7E84C5D96A5BBAD9FC59BEE1FF59B9DBFF50B1D3FF3CA4C8FF3099
BDFF3193B5FF3999BBFF40A4C7FF50AFCFFD7CC3D787000023006B524A7C704C
45895C392D6C7FC3DA4F6CD2F5FE5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2991B5FF349CC0FF4FB6DAFF82CDE56F00002300000000063622
1B264D2E28747DC6DF6C6BCCEBFF49AFCFFF3BA6C9FF34A2C5FF2E9EC3FF2D9D
C2FF2D9CBFFF2F9BBEFF369EC0FF50B2D2FF79CCEA8200002300000000096242
3ABC523228A47AA4B35537A2C3F3189FCFFF189FCFFF189FCFFF189FCFFF189F
CFFF189FCFFF189FCFFF189FCFFF2E9FC4F77BB8C86900002300000023007B53
4966674034941A00000A71A1A2243A9FBD9E319FC1BC2E9FC3D32B9EC4EA2B9F
C3EC2D9FC3D6309FC3BF37A0C0A45EA1AD310000230000002300
}
TabShowGlyph = True
TabButtonLayout = blGlyphLeft
end
object GradTabPage1: TGradTabPage
Left = 2
Height = 466
Top = 22
Width = 640
PageIndex = 0
Caption = 'Some Memo'
ShowCloseButton = True
Color = clGrayText
TabColor = clGreen
TabTextAlignment = taLeftJustify
TabGlyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
20000000000000040000640000006400000000000000000000006E554E8D704E
44A6683F35A51C0E0E1286C6DC2D6BC2E1995FBCDDB855B4D4D24CA9CAE843A0
C0EA3E9CBCD5429EBFBC50A8C79F79B9D03B0000230000002300664E4982593D
37706D4237706186964470D0F2F65FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B7D9FA85C9E14F00002300513C36266E4B
428E4C2D266B76BBD26F6BD2F5FF5DBAD5FF51AFCDFF52ACC8FF4AA8C7FF45A3
C3FF469FBCFF3D99B8FF409EBBFF4FB5D9FF7ACDEB820000230000000006583E
357C603A30B57BAFC16D5EBBDBFC5EC1E3FF5ABBDCFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF3395B6FF42A2C4FF54B1D1FD7EC0D28800002300000023006948
3E835F39308E85CCE65A6BD2F6FF5FC7EBFF53BBDFFF47B0D4FF44A4C3FF3A9A
B7FF2890B4FF2990B5FF349CC0FF4EB6DAFF7DCCE67800002300000000075E3F
386D5F382E6974B7CD7268C5E2FF55B0CDFF4EAFCEFF4AABCDFF43A9CCFF3DA3
C7FF3DA0C1FF40A1C1FF49A4C3FF51AFCDFF7ACCE98200002300000000045E41
378A653E337785B8C45169C4E5FC60C7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF57B5D5FD87BBCC7700002300000023002C23
1A1D5132298A70B1C6716AD2F6FF60C7EAFF5CB7D3FF4FABC7FF42A1C0FF3B9B
B9FF3995B0FF3892AFFF369CBFFF4EB6DAFF7BCEE9810000230000000004704E
44966C42379A7ABBCE715DB8D2FF50B2D4FF49B3D8FF44B0D4FF41A8CDFF39A0
C4FF349DC2FF35A0C6FF40A5C6FF4FACC8FF7ECAE48600002300000000056244
3BB15030289F749DA8536CCDEEFB5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2990B5FF349CC0FF55B6D8FD82C0CD6C00002300000023006446
3D96472C245D7BC4DD6C6AD2F6FF60BDD9FF4FB0CDFF4AAAC8FF4CA8C4FF49A4
C1FF3D9AB8FF3697B6FF409DBBFF4EB6DAFF7ACCE98200002300644E46806848
3F8E55352D7E84C5D96A5BBAD9FC59BEE1FF59B9DBFF50B1D3FF3CA4C8FF3099
BDFF3193B5FF3999BBFF40A4C7FF50AFCFFD7CC3D787000023006B524A7C704C
45895C392D6C7FC3DA4F6CD2F5FE5FC7EBFF53BBDFFF47B0D4FF3CA4C8FF3099
BDFF2890B4FF2991B5FF349CC0FF4FB6DAFF82CDE56F00002300000000063622
1B264D2E28747DC6DF6C6BCCEBFF49AFCFFF3BA6C9FF34A2C5FF2E9EC3FF2D9D
C2FF2D9CBFFF2F9BBEFF369EC0FF50B2D2FF79CCEA8200002300000000096242
3ABC523228A47AA4B35537A2C3F3189FCFFF189FCFFF189FCFFF189FCFFF189F
CFFF189FCFFF189FCFFF189FCFFF2E9FC4F77BB8C86900002300000023007B53
4966674034941A00000A71A1A2243A9FBD9E319FC1BC2E9FC3D32B9EC4EA2B9F
C3EC2D9FC3D6309FC3BF37A0C0A45EA1AD310000230000002300
}
TabShowGlyph = True
TabButtonLayout = blGlyphLeft
object Memo1: TMemo
Left = 312
Height = 466
Top = 0
Width = 328
Align = alRight
Lines.Strings = (
'Some Memo'
'alRight'
)
TabOrder = 0
OnDragDrop = PageControl1DragDrop
OnDragOver = PageControl1DragOver
object TabSheet1: TTabSheet
Caption = 'TabSheet1'
end
object TabSheet2: TTabSheet
Caption = 'TabSheet2'
end
object TabSheet3: TTabSheet
Caption = 'TabSheet3'
end
end
object Button2: TButton
Left = 47
Height = 25
Top = 28
Width = 75
Caption = 'Button2'
TabOrder = 1
end
object Panel3: TPanel
Left = 429
Height = 50
Top = 89
Width = 170
Caption = 'Panel3'
TabOrder = 2
end
end
end
@ -278,6 +207,7 @@ object Form1: TForm1
object Panel2: TPanel
Left = 646
Height = 492
Top = 0
Width = 238
Align = alRight
ClientHeight = 492
@ -285,18 +215,18 @@ object Form1: TForm1
TabOrder = 1
object Label1: TLabel
Left = 16
Height = 14
Height = 16
Top = 160
Width = 50
Width = 57
Caption = 'TabHeight'
ParentColor = False
end
object ComboBox1: TComboBox
Left = 16
Height = 21
Height = 23
Top = 16
Width = 100
ItemHeight = 13
ItemHeight = 15
OnChange = ComboBox1Change
Style = csDropDownList
TabOrder = 0
@ -356,8 +286,10 @@ object Form1: TForm1
OverBlendColor = clSilver
BackgroundColor = clBtnFace
ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite
ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15
end
@ -379,14 +311,16 @@ object Form1: TForm1
OverBlendColor = clSilver
BackgroundColor = clBtnFace
ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite
ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15
end
object SpinEdit2: TSpinEdit
Left = 16
Height = 19
Height = 25
Top = 176
Width = 100
OnEditingDone = SpinEdit2EditingDone
@ -394,7 +328,7 @@ object Form1: TForm1
end
object Edit1: TEdit
Left = 16
Height = 19
Height = 25
Top = 136
Width = 72
TabOrder = 6
@ -418,8 +352,10 @@ object Form1: TForm1
OverBlendColor = clSilver
BackgroundColor = clBtnFace
ShowFocusBorder = True
ShowGlyph = False
GlyphBackgroundColor = clWhite
ClickColor = clBlue
OwnerBackgroundDraw = False
AutoWidthBorderSpacing = 15
AutoHeightBorderSpacing = 15
end
@ -450,6 +386,33 @@ object Form1: TForm1
03000000030202
}
end
object RadioGroup2: TRadioGroup
Left = 130
Height = 105
Top = 256
Width = 100
AutoFill = True
Caption = 'Tab Button Layout'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 87
ClientWidth = 96
ItemIndex = 0
Items.Strings = (
'blGlyphLeft'
'blGlyphBottom'
'blGlyphRight'
'blGlyphTop'
)
OnClick = RadioGroup2Click
TabOrder = 9
end
end
object PopupMenu1: TPopupMenu
left = 734
@ -460,7 +423,6 @@ object Form1: TForm1
end
end
object ImageList1: TImageList
OnChange = nil
left = 656
top = 397
Bitmap = {

View File

@ -1,292 +1,251 @@
{ Das ist eine automatisch erzeugte Lazarus-Ressourcendatei }
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TForm1','FORMDATA',[
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'$'#1#6'Height'#3#236#1#3'Top'#3#130#0#5'W'
+'idth'#3't'#3#7'Caption'#6#5'Form1'#12'ClientHeight'#3#236#1#11'ClientWidth'
+#3't'#3#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy'#10'Paren'
+'tFont'#8#10'LCLVersion'#6#6'0.9.27'#0#6'TPanel'#6'Panel1'#6'Height'#3#236#1
+#5'Width'#3#134#2#5'Align'#7#8'alClient'#7'Caption'#6#6'Panel1'#12'ClientHei'
+'ght'#3#236#1#11'ClientWidth'#3#134#2#8'TabOrder'#2#0#0#15'TGradTabControl'
+#15'GradTabControl1'#4'Left'#2#1#6'Height'#3#234#1#3'Top'#2#1#5'Width'#3#132
+#2#5'Align'#7#8'alClient'#12'ControlStyle'#11#17'csAcceptsControls'#23'csOwn'
+'edChildsSelectable'#0#10'ActivePage'#7#12'GradTabPage2'#20'OnTabButtonMouse'
+'Down'#7'!GradTabControl1TabButtonMouseDown'#18'OnTabButtonMouseUp'#7#31'Gra'
+'dTabControl1TabButtonMouseUp'#20'OnTabButtonMouseMove'#7'!GradTabControl1Ta'
+'bButtonMouseMove'#10'OnDragDrop'#7#23'GradTabControl1DragDrop'#10'OnDragOve'
+'r'#7#23'GradTabControl1DragOver'#11'OnMouseDown'#7#24'GradTabControl1MouseD'
+'own'#14'OnMouseWheelUp'#7#27'GradTabControl1MouseWheelUp'#16'OnMouseWheelDo'
+'wn'#7#29'GradTabControl1MouseWheelDown'#9'PageIndex'#2#1#9'TabHeight'#2#20
+#13'MoveIncrement'#2#1#13'OnPageChanged'#7#26'GradTabControl1PageChanged'#6
+'Images'#7#10'ImageList1'#0#12'TGradTabPage'#12'GradTabPage1'#4'Left'#2#2#6
+'Height'#3#208#1#3'Top'#2#22#5'Width'#3#128#2#7'Caption'#6#3'abc'#5'Color'#7
+#10'clGrayText'#8'TabColor'#7#6'clBlue'#13'TabGlyph.Data'#10':'#4#0#0'6'#4#0
+#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0
+#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0'nUN'#141'pND'#166'h?5'#165#28#14#14
+#18#134#198#220'-k'#194#225#153'_'#188#221#184'U'#180#212#210'L'#169#202#232
+'C'#160#192#234'>'#156#188#213'B'#158#191#188'P'#168#199#159'y'#185#208';'#0
+#0'#'#0#0#0'#'#0'fNI'#130'Y=7pmB7pa'#134#150'Dp'#208#242#246'_'#199#235#255
+'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255
+')'#144#181#255'4'#156#192#255'U'#183#217#250#133#201#225'O'#0#0'#'#0'Q<6&nK'
+'B'#142'L-&kv'#187#210'ok'#210#245#255']'#186#213#255'Q'#175#205#255'R'#172
+#200#255'J'#168#199#255'E'#163#195#255'F'#159#188#255'='#153#184#255'@'#158
+#187#255'O'#181#217#255'z'#205#235#130#0#0'#'#0#0#0#0#6'X>5|`:0'#181'{'#175
+#193'm^'#187#219#252'^'#193#227#255'Z'#187#220#255'G'#176#212#255'<'#164#200
+#255'0'#153#189#255'('#144#180#255'3'#149#182#255'B'#162#196#255'T'#177#209
+#253'~'#192#210#136#0#0'#'#0#0#0'#'#0'iH>'#131'_90'#142#133#204#230'Zk'#210
+#246#255'_'#199#235#255'S'#187#223#255'G'#176#212#255'D'#164#195#255':'#154
+#183#255'('#144#180#255')'#144#181#255'4'#156#192#255'N'#182#218#255'}'#204
+#230'x'#0#0'#'#0#0#0#0#7'^?8m_8.it'#183#205'rh'#197#226#255'U'#176#205#255'N'
+#175#206#255'J'#171#205#255'C'#169#204#255'='#163#199#255'='#160#193#255'@'
+#161#193#255'I'#164#195#255'Q'#175#205#255'z'#204#233#130#0#0'#'#0#0#0#0#4'^'
+'A7'#138'e>3w'#133#184#196'Qi'#196#229#252'`'#199#235#255'S'#187#223#255'G'
+#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255')'#144#181#255'4'
+#156#192#255'W'#181#213#253#135#187#204'w'#0#0'#'#0#0#0'#'#0',#'#26#29'Q2)'
+#138'p'#177#198'qj'#210#246#255'`'#199#234#255'\'#183#211#255'O'#171#199#255
+'B'#161#192#255';'#155#185#255'9'#149#176#255'8'#146#175#255'6'#156#191#255
+'N'#182#218#255'{'#206#233#129#0#0'#'#0#0#0#0#4'pND'#150'lB7'#154'z'#187#206
+'q]'#184#210#255'P'#178#212#255'I'#179#216#255'D'#176#212#255'A'#168#205#255
+'9'#160#196#255'4'#157#194#255'5'#160#198#255'@'#165#198#255'O'#172#200#255
+'~'#202#228#134#0#0'#'#0#0#0#0#5'bD;'#177'P0('#159't'#157#168'Sl'#205#238#251
+'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255
+'('#144#180#255')'#144#181#255'4'#156#192#255'U'#182#216#253#130#192#205'l'#0
+#0'#'#0#0#0'#'#0'dF='#150'G,$]{'#196#221'lj'#210#246#255'`'#189#217#255'O'
+#176#205#255'J'#170#200#255'L'#168#196#255'I'#164#193#255'='#154#184#255'6'
+#151#182#255'@'#157#187#255'N'#182#218#255'z'#204#233#130#0#0'#'#0'dNF'#128
+'hH?'#142'U5-~'#132#197#217'j['#186#217#252'Y'#190#225#255'Y'#185#219#255'P'
+#177#211#255'<'#164#200#255'0'#153#189#255'1'#147#181#255'9'#153#187#255'@'
+#164#199#255'P'#175#207#253'|'#195#215#135#0#0'#'#0'kRJ|pLE'#137'\9-l'#195
+#218'Ol'#210#245#254'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200
+#255'0'#153#189#255'('#144#180#255')'#145#181#255'4'#156#192#255'O'#182#218
+#255#130#205#229'o'#0#0'#'#0#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235#255
+'I'#175#207#255';'#166#201#255'4'#162#197#255'.'#158#195#255'-'#157#194#255
+'-'#156#191#255'/'#155#190#255'6'#158#192#255'P'#178#210#255'y'#204#234#130#0
+#0'#'#0#0#0#0#9'bB:'#188'R2('#164'z'#164#179'U7'#162#195#243#24#159#207#255
+#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255
+#24#159#207#255#24#159#207#255'.'#159#196#247'{'#184#200'i'#0#0'#'#0#0#0'#'#0
+'{SIfg@4'#148#26#0#0#10'q'#161#162'$:'#159#189#158'1'#159#193#188'.'#159#195
+#211'+'#158#196#234'+'#159#195#236'-'#159#195#214'0'#159#195#191'7'#160#192
,#164'^'#161#173'1'#0#0'#'#0#0#0'#'#0#0#10'TToggleBox'#10'ToggleBox2'#4'Left'
+#3'e'#1#6'Height'#2#23#3'Top'#3#155#0#5'Width'#2'Z'#7'Caption'#6#10'ToggleBo'
+'x2'#8'TabOrder'#2#0#0#0#0#12'TGradTabPage'#12'GradTabPage4'#4'Left'#2#2#6'H'
+'eight'#3#208#1#3'Top'#2#22#5'Width'#3#128#2#9'PageIndex'#2#2#7'Caption'#6#11
+#195#164#195#182#195#188'-test'#8'TabColor'#7#6'clBlue'#13'TabGlyph.Data'#10
+':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0
+' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0'nUN'#141'pND'#166'h?'
+'5'#165#28#14#14#18#134#198#220'-k'#194#225#153'_'#188#221#184'U'#180#212#210
+'L'#169#202#232'C'#160#192#234'>'#156#188#213'B'#158#191#188'P'#168#199#159
+'y'#185#208';'#0#0'#'#0#0#0'#'#0'fNI'#130'Y=7pmB7pa'#134#150'Dp'#208#242#246
+'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255
+'('#144#180#255')'#144#181#255'4'#156#192#255'U'#183#217#250#133#201#225'O'#0
+#0'#'#0'Q<6&nKB'#142'L-&kv'#187#210'ok'#210#245#255']'#186#213#255'Q'#175#205
+#255'R'#172#200#255'J'#168#199#255'E'#163#195#255'F'#159#188#255'='#153#184
+#255'@'#158#187#255'O'#181#217#255'z'#205#235#130#0#0'#'#0#0#0#0#6'X>5|`:0'
+#181'{'#175#193'm^'#187#219#252'^'#193#227#255'Z'#187#220#255'G'#176#212#255
+'<'#164#200#255'0'#153#189#255'('#144#180#255'3'#149#182#255'B'#162#196#255
+'T'#177#209#253'~'#192#210#136#0#0'#'#0#0#0'#'#0'iH>'#131'_90'#142#133#204
+#230'Zk'#210#246#255'_'#199#235#255'S'#187#223#255'G'#176#212#255'D'#164#195
+#255':'#154#183#255'('#144#180#255')'#144#181#255'4'#156#192#255'N'#182#218
+#255'}'#204#230'x'#0#0'#'#0#0#0#0#7'^?8m_8.it'#183#205'rh'#197#226#255'U'#176
+#205#255'N'#175#206#255'J'#171#205#255'C'#169#204#255'='#163#199#255'='#160
+#193#255'@'#161#193#255'I'#164#195#255'Q'#175#205#255'z'#204#233#130#0#0'#'#0
+#0#0#0#4'^A7'#138'e>3w'#133#184#196'Qi'#196#229#252'`'#199#235#255'S'#187#223
+#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255')'#144#181
+#255'4'#156#192#255'W'#181#213#253#135#187#204'w'#0#0'#'#0#0#0'#'#0',#'#26#29
+'Q2)'#138'p'#177#198'qj'#210#246#255'`'#199#234#255'\'#183#211#255'O'#171#199
+#255'B'#161#192#255';'#155#185#255'9'#149#176#255'8'#146#175#255'6'#156#191
+#255'N'#182#218#255'{'#206#233#129#0#0'#'#0#0#0#0#4'pND'#150'lB7'#154'z'#187
+#206'q]'#184#210#255'P'#178#212#255'I'#179#216#255'D'#176#212#255'A'#168#205
+#255'9'#160#196#255'4'#157#194#255'5'#160#198#255'@'#165#198#255'O'#172#200
+#255'~'#202#228#134#0#0'#'#0#0#0#0#5'bD;'#177'P0('#159't'#157#168'Sl'#205#238
+#251'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189
+#255'('#144#180#255')'#144#181#255'4'#156#192#255'U'#182#216#253#130#192#205
+'l'#0#0'#'#0#0#0'#'#0'dF='#150'G,$]{'#196#221'lj'#210#246#255'`'#189#217#255
+'O'#176#205#255'J'#170#200#255'L'#168#196#255'I'#164#193#255'='#154#184#255
+'6'#151#182#255'@'#157#187#255'N'#182#218#255'z'#204#233#130#0#0'#'#0'dNF'
+#128'hH?'#142'U5-~'#132#197#217'j['#186#217#252'Y'#190#225#255'Y'#185#219#255
+'P'#177#211#255'<'#164#200#255'0'#153#189#255'1'#147#181#255'9'#153#187#255
+'@'#164#199#255'P'#175#207#253'|'#195#215#135#0#0'#'#0'kRJ|pLE'#137'\9-l'
+#195#218'Ol'#210#245#254'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164
+#200#255'0'#153#189#255'('#144#180#255')'#145#181#255'4'#156#192#255'O'#182
+#218#255#130#205#229'o'#0#0'#'#0#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235
+#255'I'#175#207#255';'#166#201#255'4'#162#197#255'.'#158#195#255'-'#157#194
+#255'-'#156#191#255'/'#155#190#255'6'#158#192#255'P'#178#210#255'y'#204#234
+#130#0#0'#'#0#0#0#0#9'bB:'#188'R2('#164'z'#164#179'U7'#162#195#243#24#159#207
+#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207
+#255#24#159#207#255#24#159#207#255'.'#159#196#247'{'#184#200'i'#0#0'#'#0#0#0
+'#'#0'{SIfg@4'#148#26#0#0#10'q'#161#162'$:'#159#189#158'1'#159#193#188'.'#159
+#195#211'+'#158#196#234'+'#159#195#236'-'#159#195#214'0'#159#195#191'7'#160
+#192#164'^'#161#173'1'#0#0'#'#0#0#0'#'#0#0#0#12'TGradTabPage'#12'GradTabPage'
+'3'#4'Left'#2#2#6'Height'#3#210#1#3'Top'#2#22#5'Width'#3#128#2#9'PageIndex'#2
+#3#7'Caption'#6#12'GradTabPage3'#8'TabColor'#7#6'clBlue'#13'TabGlyph.Data'#10
+':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0
+' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0'nUN'#141'pND'#166'h?'
+'5'#165#28#14#14#18#134#198#220'-k'#194#225#153'_'#188#221#184'U'#180#212#210
+'L'#169#202#232'C'#160#192#234'>'#156#188#213'B'#158#191#188'P'#168#199#159
+'y'#185#208';'#0#0'#'#0#0#0'#'#0'fNI'#130'Y=7pmB7pa'#134#150'Dp'#208#242#246
+'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255
+'('#144#180#255')'#144#181#255'4'#156#192#255'U'#183#217#250#133#201#225'O'#0
+#0'#'#0'Q<6&nKB'#142'L-&kv'#187#210'ok'#210#245#255']'#186#213#255'Q'#175#205
+#255'R'#172#200#255'J'#168#199#255'E'#163#195#255'F'#159#188#255'='#153#184
+#255'@'#158#187#255'O'#181#217#255'z'#205#235#130#0#0'#'#0#0#0#0#6'X>5|`:0'
+#181'{'#175#193'm^'#187#219#252'^'#193#227#255'Z'#187#220#255'G'#176#212#255
,'<'#164#200#255'0'#153#189#255'('#144#180#255'3'#149#182#255'B'#162#196#255
+'T'#177#209#253'~'#192#210#136#0#0'#'#0#0#0'#'#0'iH>'#131'_90'#142#133#204
+#230'Zk'#210#246#255'_'#199#235#255'S'#187#223#255'G'#176#212#255'D'#164#195
+#255':'#154#183#255'('#144#180#255')'#144#181#255'4'#156#192#255'N'#182#218
+#255'}'#204#230'x'#0#0'#'#0#0#0#0#7'^?8m_8.it'#183#205'rh'#197#226#255'U'#176
+#205#255'N'#175#206#255'J'#171#205#255'C'#169#204#255'='#163#199#255'='#160
+#193#255'@'#161#193#255'I'#164#195#255'Q'#175#205#255'z'#204#233#130#0#0'#'#0
+#0#0#0#4'^A7'#138'e>3w'#133#184#196'Qi'#196#229#252'`'#199#235#255'S'#187#223
+#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255')'#144#181
+#255'4'#156#192#255'W'#181#213#253#135#187#204'w'#0#0'#'#0#0#0'#'#0',#'#26#29
+'Q2)'#138'p'#177#198'qj'#210#246#255'`'#199#234#255'\'#183#211#255'O'#171#199
+#255'B'#161#192#255';'#155#185#255'9'#149#176#255'8'#146#175#255'6'#156#191
+#255'N'#182#218#255'{'#206#233#129#0#0'#'#0#0#0#0#4'pND'#150'lB7'#154'z'#187
+#206'q]'#184#210#255'P'#178#212#255'I'#179#216#255'D'#176#212#255'A'#168#205
+#255'9'#160#196#255'4'#157#194#255'5'#160#198#255'@'#165#198#255'O'#172#200
+#255'~'#202#228#134#0#0'#'#0#0#0#0#5'bD;'#177'P0('#159't'#157#168'Sl'#205#238
+#251'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189
+#255'('#144#180#255')'#144#181#255'4'#156#192#255'U'#182#216#253#130#192#205
+'l'#0#0'#'#0#0#0'#'#0'dF='#150'G,$]{'#196#221'lj'#210#246#255'`'#189#217#255
+'O'#176#205#255'J'#170#200#255'L'#168#196#255'I'#164#193#255'='#154#184#255
+'6'#151#182#255'@'#157#187#255'N'#182#218#255'z'#204#233#130#0#0'#'#0'dNF'
+#128'hH?'#142'U5-~'#132#197#217'j['#186#217#252'Y'#190#225#255'Y'#185#219#255
+'P'#177#211#255'<'#164#200#255'0'#153#189#255'1'#147#181#255'9'#153#187#255
+'@'#164#199#255'P'#175#207#253'|'#195#215#135#0#0'#'#0'kRJ|pLE'#137'\9-l'
+#195#218'Ol'#210#245#254'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164
+#200#255'0'#153#189#255'('#144#180#255')'#145#181#255'4'#156#192#255'O'#182
+#218#255#130#205#229'o'#0#0'#'#0#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235
+#255'I'#175#207#255';'#166#201#255'4'#162#197#255'.'#158#195#255'-'#157#194
+#255'-'#156#191#255'/'#155#190#255'6'#158#192#255'P'#178#210#255'y'#204#234
+#130#0#0'#'#0#0#0#0#9'bB:'#188'R2('#164'z'#164#179'U7'#162#195#243#24#159#207
+#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207
+#255#24#159#207#255#24#159#207#255'.'#159#196#247'{'#184#200'i'#0#0'#'#0#0#0
+'#'#0'{SIfg@4'#148#26#0#0#10'q'#161#162'$:'#159#189#158'1'#159#193#188'.'#159
+#195#211'+'#158#196#234'+'#159#195#236'-'#159#195#214'0'#159#195#191'7'#160
+#192#164'^'#161#173'1'#0#0'#'#0#0#0'#'#0#0#7'TButton'#7'Button3'#4'Left'#2'c'
+#6'Height'#2#25#3'Top'#2'G'#5'Width'#2'K'#7'Caption'#6#7'Button3'#8'TabOrder'
+#2#0#0#0#0#12'TGradTabPage'#12'GradTabPage2'#4'Left'#2#2#6'Height'#3#210#1#3
+'Top'#2#22#5'Width'#3#128#2#9'PageIndex'#2#1#7'Caption'#6#12'GradTabPage2'#12
+'TabPopupMenu'#7#10'PopupMenu1'#8'TabColor'#7#7'clGreen'#13'TabGlyph.Data'#10
+':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0
+' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0'nUN'#141'pND'#166'h?'
+'5'#165#28#14#14#18#134#198#220'-k'#194#225#153'_'#188#221#184'U'#180#212#210
+'L'#169#202#232'C'#160#192#234'>'#156#188#213'B'#158#191#188'P'#168#199#159
+'y'#185#208';'#0#0'#'#0#0#0'#'#0'fNI'#130'Y=7pmB7pa'#134#150'Dp'#208#242#246
+'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255
+'('#144#180#255')'#144#181#255'4'#156#192#255'U'#183#217#250#133#201#225'O'#0
+#0'#'#0'Q<6&nKB'#142'L-&kv'#187#210'ok'#210#245#255']'#186#213#255'Q'#175#205
+#255'R'#172#200#255'J'#168#199#255'E'#163#195#255'F'#159#188#255'='#153#184
+#255'@'#158#187#255'O'#181#217#255'z'#205#235#130#0#0'#'#0#0#0#0#6'X>5|`:0'
+#181'{'#175#193'm^'#187#219#252'^'#193#227#255'Z'#187#220#255'G'#176#212#255
+'<'#164#200#255'0'#153#189#255'('#144#180#255'3'#149#182#255'B'#162#196#255
+'T'#177#209#253'~'#192#210#136#0#0'#'#0#0#0'#'#0'iH>'#131'_90'#142#133#204
+#230'Zk'#210#246#255'_'#199#235#255'S'#187#223#255'G'#176#212#255'D'#164#195
+#255':'#154#183#255'('#144#180#255')'#144#181#255'4'#156#192#255'N'#182#218
+#255'}'#204#230'x'#0#0'#'#0#0#0#0#7'^?8m_8.it'#183#205'rh'#197#226#255'U'#176
+#205#255'N'#175#206#255'J'#171#205#255'C'#169#204#255'='#163#199#255'='#160
+#193#255'@'#161#193#255'I'#164#195#255'Q'#175#205#255'z'#204#233#130#0#0'#'#0
+#0#0#0#4'^A7'#138'e>3w'#133#184#196'Qi'#196#229#252'`'#199#235#255'S'#187#223
+#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255')'#144#181
+#255'4'#156#192#255'W'#181#213#253#135#187#204'w'#0#0'#'#0#0#0'#'#0',#'#26#29
+'Q2)'#138'p'#177#198'qj'#210#246#255'`'#199#234#255'\'#183#211#255'O'#171#199
+#255'B'#161#192#255';'#155#185#255'9'#149#176#255'8'#146#175#255'6'#156#191
+#255'N'#182#218#255'{'#206#233#129#0#0'#'#0#0#0#0#4'pND'#150'lB7'#154'z'#187
+#206'q]'#184#210#255'P'#178#212#255'I'#179#216#255'D'#176#212#255'A'#168#205
,#255'9'#160#196#255'4'#157#194#255'5'#160#198#255'@'#165#198#255'O'#172#200
+#255'~'#202#228#134#0#0'#'#0#0#0#0#5'bD;'#177'P0('#159't'#157#168'Sl'#205#238
+#251'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189
+#255'('#144#180#255')'#144#181#255'4'#156#192#255'U'#182#216#253#130#192#205
+'l'#0#0'#'#0#0#0'#'#0'dF='#150'G,$]{'#196#221'lj'#210#246#255'`'#189#217#255
+'O'#176#205#255'J'#170#200#255'L'#168#196#255'I'#164#193#255'='#154#184#255
+'6'#151#182#255'@'#157#187#255'N'#182#218#255'z'#204#233#130#0#0'#'#0'dNF'
+#128'hH?'#142'U5-~'#132#197#217'j['#186#217#252'Y'#190#225#255'Y'#185#219#255
+'P'#177#211#255'<'#164#200#255'0'#153#189#255'1'#147#181#255'9'#153#187#255
+'@'#164#199#255'P'#175#207#253'|'#195#215#135#0#0'#'#0'kRJ|pLE'#137'\9-l'
+#195#218'Ol'#210#245#254'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164
+#200#255'0'#153#189#255'('#144#180#255')'#145#181#255'4'#156#192#255'O'#182
+#218#255#130#205#229'o'#0#0'#'#0#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235
+#255'I'#175#207#255';'#166#201#255'4'#162#197#255'.'#158#195#255'-'#157#194
+#255'-'#156#191#255'/'#155#190#255'6'#158#192#255'P'#178#210#255'y'#204#234
+#130#0#0'#'#0#0#0#0#9'bB:'#188'R2('#164'z'#164#179'U7'#162#195#243#24#159#207
+#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207
+#255#24#159#207#255#24#159#207#255'.'#159#196#247'{'#184#200'i'#0#0'#'#0#0#0
+'#'#0'{SIfg@4'#148#26#0#0#10'q'#161#162'$:'#159#189#158'1'#159#193#188'.'#159
+#195#211'+'#158#196#234'+'#159#195#236'-'#159#195#214'0'#159#195#191'7'#160
+#192#164'^'#161#173'1'#0#0'#'#0#0#0'#'#0#12'TabShowGlyph'#9#0#12'TPageContro'
+'l'#12'PageControl1'#4'Left'#3#173#0#6'Height'#3#200#0#3'Top'#2'9'#5'Width'#3
+#200#0#10'ActivePage'#7#9'TabSheet3'#8'TabIndex'#2#2#8'TabOrder'#2#0#10'OnDr'
+'agDrop'#7#20'PageControl1DragDrop'#10'OnDragOver'#7#20'PageControl1DragOver'
+#0#9'TTabSheet'#9'TabSheet1'#7'Caption'#6#9'TabSheet1'#0#0#9'TTabSheet'#9'Ta'
+'bSheet2'#7'Caption'#6#9'TabSheet2'#0#0#9'TTabSheet'#9'TabSheet3'#7'Caption'
+#6#9'TabSheet3'#0#0#0#7'TButton'#7'Button2'#4'Left'#2'/'#6'Height'#2#25#3'To'
+'p'#2#28#5'Width'#2'K'#7'Caption'#6#7'Button2'#8'TabOrder'#2#1#0#0#6'TPanel'
+#6'Panel3'#4'Left'#3#173#1#6'Height'#2'2'#3'Top'#2'Y'#5'Width'#3#170#0#7'Cap'
+'tion'#6#6'Panel3'#8'TabOrder'#2#2#0#0#0#0#0#6'TPanel'#6'Panel2'#4'Left'#3
+#134#2#6'Height'#3#236#1#5'Width'#3#238#0#5'Align'#7#7'alRight'#12'ClientHei'
+'ght'#3#236#1#11'ClientWidth'#3#238#0#8'TabOrder'#2#1#0#6'TLabel'#6'Label1'#4
+'Left'#2#16#6'Height'#2#14#3'Top'#3#160#0#5'Width'#2'2'#7'Caption'#6#9'TabHe'
+'ight'#11'ParentColor'#8#0#0#9'TComboBox'#9'ComboBox1'#4'Left'#2#16#6'Height'
+#2#21#3'Top'#2#16#5'Width'#2'd'#10'ItemHeight'#2#13#8'OnChange'#7#15'ComboBo'
+'x1Change'#5'Style'#7#14'csDropDownList'#8'TabOrder'#2#0#0#0#11'TRadioGroup'
+#11'RadioGroup1'#4'Left'#3#128#0#6'Height'#2'q'#3'Top'#2#16#5'Width'#2'd'#8
+'AutoFill'#9#7'Caption'#6#12'Tab Position'#28'ChildSizing.LeftRightSpacing'#2
+#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#243#0#6'Height'#3#236#1#3'Top'#2'i'#5'Wid'
+'th'#3't'#3#7'Caption'#6#25'TGradTabControl-Testsuite'#12'ClientHeight'#3#236
+#1#11'ClientWidth'#3't'#3#8'OnCreate'#7#10'FormCreate'#9'OnDestroy'#7#11'For'
+'mDestroy'#10'LCLVersion'#6#6'0.9.27'#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'He'
+'ight'#3#236#1#3'Top'#2#0#5'Width'#3#134#2#5'Align'#7#8'alClient'#7'Caption'
+#6#6'Panel1'#12'ClientHeight'#3#236#1#11'ClientWidth'#3#134#2#8'TabOrder'#2#0
+#0#15'TGradTabControl'#15'GradTabControl1'#4'Left'#2#1#6'Height'#3#234#1#3'T'
+'op'#2#1#5'Width'#3#132#2#5'Align'#7#8'alClient'#10'ActivePage'#7#12'GradTab'
+'Page1'#20'OnTabButtonMouseDown'#7'!GradTabControl1TabButtonMouseDown'#18'On'
+'TabButtonMouseUp'#7#31'GradTabControl1TabButtonMouseUp'#20'OnTabButtonMouse'
+'Move'#7'!GradTabControl1TabButtonMouseMove'#21'OnTabCloseButtonClick'#7'"Gr'
+'adTabControl1TabCloseButtonClick'#10'OnDragDrop'#7#23'GradTabControl1DragDr'
+'op'#10'OnDragOver'#7#23'GradTabControl1DragOver'#11'OnMouseDown'#7#24'GradT'
+'abControl1MouseDown'#14'OnMouseWheelUp'#7#27'GradTabControl1MouseWheelUp'#16
+'OnMouseWheelDown'#7#29'GradTabControl1MouseWheelDown'#9'PageIndex'#2#0#9'Ta'
+'bHeight'#2#20#8'LongTabs'#8#9'LongWidth'#2'e'#13'OnPageChanged'#7#26'GradTa'
+'bControl1PageChanged'#23'ShowLeftTopScrollButton'#8#27'ShowRightBottomScrol'
+'lButton'#8#6'Images'#7#10'ImageList1'#0#12'TGradTabPage'#12'GradTabPage3'#4
+'Left'#2#2#6'Height'#3#210#1#3'Top'#2#22#5'Width'#3#128#2#9'PageIndex'#2#2#7
+'Caption'#6#12'GradTabPage3'#8'TabColor'#7#6'clBlue'#16'TabTextAlignment'#7
+#13'taLeftJustify'#13'TabGlyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0
+'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0
+#0#0#0#0#0#0#0#0#0'nUN'#141'pND'#166'h?5'#165#28#14#14#18#134#198#220'-k'#194
+#225#153'_'#188#221#184'U'#180#212#210'L'#169#202#232'C'#160#192#234'>'#156
+#188#213'B'#158#191#188'P'#168#199#159'y'#185#208';'#0#0'#'#0#0#0'#'#0'fNI'
+#130'Y=7pmB7pa'#134#150'Dp'#208#242#246'_'#199#235#255'S'#187#223#255'G'#176
+#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255')'#144#181#255'4'#156
+#192#255'U'#183#217#250#133#201#225'O'#0#0'#'#0'Q<6&nKB'#142'L-&kv'#187#210
+'ok'#210#245#255']'#186#213#255'Q'#175#205#255'R'#172#200#255'J'#168#199#255
+'E'#163#195#255'F'#159#188#255'='#153#184#255'@'#158#187#255'O'#181#217#255
+'z'#205#235#130#0#0'#'#0#0#0#0#6'X>5|`:0'#181'{'#175#193'm^'#187#219#252'^'
+#193#227#255'Z'#187#220#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('
+#144#180#255'3'#149#182#255'B'#162#196#255'T'#177#209#253'~'#192#210#136#0#0
+'#'#0#0#0'#'#0'iH>'#131'_90'#142#133#204#230'Zk'#210#246#255'_'#199#235#255
+'S'#187#223#255'G'#176#212#255'D'#164#195#255':'#154#183#255'('#144#180#255
+')'#144#181#255'4'#156#192#255'N'#182#218#255'}'#204#230'x'#0#0'#'#0#0#0#0#7
+'^?8m_8.it'#183#205'rh'#197#226#255'U'#176#205#255'N'#175#206#255'J'#171#205
+#255'C'#169#204#255'='#163#199#255'='#160#193#255'@'#161#193#255'I'#164#195
+#255'Q'#175#205#255'z'#204#233#130#0#0'#'#0#0#0#0#4'^A7'#138'e>3w'#133#184
+#196'Qi'#196#229#252'`'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200
+#255'0'#153#189#255'('#144#180#255')'#144#181#255'4'#156#192#255'W'#181#213
+#253#135#187#204'w'#0#0'#'#0#0#0'#'#0',#'#26#29'Q2)'#138'p'#177#198'qj'#210
+#246#255'`'#199#234#255'\'#183#211#255'O'#171#199#255'B'#161#192#255';'#155
+#185#255'9'#149#176#255'8'#146#175#255'6'#156#191#255'N'#182#218#255'{'#206
+#233#129#0#0'#'#0#0#0#0#4'pND'#150'lB7'#154'z'#187#206'q]'#184#210#255'P'#178
+#212#255'I'#179#216#255'D'#176#212#255'A'#168#205#255'9'#160#196#255'4'#157
+#194#255'5'#160#198#255'@'#165#198#255'O'#172#200#255'~'#202#228#134#0#0'#'#0
+#0#0#0#5'bD;'#177'P0('#159't'#157#168'Sl'#205#238#251'_'#199#235#255'S'#187
+#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255')'#144
+#181#255'4'#156#192#255'U'#182#216#253#130#192#205'l'#0#0'#'#0#0#0'#'#0'dF='
+#150'G,$]{'#196#221'lj'#210#246#255'`'#189#217#255'O'#176#205#255'J'#170#200
+#255'L'#168#196#255'I'#164#193#255'='#154#184#255'6'#151#182#255'@'#157#187
+#255'N'#182#218#255'z'#204#233#130#0#0'#'#0'dNF'#128'hH?'#142'U5-~'#132#197
+#217'j['#186#217#252'Y'#190#225#255'Y'#185#219#255'P'#177#211#255'<'#164#200
+#255'0'#153#189#255'1'#147#181#255'9'#153#187#255'@'#164#199#255'P'#175#207
+#253'|'#195#215#135#0#0'#'#0'kRJ|pLE'#137'\9-l'#195#218'Ol'#210#245#254'_'
+#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('
+#144#180#255')'#145#181#255'4'#156#192#255'O'#182#218#255#130#205#229'o'#0#0
+'#'#0#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235#255'I'#175#207#255';'#166
+#201#255'4'#162#197#255'.'#158#195#255'-'#157#194#255'-'#156#191#255'/'#155
+#190#255'6'#158#192#255'P'#178#210#255'y'#204#234#130#0#0'#'#0#0#0#0#9'bB:'
+#188'R2('#164'z'#164#179'U7'#162#195#243#24#159#207#255#24#159#207#255#24#159
+#207#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255#24#159
+#207#255'.'#159#196#247'{'#184#200'i'#0#0'#'#0#0#0'#'#0'{SIfg@4'#148#26#0#0
,#10'q'#161#162'$:'#159#189#158'1'#159#193#188'.'#159#195#211'+'#158#196#234
+'+'#159#195#236'-'#159#195#214'0'#159#195#191'7'#160#192#164'^'#161#173'1'#0
+#0'#'#0#0#0'#'#0#12'TabShowGlyph'#9#15'TabButtonLayout'#7#11'blGlyphLeft'#0#0
+#12'TGradTabPage'#12'GradTabPage2'#4'Left'#2#2#6'Height'#3#210#1#3'Top'#2#22
+#5'Width'#3#128#2#9'PageIndex'#2#1#7'Caption'#6#12'GradTabPage2'#15'ShowClos'
+'eButton'#9#8'TabColor'#7#6'clBlue'#16'TabTextAlignment'#7#13'taLeftJustify'
+#13'TabGlyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0
+#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0
+'nUN'#141'pND'#166'h?5'#165#28#14#14#18#134#198#220'-k'#194#225#153'_'#188
+#221#184'U'#180#212#210'L'#169#202#232'C'#160#192#234'>'#156#188#213'B'#158
+#191#188'P'#168#199#159'y'#185#208';'#0#0'#'#0#0#0'#'#0'fNI'#130'Y=7pmB7pa'
+#134#150'Dp'#208#242#246'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164
+#200#255'0'#153#189#255'('#144#180#255')'#144#181#255'4'#156#192#255'U'#183
+#217#250#133#201#225'O'#0#0'#'#0'Q<6&nKB'#142'L-&kv'#187#210'ok'#210#245#255
+']'#186#213#255'Q'#175#205#255'R'#172#200#255'J'#168#199#255'E'#163#195#255
+'F'#159#188#255'='#153#184#255'@'#158#187#255'O'#181#217#255'z'#205#235#130#0
+#0'#'#0#0#0#0#6'X>5|`:0'#181'{'#175#193'm^'#187#219#252'^'#193#227#255'Z'#187
+#220#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255'3'#149
+#182#255'B'#162#196#255'T'#177#209#253'~'#192#210#136#0#0'#'#0#0#0'#'#0'iH>'
+#131'_90'#142#133#204#230'Zk'#210#246#255'_'#199#235#255'S'#187#223#255'G'
+#176#212#255'D'#164#195#255':'#154#183#255'('#144#180#255')'#144#181#255'4'
+#156#192#255'N'#182#218#255'}'#204#230'x'#0#0'#'#0#0#0#0#7'^?8m_8.it'#183#205
+'rh'#197#226#255'U'#176#205#255'N'#175#206#255'J'#171#205#255'C'#169#204#255
+'='#163#199#255'='#160#193#255'@'#161#193#255'I'#164#195#255'Q'#175#205#255
+'z'#204#233#130#0#0'#'#0#0#0#0#4'^A7'#138'e>3w'#133#184#196'Qi'#196#229#252
+'`'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255
+'('#144#180#255')'#144#181#255'4'#156#192#255'W'#181#213#253#135#187#204'w'#0
+#0'#'#0#0#0'#'#0',#'#26#29'Q2)'#138'p'#177#198'qj'#210#246#255'`'#199#234#255
+'\'#183#211#255'O'#171#199#255'B'#161#192#255';'#155#185#255'9'#149#176#255
+'8'#146#175#255'6'#156#191#255'N'#182#218#255'{'#206#233#129#0#0'#'#0#0#0#0#4
+'pND'#150'lB7'#154'z'#187#206'q]'#184#210#255'P'#178#212#255'I'#179#216#255
+'D'#176#212#255'A'#168#205#255'9'#160#196#255'4'#157#194#255'5'#160#198#255
+'@'#165#198#255'O'#172#200#255'~'#202#228#134#0#0'#'#0#0#0#0#5'bD;'#177'P0('
+#159't'#157#168'Sl'#205#238#251'_'#199#235#255'S'#187#223#255'G'#176#212#255
+'<'#164#200#255'0'#153#189#255'('#144#180#255')'#144#181#255'4'#156#192#255
+'U'#182#216#253#130#192#205'l'#0#0'#'#0#0#0'#'#0'dF='#150'G,$]{'#196#221'lj'
+#210#246#255'`'#189#217#255'O'#176#205#255'J'#170#200#255'L'#168#196#255'I'
+#164#193#255'='#154#184#255'6'#151#182#255'@'#157#187#255'N'#182#218#255'z'
+#204#233#130#0#0'#'#0'dNF'#128'hH?'#142'U5-~'#132#197#217'j['#186#217#252'Y'
+#190#225#255'Y'#185#219#255'P'#177#211#255'<'#164#200#255'0'#153#189#255'1'
+#147#181#255'9'#153#187#255'@'#164#199#255'P'#175#207#253'|'#195#215#135#0#0
+'#'#0'kRJ|pLE'#137'\9-l'#195#218'Ol'#210#245#254'_'#199#235#255'S'#187#223
+#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255')'#145#181
+#255'4'#156#192#255'O'#182#218#255#130#205#229'o'#0#0'#'#0#0#0#0#6'6"'#27'&M'
+'.(t}'#198#223'lk'#204#235#255'I'#175#207#255';'#166#201#255'4'#162#197#255
+'.'#158#195#255'-'#157#194#255'-'#156#191#255'/'#155#190#255'6'#158#192#255
+'P'#178#210#255'y'#204#234#130#0#0'#'#0#0#0#0#9'bB:'#188'R2('#164'z'#164#179
+'U7'#162#195#243#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255
+#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255'.'#159#196#247
+'{'#184#200'i'#0#0'#'#0#0#0'#'#0'{SIfg@4'#148#26#0#0#10'q'#161#162'$:'#159
+#189#158'1'#159#193#188'.'#159#195#211'+'#158#196#234'+'#159#195#236'-'#159
+#195#214'0'#159#195#191'7'#160#192#164'^'#161#173'1'#0#0'#'#0#0#0'#'#0#12'Ta'
+'bShowGlyph'#9#15'TabButtonLayout'#7#11'blGlyphLeft'#0#0#12'TGradTabPage'#12
+'GradTabPage1'#4'Left'#2#2#6'Height'#3#210#1#3'Top'#2#22#5'Width'#3#128#2#9
+'PageIndex'#2#0#7'Caption'#6#9'Some Memo'#15'ShowCloseButton'#9#5'Color'#7#10
+'clGrayText'#8'TabColor'#7#7'clGreen'#16'TabTextAlignment'#7#13'taLeftJustif'
+'y'#13'TabGlyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0
+#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0
+#0'nUN'#141'pND'#166'h?5'#165#28#14#14#18#134#198#220'-k'#194#225#153'_'#188
+#221#184'U'#180#212#210'L'#169#202#232'C'#160#192#234'>'#156#188#213'B'#158
+#191#188'P'#168#199#159'y'#185#208';'#0#0'#'#0#0#0'#'#0'fNI'#130'Y=7pmB7pa'
+#134#150'Dp'#208#242#246'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164
+#200#255'0'#153#189#255'('#144#180#255')'#144#181#255'4'#156#192#255'U'#183
+#217#250#133#201#225'O'#0#0'#'#0'Q<6&nKB'#142'L-&kv'#187#210'ok'#210#245#255
,']'#186#213#255'Q'#175#205#255'R'#172#200#255'J'#168#199#255'E'#163#195#255
+'F'#159#188#255'='#153#184#255'@'#158#187#255'O'#181#217#255'z'#205#235#130#0
+#0'#'#0#0#0#0#6'X>5|`:0'#181'{'#175#193'm^'#187#219#252'^'#193#227#255'Z'#187
+#220#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255'3'#149
+#182#255'B'#162#196#255'T'#177#209#253'~'#192#210#136#0#0'#'#0#0#0'#'#0'iH>'
+#131'_90'#142#133#204#230'Zk'#210#246#255'_'#199#235#255'S'#187#223#255'G'
+#176#212#255'D'#164#195#255':'#154#183#255'('#144#180#255')'#144#181#255'4'
+#156#192#255'N'#182#218#255'}'#204#230'x'#0#0'#'#0#0#0#0#7'^?8m_8.it'#183#205
+'rh'#197#226#255'U'#176#205#255'N'#175#206#255'J'#171#205#255'C'#169#204#255
+'='#163#199#255'='#160#193#255'@'#161#193#255'I'#164#195#255'Q'#175#205#255
+'z'#204#233#130#0#0'#'#0#0#0#0#4'^A7'#138'e>3w'#133#184#196'Qi'#196#229#252
+'`'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255
+'('#144#180#255')'#144#181#255'4'#156#192#255'W'#181#213#253#135#187#204'w'#0
+#0'#'#0#0#0'#'#0',#'#26#29'Q2)'#138'p'#177#198'qj'#210#246#255'`'#199#234#255
+'\'#183#211#255'O'#171#199#255'B'#161#192#255';'#155#185#255'9'#149#176#255
+'8'#146#175#255'6'#156#191#255'N'#182#218#255'{'#206#233#129#0#0'#'#0#0#0#0#4
+'pND'#150'lB7'#154'z'#187#206'q]'#184#210#255'P'#178#212#255'I'#179#216#255
+'D'#176#212#255'A'#168#205#255'9'#160#196#255'4'#157#194#255'5'#160#198#255
+'@'#165#198#255'O'#172#200#255'~'#202#228#134#0#0'#'#0#0#0#0#5'bD;'#177'P0('
+#159't'#157#168'Sl'#205#238#251'_'#199#235#255'S'#187#223#255'G'#176#212#255
+'<'#164#200#255'0'#153#189#255'('#144#180#255')'#144#181#255'4'#156#192#255
+'U'#182#216#253#130#192#205'l'#0#0'#'#0#0#0'#'#0'dF='#150'G,$]{'#196#221'lj'
+#210#246#255'`'#189#217#255'O'#176#205#255'J'#170#200#255'L'#168#196#255'I'
+#164#193#255'='#154#184#255'6'#151#182#255'@'#157#187#255'N'#182#218#255'z'
+#204#233#130#0#0'#'#0'dNF'#128'hH?'#142'U5-~'#132#197#217'j['#186#217#252'Y'
+#190#225#255'Y'#185#219#255'P'#177#211#255'<'#164#200#255'0'#153#189#255'1'
+#147#181#255'9'#153#187#255'@'#164#199#255'P'#175#207#253'|'#195#215#135#0#0
+'#'#0'kRJ|pLE'#137'\9-l'#195#218'Ol'#210#245#254'_'#199#235#255'S'#187#223
+#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144#180#255')'#145#181
+#255'4'#156#192#255'O'#182#218#255#130#205#229'o'#0#0'#'#0#0#0#0#6'6"'#27'&M'
+'.(t}'#198#223'lk'#204#235#255'I'#175#207#255';'#166#201#255'4'#162#197#255
+'.'#158#195#255'-'#157#194#255'-'#156#191#255'/'#155#190#255'6'#158#192#255
+'P'#178#210#255'y'#204#234#130#0#0'#'#0#0#0#0#9'bB:'#188'R2('#164'z'#164#179
+'U7'#162#195#243#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255
+#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255'.'#159#196#247
+'{'#184#200'i'#0#0'#'#0#0#0'#'#0'{SIfg@4'#148#26#0#0#10'q'#161#162'$:'#159
+#189#158'1'#159#193#188'.'#159#195#211'+'#158#196#234'+'#159#195#236'-'#159
+#195#214'0'#159#195#191'7'#160#192#164'^'#161#173'1'#0#0'#'#0#0#0'#'#0#12'Ta'
+'bShowGlyph'#9#15'TabButtonLayout'#7#11'blGlyphLeft'#0#5'TMemo'#5'Memo1'#4'L'
+'eft'#3'8'#1#6'Height'#3#210#1#3'Top'#2#0#5'Width'#3'H'#1#5'Align'#7#7'alRig'
+'ht'#13'Lines.Strings'#1#6#9'Some Memo'#6#7'alRight'#0#8'TabOrder'#2#0#0#0#0
+#0#0#6'TPanel'#6'Panel2'#4'Left'#3#134#2#6'Height'#3#236#1#3'Top'#2#0#5'Widt'
+'h'#3#238#0#5'Align'#7#7'alRight'#12'ClientHeight'#3#236#1#11'ClientWidth'#3
+#238#0#8'TabOrder'#2#1#0#6'TLabel'#6'Label1'#4'Left'#2#16#6'Height'#2#16#3'T'
+'op'#3#160#0#5'Width'#2'9'#7'Caption'#6#9'TabHeight'#11'ParentColor'#8#0#0#9
+'TComboBox'#9'ComboBox1'#4'Left'#2#16#6'Height'#2#23#3'Top'#2#16#5'Width'#2
+'d'#10'ItemHeight'#2#15#8'OnChange'#7#15'ComboBox1Change'#5'Style'#7#14'csDr'
+'opDownList'#8'TabOrder'#2#0#0#0#11'TRadioGroup'#11'RadioGroup1'#4'Left'#3
+#128#0#6'Height'#2'q'#3'Top'#2#16#5'Width'#2'd'#8'AutoFill'#9#7'Caption'#6#12
+'Tab Position'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottom'
+'Spacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResiz'
+'e'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildS'
+'izing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'
+#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBot'
+'tom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'_'#11'ClientWid'
+'th'#2'`'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#5'tpTop'#6#8'tpBottom'#6#6
+'tpLeft'#6#7'tpRight'#0#7'OnClick'#7#16'RadioGroup1Click'#8'TabOrder'#2#1#0#0
+#9'TCheckBox'#9'CheckBox1'#4'Left'#2#16#6'Height'#2#16#3'Top'#2'p'#5'Width'#2
+'d'#8'AutoSize'#8#7'Caption'#6#9'Long Tabs'#7'OnClick'#7#14'CheckBox1Click'#8
+'TabOrder'#2#2#0#0#11'TGradButton'#10'NewPageBtn'#4'Left'#2#16#6'Height'#2#25
+#3'Top'#2'0'#5'Width'#2'd'#7'Caption'#6#8'New Page'#10'Font.Color'#7#7'clWhi'
+'te'#7'OnClick'#7#15'NewPageBtnClick'#8'TabOrder'#2#3#7'TabStop'#9#11'Normal'
+'Blend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'#167#254
+'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColor'#7#7'c'
,'lWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'clBtnFace'
+#15'ShowFocusBorder'#9#9'ShowGlyph'#8#20'GlyphBackgroundColor'#7#7'clWhite'
+#10'ClickColor'#7#6'clBlue'#19'OwnerBackgroundDraw'#8#22'AutoWidthBorderSpac'
+'ing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradButton'#9'DeleteBtn'
+#4'Left'#2#16#6'Height'#2#25#3'Top'#2'P'#5'Width'#2'd'#7'Caption'#6#6'Delete'
+#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#14'DeleteBtnClick'#8'TabOrder'#2#4
+#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'
+#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16
+'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'Backgrou'
+'ndColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#9'ShowGlyph'#8#20'GlyphBackgr'
+'oundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#19'OwnerBackgroundDraw'#8
+#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#9'TSpi'
+'nEdit'#9'SpinEdit2'#4'Left'#2#16#6'Height'#2#25#3'Top'#3#176#0#5'Width'#2'd'
+#13'OnEditingDone'#7#20'SpinEdit2EditingDone'#8'TabOrder'#2#5#0#0#5'TEdit'#5
+'Edit1'#4'Left'#2#16#6'Height'#2#25#3'Top'#3#136#0#5'Width'#2'H'#8'TabOrder'
+#2#6#4'Text'#6#5'Edit1'#0#0#11'TGradButton'#11'GradButton1'#4'Left'#2'Z'#6'H'
+'eight'#2#19#3'Top'#3#136#0#5'Width'#2#26#7'Caption'#6#3'set'#10'Font.Color'
+#7#7'clWhite'#7'OnClick'#7#16'GradButton1Click'#8'TabOrder'#2#7#7'TabStop'#9
+#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'#12#2'+'
+#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalBlendColo'
+'r'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'#7#9'cl'
+'BtnFace'#15'ShowFocusBorder'#9#9'ShowGlyph'#8#20'GlyphBackgroundColor'#7#7
+'clWhite'#10'ClickColor'#7#6'clBlue'#19'OwnerBackgroundDraw'#8#22'AutoWidthB'
+'orderSpacing'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#11'TCheckGroup'#11
+'CheckGroup1'#4'Left'#3#128#0#6'Height'#2'i'#3'Top'#3#143#0#5'Width'#2'd'#8
+'AutoFill'#9#7'Caption'#6#14'Scroll Buttons'#28'ChildSizing.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#1#12'Clien'
+'tHeight'#2'_'#11'ClientWidth'#2'`'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#5
+'tpTop'#6#8'tpBottom'#6#6'tpLeft'#6#7'tpRight'#0#7'OnClick'#7#16'RadioGroup1'
+'Click'#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckBox1'#4'Left'#2#16#6'Height'
+#2#16#3'Top'#2'p'#5'Width'#2'd'#8'AutoSize'#8#7'Caption'#6#9'Long Tabs'#7'On'
+'Click'#7#14'CheckBox1Click'#8'TabOrder'#2#2#0#0#11'TGradButton'#10'NewPageB'
+'tn'#4'Left'#2#16#6'Height'#2#25#3'Top'#2'0'#5'Width'#2'd'#7'Caption'#6#8'Ne'
+'w Page'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#15'NewPageBtnClick'#8'TabO'
+'rder'#2#3#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBle'
+'nd'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'c'
+'lBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15
+'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundCol'
+'or'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15
+#23'AutoHeightBorderSpacing'#2#15#0#0#11'TGradButton'#9'DeleteBtn'#4'Left'#2
+#16#6'Height'#2#25#3'Top'#2'P'#5'Width'#2'd'#7'Caption'#6#6'Delete'#10'Font.'
+'Color'#7#7'clWhite'#7'OnClick'#7#14'DeleteBtnClick'#8'TabOrder'#2#4#7'TabSt'
+'op'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'OverBlend'#5'5^'#186'I'
+#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'#7#6'clBlue'#16'NormalB'
+'lendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilver'#15'BackgroundColor'
+#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgroundColor'#7#7'clWhite'
+#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacing'#2#15#23'AutoHeightBor'
+'derSpacing'#2#15#0#0#9'TSpinEdit'#9'SpinEdit2'#4'Left'#2#16#6'Height'#2#19#3
,'Top'#3#176#0#5'Width'#2'd'#13'OnEditingDone'#7#20'SpinEdit2EditingDone'#8'T'
+'abOrder'#2#5#0#0#5'TEdit'#5'Edit1'#4'Left'#2#16#6'Height'#2#19#3'Top'#3#136
+#0#5'Width'#2'H'#8'TabOrder'#2#6#4'Text'#6#5'Edit1'#0#0#11'TGradButton'#11'G'
+'radButton1'#4'Left'#2'Z'#6'Height'#2#19#3'Top'#3#136#0#5'Width'#2#26#7'Capt'
+'ion'#6#3'set'#10'Font.Color'#7#7'clWhite'#7'OnClick'#7#16'GradButton1Click'
+#8'TabOrder'#2#7#7'TabStop'#9#11'NormalBlend'#5#0#0#0#0#0#0#0#128#254'?'#9'O'
+'verBlend'#5'5^'#186'I'#12#2'+'#167#254'?'#9'BaseColor'#7#6'clBlue'#5'Color'
+#7#6'clBlue'#16'NormalBlendColor'#7#7'clWhite'#14'OverBlendColor'#7#8'clSilv'
+'er'#15'BackgroundColor'#7#9'clBtnFace'#15'ShowFocusBorder'#9#20'GlyphBackgr'
+'oundColor'#7#7'clWhite'#10'ClickColor'#7#6'clBlue'#22'AutoWidthBorderSpacin'
+'g'#2#15#23'AutoHeightBorderSpacing'#2#15#0#0#11'TCheckGroup'#11'CheckGroup1'
+#4'Left'#3#128#0#6'Height'#2'i'#3'Top'#3#143#0#5'Width'#2'd'#8'AutoFill'#9#7
+'Caption'#6#14'Scroll Buttons'#28'ChildSizing.LeftRightSpacing'#2#6#28'Child'
+'Sizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomo'
+'genousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildR'
+'esize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing'
+'.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftTo'
+'RightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#13'Items.Strings'
+#1#6#4'Auto'#6#7'LeftTop'#6#11'RightBottom'#0#7'OnClick'#7#16'CheckGroup1Cli'
+'ck'#11'OnItemClick'#7#20'CheckGroup1ItemClick'#8'TabOrder'#2#8#4'Data'#10#7
+#0#0#0#3#0#0#0#3#2#2#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3#222#2#3't'
+'op'#3#141#1#0#9'TMenuItem'#9'MenuItem1'#3'Tag'#4#152''#18#0#7'Caption'#6#9
+'New Item1'#0#0#0#10'TImageList'#10'ImageList1'#8'OnChange'#13#4'left'#3#144
+#2#3'top'#3#141#1#6'Bitmap'#10#14#4#0#0'Li'#1#0#0#0#16#0#0#0#16#0#0#0#0#0'#'
+#0'{SIfg@4'#148#26#0#0#10'q'#161#162'$:'#159#189#158'1'#159#193#188'.'#159
+#195#211'+'#158#196#234'+'#159#195#236'-'#159#195#214'0'#159#195#191'7'#160
+#192#164'^'#161#173'1'#0#0'#'#0#0#0'#'#0#0#0#0#9'bB:'#188'R2('#164'z'#164#179
+'U7'#162#195#243#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255
+#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255'.'#159#196#247
+'{'#184#200'i'#0#0'#'#0#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235#255'I'#175
+'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#13'Items'
+'.Strings'#1#6#4'Auto'#6#7'LeftTop'#6#11'RightBottom'#0#7'OnClick'#7#16'Chec'
+'kGroup1Click'#11'OnItemClick'#7#20'CheckGroup1ItemClick'#8'TabOrder'#2#8#4
+'Data'#10#7#0#0#0#3#0#0#0#3#2#2#0#0#11'TRadioGroup'#11'RadioGroup2'#4'Left'#3
+#130#0#6'Height'#2'i'#3'Top'#3#0#1#5'Width'#2'd'#8'AutoFill'#9#7'Caption'#6
+#17'Tab Button Layout'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.T'
+'opBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousCh'
+'ildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28
+'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVer'
+'tical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenT'
+'opToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'W'#11'Cl'
+'ientWidth'#2'`'#9'ItemIndex'#2#0#13'Items.Strings'#1#6#11'blGlyphLeft'#6#13
+'blGlyphBottom'#6#12'blGlyphRight'#6#10'blGlyphTop'#0#7'OnClick'#7#16'RadioG'
+'roup2Click'#8'TabOrder'#2#9#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3
+#222#2#3'top'#3#141#1#0#9'TMenuItem'#9'MenuItem1'#3'Tag'#4#152''#18#0#7'Cap'
+'tion'#6#9'New Item1'#0#0#0#10'TImageList'#10'ImageList1'#4'left'#3#144#2#3
+'top'#3#141#1#6'Bitmap'#10#14#4#0#0'Li'#1#0#0#0#16#0#0#0#16#0#0#0#0#0'#'#0'{'
+'SIfg@4'#148#26#0#0#10'q'#161#162'$:'#159#189#158'1'#159#193#188'.'#159#195
+#211'+'#158#196#234'+'#159#195#236'-'#159#195#214'0'#159#195#191'7'#160#192
+#164'^'#161#173'1'#0#0'#'#0#0#0'#'#0#0#0#0#9'bB:'#188'R2('#164'z'#164#179'U7'
+#162#195#243#24#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255#24
+#159#207#255#24#159#207#255#24#159#207#255#24#159#207#255'.'#159#196#247'{'
+#184#200'i'#0#0'#'#0#0#0#0#6'6"'#27'&M.(t}'#198#223'lk'#204#235#255'I'#175
+#207#255';'#166#201#255'4'#162#197#255'.'#158#195#255'-'#157#194#255'-'#156
+#191#255'/'#155#190#255'6'#158#192#255'P'#178#210#255'y'#204#234#130#0#0'#'#0
+'kRJ|pLE'#137'\9-l'#195#218'Ol'#210#245#254'_'#199#235#255'S'#187#223#255'G'
@ -298,7 +257,7 @@ LazarusResources.Add('TForm1','FORMDATA',[
+#246#255'`'#189#217#255'O'#176#205#255'J'#170#200#255'L'#168#196#255'I'#164
+#193#255'='#154#184#255'6'#151#182#255'@'#157#187#255'N'#182#218#255'z'#204
+#233#130#0#0'#'#0#0#0#0#5'bD;'#177'P0('#159't'#157#168'Sl'#205#238#251'_'#199
+#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144
,#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189#255'('#144
+#180#255')'#144#181#255'4'#156#192#255'U'#182#216#253#130#192#205'l'#0#0'#'#0
+#0#0#0#4'pND'#150'lB7'#154'z'#187#206'q]'#184#210#255'P'#178#212#255'I'#179
+#216#255'D'#176#212#255'A'#168#205#255'9'#160#196#255'4'#157#194#255'5'#160
@ -321,7 +280,7 @@ LazarusResources.Add('TForm1','FORMDATA',[
+#168#199#255'E'#163#195#255'F'#159#188#255'='#153#184#255'@'#158#187#255'O'
+#181#217#255'z'#205#235#130#0#0'#'#0'fNI'#130'Y=7pmB7pa'#134#150'Dp'#208#242
+#246'_'#199#235#255'S'#187#223#255'G'#176#212#255'<'#164#200#255'0'#153#189
,#255'('#144#180#255')'#144#181#255'4'#156#192#255'U'#183#217#250#133#201#225
+#255'('#144#180#255')'#144#181#255'4'#156#192#255'U'#183#217#250#133#201#225
+'O'#0#0'#'#0'nUN'#141'pND'#166'h?5'#165#28#14#14#18#134#198#220'-k'#194#225
+#153'_'#188#221#184'U'#180#212#210'L'#169#202#232'C'#160#192#234'>'#156#188
+#213'B'#158#191#188'P'#168#199#159'y'#185#208';'#0#0'#'#0#0#0'#'#0#0#0#0

View File

@ -7,7 +7,7 @@ interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls,
ugradbtn, StdCtrls, ComCtrls, LCLType, LCLProc, LCLIntf, Buttons, ugradtabcontrol,
Menus, Spin, EditBtn;
Menus, Spin, EditBtn, types;
type
@ -18,8 +18,6 @@ type
{ TForm1 }
TForm1 = class(TForm)
Button2: TButton;
Button3: TButton;
CheckBox1: TCheckBox;
CheckGroup1: TCheckGroup;
ComboBox1: TComboBox;
@ -28,25 +26,20 @@ type
GradTabPage1: TGradTabPage;
GradTabPage2: TGradTabPage;
GradTabPage3: TGradTabPage;
GradTabPage4: TGradTabPage;
ImageList1: TImageList;
Label1: TLabel;
Memo1: TMemo;
NewPageBtn: TGradButton;
DeleteBtn: TGradButton;
GradTabControl1: TGradTabControl;
Memo2: TMemo;
MenuItem1: TMenuItem;
PageControl1: TPageControl;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
PopupMenu1: TPopupMenu;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
SpinEdit2: TSpinEdit;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
ToggleBox2: TToggleBox;
procedure CheckBox1Click(Sender: TObject);
procedure CheckGroup1Click(Sender: TObject);
procedure CheckGroup1ItemClick(Sender: TObject; Index: integer);
@ -73,12 +66,11 @@ type
);
procedure GradTabControl1TabButtonMouseUp(GradTabControl: TGradTabControl;
Button: TMouseButton; Shift: TShiftState; X, Y, AIndex: Integer);
procedure ImageList1Change(Sender: TObject);
procedure GradTabControl1TabCloseButtonClick(
GradTabControl: TGradTabControl; AIndex: Integer);
procedure NewPageBtnClick(Sender: TObject);
procedure PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure PageControl1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure RadioGroup1Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure SpinEdit2EditingDone(Sender: TObject);
private
{ private declarations }
@ -216,12 +208,19 @@ begin
B := Random(255)+1;
//WriteLn(R, ' ', G, ' ', B, ColorToString(RGBToColor(R,G,B)));
GradTabControl1.ActivePage.Caption:='tab_'+IntToStr(C);
//GradTabControl1.CurrentPage.Color:=RGBToColor(R, G, B);
GradTabControl1.ActivePage.TabPopupMenu := PopupMenu1;
GradTabControl1.ActivePage.PopupMenu:= PopupMenu1;
with GradTabControl1.ActivePage do
begin
Caption:='tab_'+IntToStr(C);
TabPopupMenu := PopupMenu1;
PopupMenu:= PopupMenu1;
ImageIndex:=0;
TabShowGlyph:=true;
ShowCloseButton:=true;
ShowCloseButtonOnMouseOver:=true;
end;
ComboBox1.ItemIndex:=ComboBox1.Items.Add('tab_'+IntToStr(C));
RadioGroup2Click(nil);
end;
procedure TForm1.GradTabControl1DragOver(Sender, Source: TObject; X,
@ -232,13 +231,13 @@ var
begin
//DebugLn('Name=%s',[Sender.ClassName]);
Accept := false;
if (Sender is TGradTabPageButton) then Accept := True;
if (Sender is TGradTabPageButton) OR (Sender is TGradTabPagesBar) then Accept := True;
end;
procedure TForm1.GradTabControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
DebugLn('MouseDown on %s',[Sender.ClassName]);
//DebugLn('MouseDown on %s',[Sender.ClassName]);
end;
procedure TForm1.GradTabControl1MouseWheelDown(Sender: TObject;
@ -293,51 +292,39 @@ begin
if Button=mbMiddle then
begin
//GradTabControl.Tabs.Delete(AIndex);
ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(GradTabControl.Page[AIndex].Caption));
GradTabControl.Page[AIndex].Free;
end;
end;
procedure TForm1.ImageList1Change(Sender: TObject);
procedure TForm1.GradTabControl1TabCloseButtonClick(
GradTabControl: TGradTabControl; AIndex: Integer);
begin
end;
procedure TForm1.PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer);
const
TCM_GETITEMRECT = $130A;
var
TabRect: TRect;
j: Integer;
begin
if (Sender is TGradTabControl) then
for j := 0 to GradTabControl1.PageCount - 1 do
begin
//GradTabControl1.Perform(TCM_GETITEMRECT, j, LParam(@TabRect)) ;
TabRect := GradTabControl1.GetTabRect(j);
DebugLn('X=%d Y=%d T.L=%d T.T=%d T.R=%d T.B=%d',[X,Y,TabRect.Left, TabRect.Top, TabRect.Right, TabRect.Bottom]);
if PtInRect(TabRect, Point(X, Y)) then
begin
if GradTabControl1.ActivePage.PageIndex <> j then
GradTabControl1.ActivePage.PageIndex := j;
Exit;
end;
end;
end;
procedure TForm1.PageControl1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
DebugLn('Name=%s',[Sender.ClassName]);
if (Sender is TGradTabControl) then Accept := True;
ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(GradTabControl.Page[AIndex].Caption));
GradTabControl.Page[AIndex].Free;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: GradTabControl1.TabPosition := tpTop;
1: GradTabControl1.TabPosition := tpBottom;
2: GradTabControl1.TabPosition := tpLeft;
3: GradTabControl1.TabPosition := tpRight;
0: GradTabControl1.TabPosition := tpTop;
1: GradTabControl1.TabPosition := tpBottom;
2: GradTabControl1.TabPosition := tpLeft;
3: GradTabControl1.TabPosition := tpRight;
end;
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
var
i : Integer;
begin
for i := 0 to GradTabControl1.PageCount - 1 do
with GradTabControl1.Page[i] do
case RadioGroup2.ItemIndex of
0: TabButtonLayout := blGlyphLeft;
1: TabButtonLayout := blGlyphBottom;
2: TabButtonLayout := blGlyphRight;
3: TabButtonLayout := blGlyphTop;
end;
end;

View File

@ -2,10 +2,11 @@
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="6"/>
<Version Value="7"/>
<General>
<Flags>
<AlwaysBuild Value="False"/>
<LRSInOutputDirectory Value="False"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
@ -50,7 +51,6 @@
<ComponentName Value="Form1"/>
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Forms\main.lrs"/>
<UnitName Value="main"/>
</Unit1>
</Units>

View File

@ -2,8 +2,11 @@
<CONFIG>
<ProjectOptions>
<PathDelim Value="\"/>
<Version Value="6"/>
<Version Value="7"/>
<General>
<Flags>
<LRSInOutputDirectory Value="False"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<TargetFileExt Value=".exe"/>
@ -13,7 +16,7 @@
<VersionInfo>
<UseVersionInfo Value="True"/>
<AutoIncrementBuild Value="True"/>
<CurrentBuildNr Value="1051"/>
<CurrentBuildNr Value="1108"/>
<ProjectVersion Value="0.0.0.0"/>
</VersionInfo>
<PublishOptions>
@ -56,7 +59,6 @@
<HasResources Value="True"/>
<IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Forms\unit1.lrs"/>
<UnitName Value="Unit1"/>
</Unit1>
<Unit2>
@ -76,10 +78,15 @@
<CStyleOperator Value="False"/>
</SyntaxOptions>
</Parsing>
<CodeGeneration>
<SmartLinkUnit Value="True"/>
</CodeGeneration>
<Linking>
<Debugging>
<UseHeaptrc Value="True"/>
</Debugging>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
<Other>
<CompilerPath Value="$(CompPath)"/>

View File

@ -4,15 +4,14 @@
<PathDelim Value="\"/>
<Name Value="gradbutton"/>
<CompilerOptions>
<Version Value="5"/>
<Version Value="8"/>
<PathDelim Value="\"/>
<SearchPaths>
<IncludeFiles Value="..\src\"/>
<OtherUnitFiles Value="..\src\"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
<SrcPath Value="..\src\"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>

View File

@ -19,168 +19,165 @@ uses
LCLIntf ,Buttons, urotatebitmap, types;
type
TGradButton = class;
TGradButton = class;
TTextAlignment = (taLeftJustify, taRightJustify, taCenter);
TBorderSide = (bsTopLine, bsBottomLine, bsLeftLine, bsRightLine);
TBorderSides = set of TBorderSide;
TGradientType = (gtHorizontal,gtVertical);
TTextAlignment = (taLeftJustify, taRightJustify, taCenter);
TBorderSide = (bsTopLine, bsBottomLine, bsLeftLine, bsRightLine);
TBorderSides = set of TBorderSide;
TGradientType = (gtHorizontal,gtVertical);
TGBBackgroundPaintEvent = procedure(Sender: TGradButton;
TargetCanvas: TCanvas; R: TRect; BState : TButtonState) of object;
TGBBackgroundPaintEvent = procedure(Sender: TGradButton;
TargetCanvas: TCanvas; R: TRect; BState : TButtonState) of object;
{ TGradButton }
{ TGradButton }
TGradButton = class(TCustomControl)
private
FAutoHeight: Boolean;
FAutoHeightBorderSpacing: Integer;
FAutoWidthBorderSpacing: Integer;
FRotateDirection : TRotateDirection;
FTextAlignment : TTextAlignment;
FButtonLayout: TButtonLayout;
FTextPoint, FGlyphPoint : TPoint;
FTextSize, FGlyphSize : TSize;
FBackground, bm,
FNormalBackgroundCache, FHotBackgroundCache,
FDownBackgroundCache, FDisabledBackgroundCache : TBitmap;
FRotatedGlyph : TRotatedGlyph;
FRotatedText : TRotatedText;
FTextGlyphSpacing: Integer;
FGradientType : TGradientType;
FShowFocusBorder, FOnlyBackground, FOwnerBackgroundDraw,
FAutoWidth, FShowGlyph, FEnabled, FFocused : Boolean;
FBackgroundRect: TRect;
FBorderSides: TBorderSides;
FOnNormalBackgroundPaint, FOnHotBackgroundPaint,
FOnDownBackgroundPaint, FOnDisabledBackgroundPaint : TGBBackgroundPaintEvent;
procedure PaintGradient(TrgCanvas: TCanvas; pr : TRect);
procedure UpdateText;
procedure UpdateBackground;
procedure PaintBackground(AState: TButtonState; TrgBitmap: TBitmap);
protected
FState, FOldState: TButtonState;
FNormalBlend,FOverBlend : Extended;
FBaseColor, FNormalBlendColor, FOverBlendColor, FDisabledColor,
FBackgroundColor, FGlyphBackgroundColor, FClickColor: TColor;
procedure SetAutoHeight(const AValue: Boolean); virtual;
procedure SetAutoHeightBorderSpacing(const AValue: Integer); virtual;
procedure SetAutoWidthBorderSpacing(const AValue: Integer); virtual;
procedure InvPaint(StateCheck:Boolean=false);
procedure FontChanged(Sender: TObject); override;
procedure GlyphChanged(Sender: TObject); virtual;
procedure GetBackgroundRect(var TheRect : TRect); virtual;
function GetGlyph : TBitmap;
procedure SetEnabled(Value: Boolean); override;
procedure SetAutoWidth(const Value : Boolean); virtual;
procedure SetNormalBlend(const Value: Extended); virtual;
procedure SetOverBlend(const Value: Extended); virtual;
procedure SetBaseColor(const Value: TColor); virtual;
procedure SetNormalBlendColor(const Value: TColor); virtual;
procedure SetOverBlendColor(const Value: TColor); virtual;
procedure SetBackgroundColor(const Value: TColor); virtual;
procedure SetBorderSides(const Value: TBorderSides); virtual;
procedure SetOwnerBackgroundDraw(const Value: Boolean); virtual;
procedure SetGradientType(const Value: TGradientType); virtual;
procedure SetRotateDirection(const Value: TRotateDirection); virtual;
procedure SetShowGlyph(const Value: Boolean); virtual;
procedure SetGlyphBackgroundColor(const Value: TColor); virtual;
procedure SetTextAlignment(const Value: TTextAlignment); virtual;
procedure SetTextGlyphSpacing(const Value: Integer); virtual;
procedure SetButtonLayout(const Value: TButtonLayout); virtual;
procedure SetClickColor(const Value: TColor); virtual;
procedure SetDisabledColor(const Value: TColor); virtual;
procedure SetName(const Value: TComponentName); override;
procedure SetShowFocusBorder(const Value: Boolean); virtual;
procedure SetGlyph(const Value: TBitmap); virtual;
procedure TextChanged; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
//procedure CreateParams(var Params: TCreateParams); override;
procedure Paint; override;
procedure MouseEnter; override;
procedure MouseLeave; override;
procedure MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState;
X, Y: Integer); override;
procedure DoEnter; override;
procedure DoExit; override;
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
function GetBackground : TCanvas;
procedure Click; override;
procedure Resize; override;
function Focused: Boolean; override;
procedure UpdateButton;
procedure UpdatePositions;
function GetAutoWidth : Integer;
function GetAutoHeight : Integer;
published
property Action;
property Anchors;
property Align;
property Caption;
property Enabled;
property PopupMenu;
property Font;
property Visible;
property OnClick;
property OnMouseDown;
property OnMouseEnter;
property OnMouseLeave;
property OnMouseMove;
property OnMouseUp;
property OnPaint;
property OnResize;
property OnStartDrag;
property DragMode;
property DragKind;
property DragCursor;
property TabOrder;
property TabStop;
property NormalBlend : Extended read FNormalBlend write SetNormalBlend;
property OverBlend : Extended read FOverBlend write SetOverBlend;
property BaseColor: TColor read FBaseColor write SetBaseColor;
property Color: TColor read FBaseColor write SetBaseColor;
property NormalBlendColor: TColor read FNormalBlendColor write SetNormalBlendColor;
property OverBlendColor: TColor read FOverBlendColor write SetOverBlendColor;
property BackgroundColor: TColor read FBackgroundColor write SetBackgroundColor;
property AutoWidth : Boolean read FAutoWidth write SetAutoWidth default false;
property AutoHeight: Boolean read FAutoHeight write SetAutoHeight default false;
property BorderSides : TBorderSides read FBorderSides write SetBorderSides default [bsTopLine,bsBottomLine,bsLeftLine,bsRightLine];
property GradientType : TGradientType read FGradientType write SetGradientType default gtHorizontal;
property ShowFocusBorder : Boolean read FShowFocusBorder write SetShowFocusBorder;
property RotateDirection : TRotateDirection read FRotateDirection write SetRotateDirection default rdNormal;
property ButtonLayout : TButtonLayout read FButtonLayout write SetButtonLayout default blGlyphLeft;
property Glyph : TBitmap read GetGlyph write SetGlyph;
property ShowGlyph : Boolean read FShowGlyph write SetShowGlyph;
property GlyphBackgroundColor : TColor read FGlyphBackgroundColor write SetGlyphBackgroundColor;
property TextAlignment : TTextAlignment read FTextAlignment write SetTextAlignment default taCenter;
property TextGlyphSpacing : Integer read FTextGlyphSpacing write SetTextGlyphSpacing default 2;
property ClickColor : TColor read FClickColor write SetClickColor;
property DisabledColor : TColor read FDisabledColor write SetDisabledColor default clGray;
property OwnerBackgroundDraw : Boolean read FOwnerBackgroundDraw write SetOwnerBackgroundDraw;
property AutoWidthBorderSpacing : Integer read FAutoWidthBorderSpacing write SetAutoWidthBorderSpacing;
property AutoHeightBorderSpacing : Integer read FAutoHeightBorderSpacing write SetAutoHeightBorderSpacing;
TGradButton = class(TCustomControl)
private
FAutoHeight: Boolean;
FAutoHeightBorderSpacing: Integer;
FAutoWidthBorderSpacing: Integer;
FRotateDirection : TRotateDirection;
FTextAlignment : TTextAlignment;
FButtonLayout: TButtonLayout;
FTextPoint, FGlyphPoint : TPoint;
FTextSize, FGlyphSize : TSize;
FBackground, bm,
FNormalBackgroundCache, FHotBackgroundCache,
FDownBackgroundCache, FDisabledBackgroundCache : TBitmap;
FRotatedGlyph : TRotatedGlyph;
FRotatedText : TRotatedText;
FTextGlyphSpacing: Integer;
FGradientType : TGradientType;
FShowFocusBorder, FOnlyBackground,
FAutoWidth, FShowGlyph, FEnabled, FFocused : Boolean;
FBackgroundRect: TRect;
FBorderSides: TBorderSides;
FOnNormalBackgroundPaint, FOnHotBackgroundPaint,
FOnDownBackgroundPaint, FOnDisabledBackgroundPaint : TGBBackgroundPaintEvent;
procedure PaintGradient(TrgCanvas: TCanvas; pr : TRect);
procedure UpdateBackground;
procedure PaintBackground(AState: TButtonState; TrgBitmap: TBitmap);
protected
FState, FOldState: TButtonState;
FNormalBlend,FOverBlend : Extended;
FBaseColor, FNormalBlendColor, FOverBlendColor, FDisabledColor,
FBackgroundColor, FGlyphBackgroundColor, FClickColor: TColor;
FOwnerBackgroundDraw : Boolean;
procedure SetAutoHeight(const AValue: Boolean); virtual;
procedure SetAutoHeightBorderSpacing(const AValue: Integer); virtual;
procedure SetAutoWidthBorderSpacing(const AValue: Integer); virtual;
procedure InvPaint(StateCheck:Boolean=false);
procedure FontChanged(Sender: TObject); override;
procedure GlyphChanged(Sender: TObject); virtual;
procedure GetBackgroundRect(var TheRect : TRect); virtual;
procedure GetContentRect(var TheRect: TRect); virtual;
function GetGlyph : TBitmap;
procedure SetEnabled(Value: Boolean); override;
procedure SetAutoWidth(const Value : Boolean); virtual;
procedure SetNormalBlend(const Value: Extended); virtual;
procedure SetOverBlend(const Value: Extended); virtual;
procedure SetBaseColor(const Value: TColor); virtual;
procedure SetNormalBlendColor(const Value: TColor); virtual;
procedure SetOverBlendColor(const Value: TColor); virtual;
procedure SetBackgroundColor(const Value: TColor); virtual;
procedure SetBorderSides(const Value: TBorderSides); virtual;
procedure SetOwnerBackgroundDraw(const Value: Boolean); virtual;
procedure SetGradientType(const Value: TGradientType); virtual;
procedure SetRotateDirection(const Value: TRotateDirection); virtual;
procedure SetShowGlyph(const Value: Boolean); virtual;
procedure SetGlyphBackgroundColor(const Value: TColor); virtual;
procedure SetTextAlignment(const Value: TTextAlignment); virtual;
procedure SetTextGlyphSpacing(const Value: Integer); virtual;
procedure SetButtonLayout(const Value: TButtonLayout); virtual;
procedure SetClickColor(const Value: TColor); virtual;
procedure SetDisabledColor(const Value: TColor); virtual;
procedure SetName(const Value: TComponentName); override;
procedure SetShowFocusBorder(const Value: Boolean); virtual;
procedure SetGlyph(const Value: TBitmap); virtual;
procedure TextChanged; override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
//procedure CreateParams(var Params: TCreateParams); override;
procedure Paint; override;
procedure MouseEnter; override;
procedure MouseLeave; override;
procedure MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); override;
procedure MouseUp(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); override;
procedure MouseMove(Shift: TShiftState;
X, Y: Integer); override;
procedure DoEnter; override;
procedure DoExit; override;
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
function GetBackground : TCanvas;
procedure Click; override;
procedure Resize; override;
function Focused: Boolean; override;
procedure UpdateButton;
procedure UpdatePositions;
function GetAutoWidth : Integer;
function GetAutoHeight : Integer;
published
property Action;
property Anchors;
property Align;
property Caption;
property Enabled;
property PopupMenu;
property Font;
property Visible;
property OnClick;
property OnMouseDown;
property OnMouseEnter;
property OnMouseLeave;
property OnMouseMove;
property OnMouseUp;
property OnPaint;
property OnResize;
property OnStartDrag;
property DragMode;
property DragKind;
property DragCursor;
property TabOrder;
property TabStop;
property NormalBlend : Extended read FNormalBlend write SetNormalBlend;
property OverBlend : Extended read FOverBlend write SetOverBlend;
property BaseColor: TColor read FBaseColor write SetBaseColor;
property Color: TColor read FBaseColor write SetBaseColor;
property NormalBlendColor: TColor read FNormalBlendColor write SetNormalBlendColor;
property OverBlendColor: TColor read FOverBlendColor write SetOverBlendColor;
property BackgroundColor: TColor read FBackgroundColor write SetBackgroundColor;
property AutoWidth : Boolean read FAutoWidth write SetAutoWidth default false;
property AutoHeight: Boolean read FAutoHeight write SetAutoHeight default false;
property BorderSides : TBorderSides read FBorderSides write SetBorderSides default [bsTopLine,bsBottomLine,bsLeftLine,bsRightLine];
property GradientType : TGradientType read FGradientType write SetGradientType default gtHorizontal;
property ShowFocusBorder : Boolean read FShowFocusBorder write SetShowFocusBorder;
property RotateDirection : TRotateDirection read FRotateDirection write SetRotateDirection default rdNormal;
property ButtonLayout : TButtonLayout read FButtonLayout write SetButtonLayout default blGlyphLeft;
property Glyph : TBitmap read GetGlyph write SetGlyph;
property ShowGlyph : Boolean read FShowGlyph write SetShowGlyph;
property GlyphBackgroundColor : TColor read FGlyphBackgroundColor write SetGlyphBackgroundColor;
property TextAlignment : TTextAlignment read FTextAlignment write SetTextAlignment default taCenter;
property TextGlyphSpacing : Integer read FTextGlyphSpacing write SetTextGlyphSpacing default 2;
property ClickColor : TColor read FClickColor write SetClickColor;
property DisabledColor : TColor read FDisabledColor write SetDisabledColor default clGray;
property OwnerBackgroundDraw : Boolean read FOwnerBackgroundDraw write SetOwnerBackgroundDraw;
property AutoWidthBorderSpacing : Integer read FAutoWidthBorderSpacing write SetAutoWidthBorderSpacing;
property AutoHeightBorderSpacing : Integer read FAutoHeightBorderSpacing write SetAutoHeightBorderSpacing;
//property OnGetBackgroundRect { TODO }
property OnNormalBackgroundPaint : TGBBackgroundPaintEvent read FOnNormalBackgroundPaint write FOnNormalBackgroundPaint;
property OnHotBackgroundPaint : TGBBackgroundPaintEvent read FOnHotBackgroundPaint write FOnHotBackgroundPaint;
property OnDownBackgroundPaint : TGBBackgroundPaintEvent read FOnDownBackgroundPaint write FOnDownBackgroundPaint;
property OnDisabledBackgroundPaint : TGBBackgroundPaintEvent read FOnDisabledBackgroundPaint write FOnDisabledBackgroundPaint;
end;
//BackgroundPaintEvents
property OnNormalBackgroundPaint : TGBBackgroundPaintEvent read FOnNormalBackgroundPaint write FOnNormalBackgroundPaint;
property OnHotBackgroundPaint : TGBBackgroundPaintEvent read FOnHotBackgroundPaint write FOnHotBackgroundPaint;
property OnDownBackgroundPaint : TGBBackgroundPaintEvent read FOnDownBackgroundPaint write FOnDownBackgroundPaint;
property OnDisabledBackgroundPaint : TGBBackgroundPaintEvent read FOnDisabledBackgroundPaint write FOnDisabledBackgroundPaint;
end;
function ColorBetween(C1, C2 : TColor; blend:Extended):TColor;
function ColorsBetween(colors:array of TColor; blend:Extended):TColor;
function AlignItem(ItemLength, AreaLength,Spacing: Integer; ATextAlignment: TTextAlignment):Integer;
function ColorBetween(C1, C2 : TColor; blend:Extended):TColor;
function ColorsBetween(colors:array of TColor; blend:Extended):TColor;
function AlignItem(ItemLength, AreaLength,Spacing: Integer; ATextAlignment: TTextAlignment):Integer;
procedure DbgsGradButton(AButton : TGradButton);
procedure Register;
procedure Register;
implementation
@ -189,21 +186,15 @@ uses
function AlignItem(ItemLength, AreaLength,Spacing: Integer; ATextAlignment: TTextAlignment):Integer;
begin
case ATextAlignment of
taLeftJustify : Result := Spacing;
taRightJustify: begin
Result := AreaLength-ItemLength-Spacing;
end;
taCenter : begin
Result := (AreaLength div 2)-(ItemLength div 2);
end;
end;
end;
procedure DbgsGradButton(AButton: TGradButton);
begin
DebugLn('######GradButton#####');
case ATextAlignment of
taLeftJustify : Result := Spacing;
taRightJustify: begin
Result := AreaLength-ItemLength-Spacing;
end;
taCenter : begin
Result := (AreaLength div 2)-(ItemLength div 2);
end;
end;
end;
procedure TGradButton.SetShowFocusBorder(const Value: Boolean);
@ -224,37 +215,28 @@ begin
inherited TextChanged;
FRotatedText.Text := Caption;
if FAutoWidth then
UpdateButton
else
UpdatePositions;
if FAutoWidth then
UpdateButton
else
UpdatePositions;
InvPaint;
InvPaint;
end;
procedure TGradButton.SetName(const Value: TComponentName);
begin
if (Caption='') OR (Caption=Name) then
begin
Caption:=Value;
end;
if (Caption='') OR (Caption=Name) then
begin
Caption:=Value;
end;
inherited;
inherited;
end;
function TGradButton.Focused: Boolean;
begin
FFocused:=FFocused OR (Inherited Focused);
Result := FFocused;
end;
procedure TGradButton.UpdateText;
begin
//UpdatePositions;
//FRotatedText.Canvas.Font.Color := Canvas.Font.Color;
//FRotatedText.Canvas.Font := Canvas.Font;
//FRotatedText.Update;
FFocused:=FFocused OR (Inherited Focused);
Result := FFocused;
end;
procedure TGradButton.SetAutoWidth(const Value : Boolean);
@ -283,91 +265,72 @@ end;
procedure TGradButton.UpdatePositions;
var
tempTS,tempGS : TSize;
p,t,midx, midy, textmidx, textmidy,
groupwidth, groupheight, AreaWidth, AreaHeight :Integer;
tempBL : TButtonLayout;
tempTS,tempGS : TSize;
p,t,midx, midy, textmidx, textmidy,
groupwidth, groupheight, AreaWidth, AreaHeight :Integer;
tempBL : TButtonLayout;
begin
GetContentRect(FBackgroundRect);
GetBackgroundRect(FBackgroundRect);
AreaWidth := FBackgroundRect.Right-FBackgroundRect.Left;
AreaHeight := FBackgroundRect.Bottom-FBackgroundRect.Top;
AreaWidth := FBackgroundRect.Right-FBackgroundRect.Left;
AreaHeight := FBackgroundRect.Bottom-FBackgroundRect.Top;
tempGS.cx:=0;
tempGS.cy:=0;
tempGS.cx:=0;
tempGS.cy:=0;
if FShowGlyph and not FRotatedGlyph.Empty then
begin
tempGS.cx:=FRotatedGlyph.Width;
tempGS.cy:=FRotatedGlyph.Height;
end;
if FShowGlyph and not FRotatedGlyph.Empty then
begin
tempGS.cx:=FRotatedGlyph.Width;
tempGS.cy:=FRotatedGlyph.Height;
//tempTS := Canvas.TextExtent(Caption);
tempTS.cx:= FRotatedText.Width;
tempTS.cy:= FRotatedText.Height;
tempBL := FButtonLayout;
if FShowGlyph and not FRotatedGlyph.Empty then begin
case tempBL of
blGlyphLeft: begin
FGlyphPoint.x := AlignItem(tempGS.cx+FTextGlyphSpacing+tempTS.cx,AreaWidth,4,FTextAlignment);
FGlyphPoint.y := AlignItem(tempGS.cy,AreaHeight,0, taCenter);
FTextPoint.x := FGlyphPoint.x+tempGS.cx+FTextGlyphSpacing;
FTextPoint.y := AlignItem(tempTS.cy,AreaHeight,0, taCenter);
end;
blGlyphRight: begin
//Glyph Right, Text Left
FTextPoint.x := AlignItem(tempTS.cx+FTextGlyphSpacing+tempGS.cx,AreaWidth,4, FTextAlignment);
FTextPoint.y := AlignItem(tempTS.cy,AreaHeight,0, taCenter);
FGlyphPoint.x := FTextPoint.x+tempTS.cx+FTextGlyphSpacing;
FGlyphPoint.y := AlignItem(tempGS.cy,AreaHeight,0, taCenter);
end;
blGlyphTop: begin
//Glyph Top, Text Bottom
FGlyphPoint.x := AlignItem(tempGS.cx,AreaWidth, 0, FTextAlignment);
FTextPoint.x := AlignItem(tempTS.cx, AreaWidth, 0, FTextAlignment);
FGlyphPoint.y := AlignItem(tempGS.cy+FTextGlyphSpacing+tempTS.cy, AreaHeight, 4, taCenter);
FTextPoint.y := FGlyphPoint.y+tempGS.cy+FTextGlyphSpacing;
end;
blGlyphBottom: begin
//Glyph Bottom, Text Top
FGlyphPoint.x := AlignItem(tempGS.cx,AreaWidth, 0, FTextAlignment);
FTextPoint.x := AlignItem(tempTS.cx, AreaWidth, 0, FTextAlignment);
FTextPoint.y := AlignItem(tempGS.cy+FTextGlyphSpacing+tempTS.cy, AreaHeight, 4, taCenter);
FGlyphPoint.y := FTextPoint.y+tempTS.cy+FTextGlyphSpacing;
end;
end;
end else begin
FGlyphPoint.x := 0;
FGlyphPoint.y := 0;
//tempTS := Canvas.TextExtent(Caption);
tempTS.cx:= FRotatedText.Width;
tempTS.cy:= FRotatedText.Height;
tempBL := FButtonLayout;
{if FRotateDirection=rdRight then
begin
case FButtonLayout of
blGlyphTop : tempBL := blGlyphBottom;
blGlyphBottom: tempBL := blGlyphTop;
end;
end;}
{if FRotateDirection in [rdRight,rdLeft] then
begin
p := tempTS.cx;
tempTS.cx := tempTS.cy;
tempTS.cy := p;
p := tempGS.cx;
tempGS.cx:=tempGS.cy;
tempGS.cy := p;
end; }
if FShowGlyph and not FRotatedGlyph.Empty then begin
case tempBL of
blGlyphLeft: begin
FGlyphPoint.x := AlignItem(tempGS.cx+FTextGlyphSpacing+tempTS.cx,AreaWidth,4,FTextAlignment);
FGlyphPoint.y := AlignItem(tempGS.cy,AreaHeight,0, taCenter);
FTextPoint.x := FGlyphPoint.x+tempGS.cx+FTextGlyphSpacing;
FTextPoint.y := AlignItem(tempTS.cy,AreaHeight,0, taCenter);
end;
blGlyphRight: begin
//Glyph Right, Text Left
FTextPoint.x := AlignItem(tempTS.cx+FTextGlyphSpacing+tempGS.cx,AreaWidth,4, FTextAlignment);
FTextPoint.y := AlignItem(tempTS.cy,AreaHeight,0, taCenter);
FGlyphPoint.x := FTextPoint.x+tempTS.cx+FTextGlyphSpacing;
FGlyphPoint.y := AlignItem(tempGS.cy,AreaHeight,0, taCenter);
end;
blGlyphTop: begin
//Glyph Top, Text Bottom
FGlyphPoint.x := AlignItem(tempGS.cx,AreaWidth, 0, FTextAlignment);
FTextPoint.x := AlignItem(tempTS.cx, AreaWidth, 0, FTextAlignment);
FGlyphPoint.y := AlignItem(tempGS.cy+FTextGlyphSpacing+tempTS.cy, AreaHeight, 4, taCenter);
FTextPoint.y := FGlyphPoint.y+tempGS.cy+FTextGlyphSpacing;
end;
blGlyphBottom: begin
//Glyph Bottom, Text Top
FGlyphPoint.x := AlignItem(tempGS.cx,AreaWidth, 0, FTextAlignment);
FTextPoint.x := AlignItem(tempTS.cx, AreaWidth, 0, FTextAlignment);
FTextPoint.y := AlignItem(tempGS.cy+FTextGlyphSpacing+tempTS.cy, AreaHeight, 4, taCenter);
FGlyphPoint.y := FTextPoint.y+tempTS.cy+FTextGlyphSpacing;
end;
end;
end else begin
FGlyphPoint.x := 0;
FGlyphPoint.y := 0;
FTextPoint.x := AlignItem(tempTS.cx,AreaWidth,4, FTextAlignment);
FTextPoint.y := AlignItem(tempTS.cy,AreaHeight,0, taCenter);
end;
FTextPoint.x := AlignItem(tempTS.cx,AreaWidth,4, FTextAlignment);
FTextPoint.y := AlignItem(tempTS.cy,AreaHeight,0, taCenter);
end;
//WritePoints([TP^, GP^]);
{TP^.x := TP^.x + p;
@ -376,25 +339,24 @@ begin
GP^.x := GP^.x + p;
GP^.y := GP^.y + p; }
FTextPoint.x := FTextPoint.x+FBackgroundRect.Left;
FTextPoint.y := FTextPoint.y+FBackgroundRect.Top;
FTextPoint.x := FTextPoint.x+FBackgroundRect.Left;
FTextPoint.y := FTextPoint.y+FBackgroundRect.Top;
FGlyphPoint.x := FGlyphPoint.x+FBackgroundRect.Left;
FGlyphPoint.y := FGlyphPoint.y+FBackgroundRect.Top;
FGlyphPoint.x := FGlyphPoint.x+FBackgroundRect.Left;
FGlyphPoint.y := FGlyphPoint.y+FBackgroundRect.Top;
{$IFDEF DEBUGGRADBUTTON}
WriteLn('Text');
WritePoint(FTextPoint);
WriteLn('Glyph');
WritePoint(FGlyphPoint);
{$ENDIF}
{$IFDEF DEBUGGRADBUTTON}
WriteLn('Text');
WritePoint(FTextPoint);
WriteLn('Glyph');
WritePoint(FGlyphPoint);
{$ENDIF}
//tempTS := Canvas.TextExtent(Caption);
FTextSize:=tempTS;
FGlyphSize:=tempGS;
//tempTS := Canvas.TextExtent(Caption);
FTextSize:=tempTS;
FGlyphSize:=tempGS;
end;
function TGradButton.GetAutoWidth: Integer;
@ -579,6 +541,37 @@ begin
end;
end;
procedure TGradButton.GetContentRect(var TheRect: TRect);
begin
TheRect := Rect(0,0,Width,Height);
//Top
if (bsTopLine in BorderSides) then
begin
TheRect.Top := 2;
end else
TheRect.Top := 0;
//Left
if (bsLeftLine in BorderSides) then
begin
TheRect.Left := 2;
end else
TheRect.Left := 0;
//Right
if (bsRightLine in BorderSides) then
begin
TheRect.Right := TheRect.Right-{$IFDEF windows}2{$ELSE}3{$ENDIF};
end;
//Bottom
if (bsBottomLine in BorderSides) then
begin
TheRect.Bottom := TheRect.Bottom - 2;
end;
end;
function TGradButton.GetGlyph : TBitmap;
begin
Result := FRotatedGlyph.Bitmap;
@ -654,7 +647,6 @@ begin
if FAutoHeight then Height := GetAutoHeight;
UpdateBackground;
UpdateText;
UpdatePositions;
end;
@ -915,13 +907,13 @@ end;
procedure TGradButton.SetOwnerBackgroundDraw(const Value: Boolean);
begin
FOwnerBackgroundDraw:=Value;
FOwnerBackgroundDraw:=Value;
if Value then
begin
UpdateBackground;
InvPaint;
end;
if Value then
begin
UpdateBackground;
InvPaint;
end;
end;
procedure TGradButton.SetNormalBlend(const Value: Extended);
@ -1047,45 +1039,47 @@ begin
with bm do
begin
Width := Self.Width;
Height := Self.Height;
Width := Self.Width;
Height := Self.Height;
FBackground.Width:=Width;
FBackground.Height:=Height;
FBackground.Width:=Width;
FBackground.Height:=Height;
Canvas.Brush.Color:=clBlack;
Canvas.FillRect(0,0,Width, Height);
p := 0;
p := 0;
if tempState = bsDown then
p := 1;
if not FEnabled then tempState := bsDisabled;
case tempState of
bsUp : Canvas.Draw(0,0,FNormalBackgroundCache);
bsDown: Canvas.Draw(0,0,FDownBackgroundCache);
bsHot : Canvas.Draw(0,0,FHotBackgroundCache);
else Canvas.Draw(0,0,FDisabledBackgroundCache);
end;
if Caption <> '' then
FRotatedText.Draw(bm.Canvas, FTextPoint.x+p, FTextPoint.y+p);
if tempState = bsDown then
p := 1;
if FShowGlyph AND FRotatedGlyph.IsBitmapStored then
begin
if not FEnabled then
tempState := bsDisabled
else
tempState := FState;
FRotatedGlyph.State:=tempState;
FRotatedGlyph.Draw(bm.Canvas, FGlyphPoint.x+p, FGlyphPoint.y+p);
end;
if not (csDesigning in ComponentState) then
if FFocused AND FShowFocusBorder then
Canvas.DrawFocusRect(RECT(FBackgroundRect.Left+2, FBackgroundRect.Top+2,
FBackgroundRect.Right-2, FBackgroundRect.Bottom-2));
if not FEnabled then tempState := bsDisabled;
case tempState of
bsUp : Canvas.Draw(0,0,FNormalBackgroundCache);
bsDown: Canvas.Draw(0,0,FDownBackgroundCache);
bsHot : Canvas.Draw(0,0,FHotBackgroundCache);
else Canvas.Draw(0,0,FDisabledBackgroundCache);
end;
if Caption <> '' then
FRotatedText.Draw(bm.Canvas, FTextPoint.x+p, FTextPoint.y+p);
if FShowGlyph AND FRotatedGlyph.IsBitmapStored then
begin
if not FEnabled then
tempState := bsDisabled
else
tempState := FState;
FRotatedGlyph.State:=tempState;
FRotatedGlyph.Draw(bm.Canvas, FGlyphPoint.x+p, FGlyphPoint.y+p);
end;
if not (csDesigning in ComponentState) then
if FFocused AND FShowFocusBorder then
Canvas.DrawFocusRect(RECT(FBackgroundRect.Left+2, FBackgroundRect.Top+2,
FBackgroundRect.Right-2, FBackgroundRect.Bottom-2));
end;
Canvas.Draw(0,0,bm);

File diff suppressed because it is too large Load Diff

View File

@ -113,6 +113,7 @@ begin
RotateImg := TLazIntfImage.Create(NormalImg.Height, NormalImg.Width);
RotateImg.DataDescription := NormalImg.DataDescription;
RotateImg.SetSize(NormalImg.Height, NormalImg.Width);
RotateImg.FillPixels(TColorToFPColor(clBlack));
for px := 0 to NormalImg.Width - 1 do
for py := 0 to NormalImg.Height - 1 do
@ -277,6 +278,9 @@ begin
UpdateActiveBitmap;
R := Rect(0, 0, FActiveBitmap.Width, FActiveBitmap.Height);
P := Point(X, Y);
//DebugLn(DbgS(R));
//DebugLn(DbgS(P));
//DebugLn('Transparent: '+BoolToStr(Transparent, true));
FGlyph.Draw(Canvas, R, P, FButtonState, Transparent, 0);
end;