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,42 +292,16 @@ 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);
@ -341,6 +314,20 @@ begin
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;
procedure TForm1.SpinEdit2EditingDone(Sender: TObject);
begin
GradTabControl1.TabHeight:=SpinEdit2.Value;

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

@ -48,14 +48,13 @@ type
FRotatedText : TRotatedText;
FTextGlyphSpacing: Integer;
FGradientType : TGradientType;
FShowFocusBorder, FOnlyBackground, FOwnerBackgroundDraw,
FShowFocusBorder, FOnlyBackground,
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
@ -63,6 +62,7 @@ type
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;
@ -70,6 +70,7 @@ type
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;
@ -166,9 +167,6 @@ type
property AutoWidthBorderSpacing : Integer read FAutoWidthBorderSpacing write SetAutoWidthBorderSpacing;
property AutoHeightBorderSpacing : Integer read FAutoHeightBorderSpacing write SetAutoHeightBorderSpacing;
//property OnGetBackgroundRect { TODO }
//BackgroundPaintEvents
property OnNormalBackgroundPaint : TGBBackgroundPaintEvent read FOnNormalBackgroundPaint write FOnNormalBackgroundPaint;
property OnHotBackgroundPaint : TGBBackgroundPaintEvent read FOnHotBackgroundPaint write FOnHotBackgroundPaint;
property OnDownBackgroundPaint : TGBBackgroundPaintEvent read FOnDownBackgroundPaint write FOnDownBackgroundPaint;
@ -178,7 +176,6 @@ type
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;
@ -200,12 +197,6 @@ begin
end;
end;
procedure DbgsGradButton(AButton: TGradButton);
begin
DebugLn('######GradButton#####');
end;
procedure TGradButton.SetShowFocusBorder(const Value: Boolean);
begin
FShowFocusBorder:=Value;
@ -248,15 +239,6 @@ begin
Result := FFocused;
end;
procedure TGradButton.UpdateText;
begin
//UpdatePositions;
//FRotatedText.Canvas.Font.Color := Canvas.Font.Color;
//FRotatedText.Canvas.Font := Canvas.Font;
//FRotatedText.Update;
end;
procedure TGradButton.SetAutoWidth(const Value : Boolean);
begin
if FAutoWidth = Value then
@ -288,8 +270,7 @@ var
groupwidth, groupheight, AreaWidth, AreaHeight :Integer;
tempBL : TButtonLayout;
begin
GetBackgroundRect(FBackgroundRect);
GetContentRect(FBackgroundRect);
AreaWidth := FBackgroundRect.Right-FBackgroundRect.Left;
AreaHeight := FBackgroundRect.Bottom-FBackgroundRect.Top;
@ -309,24 +290,6 @@ begin
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
@ -394,7 +357,6 @@ begin
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;
@ -1047,13 +1039,15 @@ begin
with bm do
begin
Width := Self.Width;
Height := Self.Height;
FBackground.Width:=Width;
FBackground.Height:=Height;
Canvas.Brush.Color:=clBlack;
Canvas.FillRect(0,0,Width, Height);
p := 0;
if tempState = bsDown then

View File

@ -7,14 +7,6 @@ unit ugradtabcontrol;
@version 0.1
@comments TGradTabControl is based on TNotebook/TPageControl/TTabControl
@license http://creativecommons.org/licenses/LGPL/2.1/
@todo:
- If a Button isnt visible but focused the bar should move to the button - working
- Close Button at Tabs
- Drawer needed or first style wishes
- Button Events accessable from Page-Events
- TabBar Events accessable from TGradTabControl
- Maybe rename TGradTabControl to TCustomPageControl and of these
TGradTabControl and TGradPageControl
------------------------------------------------------------------------------}
{$mode objfpc}{$H+}
@ -25,32 +17,50 @@ interface
uses
Classes,LResources, SysUtils, Menus, LCLType,
LCLProc, ExtCtrls, Graphics, ugradbtn, Controls, uRotateBitmap,
LCLProc, LCLIntf,ExtCtrls, Graphics, ugradbtn, Controls, uRotateBitmap,
Buttons, Forms, ImgList;
type
TGradTabControl = class;
TGradTabPage = class;
{ TGradTabCloseButton }
TGradTabCloseButton = class(TGradButton)
public
constructor Create(AOwner: TComponent); override;
end;
{ TGradTabPageButton }
TGradTabPageButton = class( TGradButton )
private
FCloseButton : TGradButton;
FCloseButton : TGradTabCloseButton;
FPage: TGradTabPage;
FShowCloseButton : Boolean;
FShowCloseButtonOnMouseOver: Boolean;
procedure AlignCloseButton;
procedure SetShowCloseButton(AValue: Boolean);
procedure SetShowCloseButtonOnMouseOver(const AValue: Boolean);
protected
procedure SetRotateDirection(const Value: TRotateDirection); override;
procedure RealSetText(const Value: TCaption); override;
procedure SetAutoHeightBorderSpacing(const AValue: Integer); override;
procedure SetAutoWidthBorderSpacing(const AValue: Integer); override;
procedure SetShowGlyph(const Value: Boolean); override;
procedure CloseBtnBackgroundPaint(Sender: TGradButton;
TargetCanvas: TCanvas; R: TRect; BState: TButtonState);
procedure GetContentRect(var TheRect: TRect); override;
procedure SetBaseColor(const Value: TColor); override;
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Resize; override;
procedure SetBounds(aLeft, aTop, aWidth, aHeight: integer); override;
property ShowCloseButton : Boolean read FShowCloseButton write SetShowCloseButton default false;
property ShowCloseButtonOnMouseOver : Boolean read FShowCloseButtonOnMouseOver write SetShowCloseButtonOnMouseOver default false;
property Page : TGradTabPage read FPage write FPage;
published
property OnStartDock;
property OnStartDrag;
@ -85,6 +95,7 @@ type
FImageIndex: Integer;
FNormalTabColor: TColor;
FOwnerTabColor: Boolean;
FShowCloseButtonOnMouseOver: Boolean;
FTabVisible,FCurrentlyDestroying,FShowCloseButton : Boolean;
function GetTabButtonLayout: TButtonLayout;
function GetTabColor: TColor;
@ -94,6 +105,7 @@ type
function GetTabPopupMenu : TPopupMenu;
function GetText : TCaption;
procedure SetImageIndex(const AValue: Integer);
procedure SetShowCloseButtonOnMouseOver(const AValue: Boolean);
procedure SetTabButtonLayout(const AValue: TButtonLayout);
procedure SetTabColor(const AValue: TColor);
procedure SetTabGlyph(const AValue: TBitmap);
@ -121,6 +133,7 @@ type
property PageIndex : Integer read GetPageIndex write SetPageIndex;
property Caption : TCaption read GetText write SetText;
property ShowCloseButton : Boolean read FShowCloseButton write SetShowCloseButton default false;
property ShowCloseButtonOnMouseOver : Boolean read FShowCloseButtonOnMouseOver write SetShowCloseButtonOnMouseOver default false;
property TabPopupMenu : TPopupMenu read GetTabPopupMenu write SetTabPopupMenu;
property Color;
property TabColor : TColor read GetTabColor write SetTabColor;
@ -266,6 +279,7 @@ type
FImages: TImageList;
FMoveIncrement: Integer;
FLeftButton, FRightButton : TGradButton;
FOnTabCloseButtonClick: TGradTabPageButtonClickEvent;
FOnPageChanged: TNotifyEvent;
FShowLeftTopScrollButton: Boolean;
FShowRightBottomScrollButton: Boolean;
@ -288,9 +302,11 @@ type
procedure AlignPages;
function GetActiveTabColor: TColor;
function GetNormalTabColor: TColor;
function GetTabPopupMenu: TPopupMenu;
procedure ImageListChange(Sender: TObject);
procedure SetActiveTabColor(const AValue: TColor);
procedure SetNormalTabColor(const AValue: TColor);
procedure SetTabPopupMenu(const AValue: TPopupMenu);
procedure UpdateTabImages;
function GetCurrentPage : TGradTabPage;
function GetPage(AIndex: Integer) : TGradTabPage;
@ -303,6 +319,8 @@ type
procedure PageButtonMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PageButtonMouseClick(Sender: TObject);
procedure PageCloseButtonMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PopupMouseClick(Sender: TObject);
procedure PageButtonMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
@ -375,13 +393,12 @@ type
property PageCount : Integer read GetCount;
published
property Align;
property ControlState;
property ControlStyle;
property ActivePage : TGradTabPage read GetCurrentPage write SetCurrentPage;
property OnTabButtonClick : TGradTabPageButtonClickEvent read FOnTabButtonClick write FOnTabButtonClick;
property OnTabButtonMouseDown : TGradTabPageButtonMouseDownUpEvent read FOnTabButtonMouseDown write FOnTabButtonMouseDown;
property OnTabButtonMouseUp : TGradTabPageButtonMouseDownUpEvent read FOnTabButtonMouseUp write FOnTabButtonMouseUp;
property OnTabButtonMouseMove : TGradTabPageButtonMouseMoveEvent read FOnTabButtonMouseMove write FOnTabButtonMouseMove;
property OnTabCloseButtonClick : TGradTabPageButtonClickEvent read FOnTabCloseButtonClick write FOnTabCloseButtonClick;
property OnStartDock;
property OnStartDrag;
property OnDockDrop;
@ -398,13 +415,14 @@ type
property OnMouseWheelDown;
property OnClick;
property OnDblClick;
property TabPopupMenu : TPopupMenu read GetTabPopupMenu write SetTabPopupMenu;
property PageIndex : Integer read FPageIndex write SetCurrentPageNum;
property TabHeight : Integer read FTabHeight write SetTabHeight;
property TabPosition : TTabPosition read FTabPosition write SetTabPosition default tpTop;
property LongTabs : Boolean read FLongTabs write SetLongTabs;
property LongWidth: Integer read FLongWidth write SetLongWidth;
property MoveIncrement : Integer read FMoveIncrement write FMoveIncrement;
//property MoveIncrement : Integer read FMoveIncrement write FMoveIncrement;
property OnPageChanged: TNotifyEvent read FOnPageChanged write FOnPageChanged;
property AutoShowScrollButtons : Boolean read FAutoShowScrollButton write SetAutoShowScrollButtons default true;
property ShowLeftTopScrollButton : Boolean read FShowLeftTopScrollButton write SetShowLeftTopScrollButton;
@ -412,7 +430,6 @@ type
property Images : TImageList read FImages write SetImages;
property NormalTabColor: TColor read GetNormalTabColor write SetNormalTabColor default clBlue;
property ActiveTabColor: TColor read GetActiveTabColor write SetActiveTabColor default clGreen;
//property ShowTabs : Boolean; { TODO }
end;
procedure Register;
@ -424,10 +441,7 @@ type
implementation
uses
gradtabcontroleditor, ComponentEditors, math;
const
FPageCount : Integer = 0;
gradtabcontroleditor, ComponentEditors;
{-------------------------------------------------------------------------------
Register
@ -485,36 +499,20 @@ end;
TGradTabPageButton Create(AOwner: TComponent
------------------------------------------------------------------------------}
constructor TGradTabPageButton.Create(AOwner: TComponent);
var
tempPic : TPicture;
begin
inherited Create(AOwner);
ControlStyle := ControlStyle+[csNoDesignSelectable,csDesignInteractive]-[csCaptureMouse];
FCloseButton := TGradButton.Create(Self);
FCloseButton.Width:=12;
FCloseButton.Height:=12;
FCloseButton := TGradTabCloseButton.Create(Self);
FCloseButton.Width:=14;
FCloseButton.Height:=14;
TextAlignment:=taCenter;
FCloseButton.Left:=1;
FCloseButton.Top:=1;
FCloseButton.Caption:='';
FCloseButton.ShowGlyph:=true;
try
tempPic := TPicture.Create;
tempPic.LoadFromLazarusResource('close_btn');
FCloseButton.Glyph.Assign(tempPic.Graphic);
finally
tempPic.Free;
end;
FCloseButton.BorderSides:=[];
FCloseButton.Color:=clRed;
FShowCloseButton:=false;
FShowCloseButtonOnMouseOver:=false;
SetSubComponent(true);
end;
@ -544,11 +542,11 @@ begin
case RotateDirection of
rdNormal: begin
NewTop:=(DisplayHeight div 2)-(FCloseButton.Height div 2)-1;
NewLeft:=DisplayWidth-(FCloseButton.Width)+1;
NewTop:=(DisplayHeight div 2)-(FCloseButton.Height div 2);
NewLeft:=DisplayWidth-(FCloseButton.Width);
end;
rdRight: begin
NewTop:=DisplayHeight-(FCloseButton.Height)+1;
NewTop:=DisplayHeight-(FCloseButton.Height);
NewLeft:=(DisplayWidth div 2)-(FCloseButton.Width div 2);
end;
rdLeft: begin
@ -578,6 +576,22 @@ begin
end;
end;
procedure TGradTabPageButton.SetShowCloseButtonOnMouseOver(const AValue: Boolean
);
begin
{*
IF ShowCloseButton AND ShowCloseButtonOnMouseOver
then the CloseButton is Invisible until the Mouse is Over the CloseButton
*}
if FShowCloseButtonOnMouseOver=AValue then exit;
if not FShowCloseButton then Exit;
FShowCloseButtonOnMouseOver:=AValue;
FCloseButton.Visible:=false;
end;
{-------------------------------------------------------------------------------
TGradTabPageButton Resize
------------------------------------------------------------------------------}
@ -592,21 +606,9 @@ procedure TGradTabPageButton.SetBounds(aLeft, aTop, aWidth, aHeight: integer);
var
ParentControl : TGradTabControl;
begin
{if Parent = nil then Exit;
ParentControl := TGradTabPagesBar(Parent).FTabControl;
if ParentControl.TabPosition in [tpLeft, tpRight] then
begin
if ParentControl.LongTabs then
begin
if ParentControl.LongWidth <> aWidth then
if ParentControl.LongWidth < aWidth then
begin
ParentControl.LongWidth:=aWidth;
end;
end;
end;}
inherited SetBounds(aLeft, aTop, aWidth, aHeight);
AlignCloseButton;
end;
{-------------------------------------------------------------------------------
@ -616,6 +618,11 @@ procedure TGradTabPageButton.SetRotateDirection(const Value: TRotateDirection);
begin
inherited;
case Value of
rdNormal: TextAlignment := taLeftJustify;
rdLeft, rdRight: TextAlignment := taCenter;
end;
FCloseButton.RotateDirection:=Value;
if FShowCloseButton then
AlignCloseButton;
@ -645,6 +652,9 @@ end;
procedure TGradTabPageButton.SetAutoHeightBorderSpacing(const AValue: Integer);
begin
if ShowGlyph then
inherited SetAutoHeightBorderSpacing(AValue+Glyph.Height)
else
inherited SetAutoHeightBorderSpacing(AValue);
if Parent <> nil then (Parent AS TGradTabPagesBar).OrderButtons;
@ -652,6 +662,9 @@ end;
procedure TGradTabPageButton.SetAutoWidthBorderSpacing(const AValue: Integer);
begin
if ShowGlyph then
inherited SetAutoWidthBorderSpacing(AValue+Glyph.Width)
else
inherited SetAutoWidthBorderSpacing(AValue);
if Parent <> nil then (Parent AS TGradTabPagesBar).OrderButtons;
@ -664,6 +677,56 @@ begin
if Parent <> nil then (Parent AS TGradTabPagesBar).OrderButtons;
end;
procedure TGradTabPageButton.CloseBtnBackgroundPaint(Sender: TGradButton;
TargetCanvas: TCanvas; R: TRect; BState: TButtonState);
begin
// nothing
end;
procedure TGradTabPageButton.GetContentRect(var TheRect: TRect);
begin
inherited GetContentRect(TheRect);
if ShowGlyph then
begin
case RotateDirection of
rdNormal: begin
TheRect.Right:=TheRect.Right-(FCloseButton.Glyph.Width);
end;
rdLeft: begin
TheRect.Top:= TheRect.Top+(FCloseButton.Glyph.Height);
end;
rdRight: begin
TheRect.Bottom:= TheRect.Bottom-(FCloseButton.Glyph.Height);
end;
end;
end;
end;
procedure TGradTabPageButton.SetBaseColor(const Value: TColor);
begin
inherited SetBaseColor(Value);
FCloseButton.Color:=Value;
end;
procedure TGradTabPageButton.MouseMove(Shift: TShiftState; X, Y: Integer);
var
CloseBtnRect : TRect;
begin
inherited MouseMove(Shift, X, Y);
if not FShowCloseButton then Exit;
if not FShowCloseButtonOnMouseOver then Exit;
CloseBtnRect.Top:=FCloseButton.Top;
CloseBtnRect.Left:=FCloseButton.Left;
CloseBtnRect.Right:=FCloseButton.Left+FCloseButton.Width;
CloseBtnRect.Bottom:=FCloseButton.Top+FCloseButton.Height;
FCloseButton.Visible:=PtInRect(CloseBtnRect, Point(X,Y));
end;
{-------------------------------------------------------------------------------
TGradTabPage Create(AOwner: TGradTabPageButton)
------------------------------------------------------------------------------}
@ -678,6 +741,7 @@ begin
Align := alClient;
FButton := TGradTabPageButton.Create(Self);
FButton.Page := Self;
FTabVisible:=true;
FShowCloseButton:=false;
@ -916,6 +980,14 @@ begin
end;
end;
procedure TGradTabPage.SetShowCloseButtonOnMouseOver(const AValue: Boolean);
begin
if FShowCloseButtonOnMouseOver=AValue then exit;
FShowCloseButtonOnMouseOver:=AValue;
FButton.ShowCloseButtonOnMouseOver:=AValue;
end;
procedure TGradTabPage.SetTabButtonLayout(const AValue: TButtonLayout);
begin
FButton.ButtonLayout:=AValue;
@ -1142,8 +1214,12 @@ begin
OnMouseUp:=@FTabControl.PageButtonMouseUp;
OnClick:=@FTabControl.PageButtonMouseClick;
OnMouseMove:=@FTabControl.PageButtonMouseMove;
FCloseButton.OnMouseUp:=@FTabControl.PageCloseButtonMouseUp;
end;
if Assigned(PopupMenu) then
AButton.PopupMenu := PopupMenu;
if (Index >= 1) AND (FPageList.Count>=1) then
UnFocusButton(Index-1);
@ -1819,8 +1895,6 @@ end;
procedure TGradTabPages.Delete(Index: Integer);
var
APage: TGradTabPage;
AButton : TGradTabPageButton;
CurrentPageNum,i : Integer;
begin
// Make sure Index is in the range of valid pages to delete
{$IFDEF DEBUGTAB}
@ -1854,7 +1928,6 @@ end;
procedure TGradTabPages.Insert(Index: Integer; const S: String);
var
NewPage: TGradTabPage;
NewButton: TGradTabPageButton;
NewOwner: TComponent;
begin
{$IFDEF DEBUGTAB}
@ -2102,6 +2175,11 @@ begin
Result := FPagesBar.NormalTabColor;
end;
function TGradTabControl.GetTabPopupMenu: TPopupMenu;
begin
Result := FPagesBar.PopupMenu;
end;
procedure TGradTabControl.ImageListChange(Sender: TObject);
begin
UpdateTabImages;
@ -2117,6 +2195,16 @@ begin
FPagesBar.NormalTabColor:=AValue;
end;
procedure TGradTabControl.SetTabPopupMenu(const AValue: TPopupMenu);
var
i : Integer;
begin
FPagesBar.PopupMenu := AValue;
for i := 0 to PageCount -1 do
Page[i].TabButton.PopupMenu := AValue;
end;
procedure TGradTabControl.UpdateTabImages;
var
i : Integer;
@ -2144,9 +2232,6 @@ end;
TGradTabControl GetPage(AIndex: Integer) : TGradTabPage
------------------------------------------------------------------------------}
function TGradTabControl.GetPage(AIndex: Integer) : TGradTabPage;
var
LastTabPage : TGradTabPage;
LastTab : Integer;
begin
Result := nil;
@ -2237,6 +2322,17 @@ begin
FOnTabButtonClick(Self, FPageList.IndexOf(AButton.Owner));
end;
procedure TGradTabControl.PageCloseButtonMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
AButton : TGradTabPageButton;
begin
AButton := TGradTabPageButton(TControl(Sender).Parent);
if Assigned(FOnTabCloseButtonClick) then
FOnTabCloseButtonClick(Self, FPageList.IndexOf(AButton.Owner));
end;
procedure TGradTabControl.PopupMouseClick(Sender: TObject);
var
AButton : TGradTabPageButton;
@ -2538,8 +2634,6 @@ end;
procedure TGradTabControl.InsertPage(APage: TGradTabPage; Index: Integer);
var
NewZPosition: integer;
cRect : TRect;
tempName : String;
begin
if FPageList.IndexOf(APage)>=0 then exit;
{$IFDEF DEBUGTAB}
@ -2885,7 +2979,6 @@ end;
------------------------------------------------------------------------------}
procedure TGradTabControl.Paint;
var
i,j : Integer;
AClientRect : TRect;
begin
Canvas.Brush.Color:=Color;
@ -3080,6 +3173,34 @@ begin
FOldForm := nil;
end;
{ TGradTabCloseButton }
constructor TGradTabCloseButton.Create(AOwner: TComponent);
var
tempPic : TPicture;
begin
//FOwnerBackgroundDraw:=true;
inherited Create(AOwner);
try
tempPic := TPicture.Create;
tempPic.LoadFromLazarusResource('btn_cancel');
Glyph.Assign(tempPic.Graphic);
finally
tempPic.Free;
end;
ShowGlyph:=true;
BorderSides:=[];
//Color:=clRed;
SetSubComponent(true);
end;
initialization
{$I ugradtabcontrol.lrs}

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;