diff --git a/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpi b/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpi new file mode 100644 index 000000000..31be029ba --- /dev/null +++ b/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpi @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpr b/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpr new file mode 100644 index 000000000..ac13f083a --- /dev/null +++ b/components/rx/Demos/PhoneBookDemo/PhoneBookDemo.lpr @@ -0,0 +1,18 @@ +program PhoneBookDemo; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms + { add your units here }, pbMainUnit, rxnew, DBFLaz; + +begin + Application.Initialize; + Application.CreateForm(TpbMainForm, pbMainForm); + Application.Run; +end. + diff --git a/components/rx/Demos/PhoneBookDemo/bases/PhoneBook.DBF b/components/rx/Demos/PhoneBookDemo/bases/PhoneBook.DBF new file mode 100644 index 000000000..710a1887f Binary files /dev/null and b/components/rx/Demos/PhoneBookDemo/bases/PhoneBook.DBF differ diff --git a/components/rx/Demos/PhoneBookDemo/bases/PhoneBook.DBT b/components/rx/Demos/PhoneBookDemo/bases/PhoneBook.DBT new file mode 100644 index 000000000..f66c9cf4c Binary files /dev/null and b/components/rx/Demos/PhoneBookDemo/bases/PhoneBook.DBT differ diff --git a/components/rx/Demos/PhoneBookDemo/pbmainunit.lfm b/components/rx/Demos/PhoneBookDemo/pbmainunit.lfm new file mode 100644 index 000000000..ee3af2a75 --- /dev/null +++ b/components/rx/Demos/PhoneBookDemo/pbmainunit.lfm @@ -0,0 +1,156 @@ +object pbMainForm: TpbMainForm + Left = 274 + Height = 446 + Top = 446 + Width = 849 + HorzScrollBar.Page = 848 + VertScrollBar.Page = 445 + Caption = 'pbMainForm' + ClientHeight = 446 + ClientWidth = 849 + Menu = MainMenu1 + OnCreate = FormCreate + Position = poDesktopCenter + object ToolPanel1: TToolPanel + Height = 23 + Width = 849 + Items = <> + Align = alTop + AutoSize = True + BorderWidth = 4 + TabOrder = 0 + end + object RxDBGrid1: TRxDBGrid + Height = 403 + Top = 23 + Width = 849 + Columns = < + item + Title.Alignment = taCenter + Width = 190 + FieldName = 'PATRONYMIC' + Filter.ItemIndex = -1 + end + item + Title.Alignment = taCenter + Width = 150 + FieldName = 'NAME' + Filter.ItemIndex = -1 + end + item + Title.Alignment = taCenter + Width = 150 + FieldName = 'SURNAME' + Filter.ItemIndex = -1 + end + item + Title.Alignment = taCenter + Width = 130 + FieldName = 'PHONE' + Filter.ItemIndex = -1 + end + item + Title.Alignment = taCenter + FieldName = 'ICQ' + Filter.ItemIndex = -1 + end + item + Title.Alignment = taCenter + FieldName = 'MEMO' + Filter.ItemIndex = -1 + end> + Align = alClient + FocusColor = clRed + SelectedColor = clHighlight + DataSource = Datasource1 + FixedColor = clBtnFace + Options = [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColumnMove, dgColLines, dgRowLines, dgTabs, dgAlwaysShowSelection, dgConfirmDelete] + OptionsExtra = [dgeAutoColumns, dgeCheckboxColumn] + ParentColor = False + Scrollbars = ssBoth + TabOrder = 1 + TabStop = True + end + object StatusBar1: TStatusBar + Height = 20 + Top = 426 + Width = 849 + Panels = <> + end + object ImageList1: TImageList + left = 167 + top = 64 + end + object ImageList2: TImageList + left = 200 + top = 64 + end + object ActionList1: TActionList + left = 167 + top = 120 + end + object MainMenu1: TMainMenu + left = 136 + top = 120 + end + object Dbf1: TDbf + FilePath = 'C:\Lazarus\components\rxnew\Demos\PhoneBookDemo\bases\' + IndexDefs = <> + TableName = 'PhoneBook.DBF' + TableLevel = 3 + left = 167 + top = 167 + object Dbf1ID1: TLongintField + AlignMent = taRightJustify + DisplayWidth = 10 + FieldName = 'ID' + ProviderFlags = [pfInUpdate, pfInWhere] + end + object Dbf1PATRONYMIC1: TStringField + DisplayWidth = 50 + FieldName = 'PATRONYMIC' + Index = 1 + ProviderFlags = [pfInUpdate, pfInWhere] + Size = 50 + end + object Dbf1NAME1: TStringField + DisplayWidth = 30 + FieldName = 'NAME' + Index = 2 + ProviderFlags = [pfInUpdate, pfInWhere] + Size = 30 + end + object Dbf1SURNAME1: TStringField + DisplayWidth = 30 + FieldName = 'SURNAME' + Index = 3 + ProviderFlags = [pfInUpdate, pfInWhere] + Size = 30 + end + object Dbf1PHONE1: TStringField + DisplayWidth = 20 + FieldName = 'PHONE' + Index = 4 + ProviderFlags = [pfInUpdate, pfInWhere] + end + object Dbf1ICQ1: TStringField + DisplayWidth = 15 + FieldName = 'ICQ' + Index = 5 + ProviderFlags = [pfInUpdate, pfInWhere] + Size = 15 + end + object Dbf1MEMO1: TMemoField + DisplayWidth = 10 + FieldName = 'MEMO' + Index = 6 + ProviderFlags = [pfInUpdate, pfInWhere] + Transliterate = False + end + end + object Datasource1: TDatasource + DataSet = Dbf1 + left = 136 + top = 168 + end +end diff --git a/components/rx/Demos/PhoneBookDemo/pbmainunit.lrs b/components/rx/Demos/PhoneBookDemo/pbmainunit.lrs new file mode 100644 index 000000000..2aa0aedcc --- /dev/null +++ b/components/rx/Demos/PhoneBookDemo/pbmainunit.lrs @@ -0,0 +1,49 @@ +{ Это - файл ресурсов, автоматически созданный lazarus } + +LazarusResources.Add('TpbMainForm','FORMDATA',[ + 'TPF0'#11'TpbMainForm'#10'pbMainForm'#4'Left'#3#18#1#6'Height'#3#190#1#3'Top' + +#3#190#1#5'Width'#3'Q'#3#18'HorzScrollBar.Page'#3'P'#3#18'VertScrollBar.Page' + +#3#189#1#7'Caption'#6#10'pbMainForm'#12'ClientHeight'#3#190#1#11'ClientWidth' + +#3'Q'#3#4'Menu'#7#9'MainMenu1'#8'OnCreate'#7#10'FormCreate'#8'Position'#7#15 + +'poDesktopCenter'#0#10'TToolPanel'#10'ToolPanel1'#6'Height'#2#23#5'Width'#3 + +'Q'#3#5'Items'#14#0#5'Align'#7#5'alTop'#8'AutoSize'#9#11'BorderWidth'#2#4#8 + +'TabOrder'#2#0#0#0#9'TRxDBGrid'#9'RxDBGrid1'#6'Height'#3#147#1#3'Top'#2#23#5 + +'Width'#3'Q'#3#7'Columns'#14#1#15'Title.Alignment'#7#8'taCenter'#5'Width'#3 + +#190#0#9'FieldName'#6#10'PATRONYMIC'#16'Filter.ItemIndex'#2#255#0#1#15'Title' + +'.Alignment'#7#8'taCenter'#5'Width'#3#150#0#9'FieldName'#6#4'NAME'#16'Filter' + +'.ItemIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#5'Width'#3#150#0#9 + +'FieldName'#6#7'SURNAME'#16'Filter.ItemIndex'#2#255#0#1#15'Title.Alignment'#7 + +#8'taCenter'#5'Width'#3#130#0#9'FieldName'#6#5'PHONE'#16'Filter.ItemIndex'#2 + +#255#0#1#15'Title.Alignment'#7#8'taCenter'#9'FieldName'#6#3'ICQ'#16'Filter.I' + +'temIndex'#2#255#0#1#15'Title.Alignment'#7#8'taCenter'#9'FieldName'#6#4'MEMO' + +#16'Filter.ItemIndex'#2#255#0#0#5'Align'#7#8'alClient'#10'FocusColor'#7#5'cl' + +'Red'#13'SelectedColor'#7#11'clHighlight'#10'DataSource'#7#11'Datasource1'#10 + +'FixedColor'#7#9'clBtnFace'#7'Options'#11#9'dgEditing'#8'dgTitles'#11'dgIndi' + +'cator'#14'dgColumnResize'#12'dgColumnMove'#10'dgColLines'#10'dgRowLines'#6 + +'dgTabs'#21'dgAlwaysShowSelection'#15'dgConfirmDelete'#0#12'OptionsExtra'#11 + +#14'dgeAutoColumns'#17'dgeCheckboxColumn'#0#11'ParentColor'#8#10'Scrollbars' + +#7#6'ssBoth'#8'TabOrder'#2#1#7'TabStop'#9#0#0#10'TStatusBar'#10'StatusBar1'#6 + +'Height'#2#20#3'Top'#3#170#1#5'Width'#3'Q'#3#6'Panels'#14#0#0#0#10'TImageLis' + +'t'#10'ImageList1'#4'left'#3#167#0#3'top'#2'@'#0#0#10'TImageList'#10'ImageLi' + +'st2'#4'left'#3#200#0#3'top'#2'@'#0#0#11'TActionList'#11'ActionList1'#4'left' + +#3#167#0#3'top'#2'x'#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3#136#0#3'top'#2 + +'x'#0#0#4'TDbf'#4'Dbf1'#8'FilePath'#6'6C:\Lazarus\components\rxnew\Demos\Pho' + +'neBookDemo\bases\'#9'IndexDefs'#14#0#9'TableName'#6#13'PhoneBook.DBF'#10'Ta' + +'bleLevel'#2#3#4'left'#3#167#0#3'top'#3#167#0#0#13'TLongintField'#7'Dbf1ID1' + +#9'AlignMent'#7#14'taRightJustify'#12'DisplayWidth'#2#10#9'FieldName'#6#2'ID' + +#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#0#0#12'TStringField'#15 + +'Dbf1PATRONYMIC1'#12'DisplayWidth'#2'2'#9'FieldName'#6#10'PATRONYMIC'#5'Inde' + +'x'#2#1#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Size'#2'2'#0#0 + +#12'TStringField'#9'Dbf1NAME1'#12'DisplayWidth'#2#30#9'FieldName'#6#4'NAME'#5 + +'Index'#2#2#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Size'#2#30#0 + +#0#12'TStringField'#12'Dbf1SURNAME1'#12'DisplayWidth'#2#30#9'FieldName'#6#7 + +'SURNAME'#5'Index'#2#3#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4 + +'Size'#2#30#0#0#12'TStringField'#10'Dbf1PHONE1'#12'DisplayWidth'#2#20#9'Fiel' + +'dName'#6#5'PHONE'#5'Index'#2#4#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWh' + +'ere'#0#0#0#12'TStringField'#8'Dbf1ICQ1'#12'DisplayWidth'#2#15#9'FieldName'#6 + +#3'ICQ'#5'Index'#2#5#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#4'Si' + +'ze'#2#15#0#0#10'TMemoField'#9'Dbf1MEMO1'#12'DisplayWidth'#2#10#9'FieldName' + +#6#4'MEMO'#5'Index'#2#6#13'ProviderFlags'#11#10'pfInUpdate'#9'pfInWhere'#0#13 + +'Transliterate'#8#0#0#0#11'TDatasource'#11'Datasource1'#7'DataSet'#7#4'Dbf1' + +#4'left'#3#136#0#3'top'#3#168#0#0#0#0 +]); diff --git a/components/rx/Demos/PhoneBookDemo/pbmainunit.pas b/components/rx/Demos/PhoneBookDemo/pbmainunit.pas new file mode 100644 index 000000000..e03f077ea --- /dev/null +++ b/components/rx/Demos/PhoneBookDemo/pbmainunit.pas @@ -0,0 +1,56 @@ +unit pbMainUnit; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, rxtoolbar, + rxdbgrid, ComCtrls, ActnList, Menus, dbf, db; + +type + + { TpbMainForm } + + TpbMainForm = class(TForm) + ActionList1: TActionList; + Datasource1: TDatasource; + Dbf1: TDbf; + Dbf1ICQ1: TStringField; + Dbf1ID1: TLongintField; + Dbf1MEMO1: TMemoField; + Dbf1NAME1: TStringField; + Dbf1PATRONYMIC1: TStringField; + Dbf1PHONE1: TStringField; + Dbf1SURNAME1: TStringField; + ImageList1: TImageList; + ImageList2: TImageList; + MainMenu1: TMainMenu; + RxDBGrid1: TRxDBGrid; + StatusBar1: TStatusBar; + ToolPanel1: TToolPanel; + procedure FormCreate(Sender: TObject); + private + { private declarations } + public + { public declarations } + end; + +var + pbMainForm: TpbMainForm; + +implementation + +{ TpbMainForm } + +procedure TpbMainForm.FormCreate(Sender: TObject); +begin + Dbf1.FilePathFull:=ExtractFilePath(ParamStr(0))+DirectorySeparator+'bases'; + Dbf1.Open; +end; + +initialization + {$I pbmainunit.lrs} + +end. + diff --git a/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi b/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi index 1e722ddf3..1bd17ec67 100644 --- a/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi +++ b/components/rx/Demos/RxDBGrid/RxDBGridDemo.lpi @@ -46,7 +46,7 @@ - + @@ -56,8 +56,8 @@ - - + + @@ -78,16 +78,18 @@ - - + + + + - + @@ -113,52 +115,40 @@ - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - @@ -182,7 +172,7 @@ - + @@ -191,10 +181,6 @@ - - - - diff --git a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm index e3f74f602..b31bc4acf 100644 --- a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm +++ b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lfm @@ -2,18 +2,18 @@ object RxDBGridMainForm: TRxDBGridMainForm Left = 353 Height = 582 Top = 161 - Width = 827 - HorzScrollBar.Page = 826 + Width = 859 + HorzScrollBar.Page = 858 VertScrollBar.Page = 581 ActiveControl = RxDBGrid1 Caption = 'RxDBGrid Demo (ver 2) ...' ClientHeight = 582 - ClientWidth = 827 + ClientWidth = 859 OnCreate = FormCreate object RxDBGrid1: TRxDBGrid Height = 532 Top = 50 - Width = 827 + Width = 859 Columns = < item Title.Alignment = taCenter @@ -72,10 +72,10 @@ object RxDBGridMainForm: TRxDBGridMainForm end object Panel1: TPanel Height = 50 - Width = 827 + Width = 859 Align = alTop ClientHeight = 50 - ClientWidth = 827 + ClientWidth = 859 TabOrder = 1 object Button1: TButton Left = 8 @@ -133,7 +133,7 @@ object RxDBGridMainForm: TRxDBGridMainForm Size = 150 end> OnFilterRecordEx = RxMemoryData1FilterRecordEx - left = 144 + left = 152 top = 264 object RxMemoryData1ID1: TLongintField AlignMent = taRightJustify diff --git a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lrs b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lrs index e698485d5..e0c1c110b 100644 --- a/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lrs +++ b/components/rx/Demos/RxDBGrid/rxdbgridmainunit.lrs @@ -2,11 +2,11 @@ LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[ 'TPF0'#17'TRxDBGridMainForm'#16'RxDBGridMainForm'#4'Left'#3'a'#1#6'Height'#3 - +'F'#2#3'Top'#3#161#0#5'Width'#3';'#3#18'HorzScrollBar.Page'#3':'#3#18'VertSc' + +'F'#2#3'Top'#3#161#0#5'Width'#3'['#3#18'HorzScrollBar.Page'#3'Z'#3#18'VertSc' +'rollBar.Page'#3'E'#2#13'ActiveControl'#7#9'RxDBGrid1'#7'Caption'#6#26'RxDBG' - +'rid Demo (ver 2) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'#3';'#3#8'OnC' + +'rid Demo (ver 2) ...'#12'ClientHeight'#3'F'#2#11'ClientWidth'#3'['#3#8'OnC' +'reate'#7#10'FormCreate'#0#9'TRxDBGrid'#9'RxDBGrid1'#6'Height'#3#20#2#3'Top' - +#2'2'#5'Width'#3';'#3#7'Columns'#14#1#15'Title.Alignment'#7#8'taCenter'#13'T' + +#2'2'#5'Width'#3'['#3#7'Columns'#14#1#15'Title.Alignment'#7#8'taCenter'#13'T' +'itle.Caption'#6#4'Code'#9'FieldName'#6#2'ID'#16'Footer.Alignment'#7#14'taRi' +'ghtJustify'#20'Footer.DisplayFormat'#6#9'Count: %d'#16'Footer.ValueType'#7#8 +'fvtCount'#12'Filter.Color'#7#6'clLime'#16'Filter.ItemIndex'#2#255#0#1#15'Ti' @@ -27,8 +27,8 @@ LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[ +'aysShowSelection'#15'dgConfirmDelete'#14'dgCancelOnExit'#13'dgMultiselect'#0 +#12'OptionsExtra'#11#14'dgeAutoColumns'#17'dgeCheckboxColumn'#0#11'ParentCol' +'or'#8#9'PopupMenu'#7#10'PopupMenu1'#10'Scrollbars'#7#6'ssBoth'#8'TabOrder'#2 - +#0#7'TabStop'#9#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#5'Width'#3';'#3#5'Ali' - +'gn'#7#5'alTop'#12'ClientHeight'#2'2'#11'ClientWidth'#3';'#3#8'TabOrder'#2#1 + +#0#7'TabStop'#9#0#0#6'TPanel'#6'Panel1'#6'Height'#2'2'#5'Width'#3'['#3#5'Ali' + +'gn'#7#5'alTop'#12'ClientHeight'#2'2'#11'ClientWidth'#3'['#3#8'TabOrder'#2#1 +#0#7'TButton'#7'Button1'#4'Left'#2#8#6'Height'#2#25#3'Top'#2#8#5'Width'#2'K' +#6'Action'#7#12'actCalcTotal'#25'BorderSpacing.InnerBorder'#2#4#8'TabOrder'#2 +#0#0#0#7'TButton'#7'Button2'#4'Left'#2'X'#6'Height'#2#25#3'Top'#2#8#5'Width' @@ -41,7 +41,7 @@ LazarusResources.Add('TRxDBGridMainForm','FORMDATA',[ +#8'ftString'#9'Precision'#2#255#4'Size'#3#150#0#0#1#4'Name'#6#5'PRICE'#8'Dat' +'aType'#7#7'ftFloat'#9'Precision'#2#2#4'Size'#2#12#0#1#4'Name'#6#9'Developer' +#8'DataType'#7#8'ftString'#9'Precision'#2#255#4'Size'#3#150#0#0#0#16'OnFilte' - +'rRecordEx'#7#27'RxMemoryData1FilterRecordEx'#4'left'#3#144#0#3'top'#3#8#1#0 + +'rRecordEx'#7#27'RxMemoryData1FilterRecordEx'#4'left'#3#152#0#3'top'#3#8#1#0 +#13'TLongintField'#16'RxMemoryData1ID1'#9'AlignMent'#7#14'taRightJustify'#12 +'DisplayWidth'#2#10#9'FieldName'#6#2'ID'#13'ProviderFlags'#11#10'pfInUpdate' +#9'pfInWhere'#0#0#0#12'TStringField'#18'RxMemoryData1NAME1'#12'DisplayWidth' diff --git a/components/rx/Demos/ToolPanel/project1.lpi b/components/rx/Demos/ToolPanel/project1.lpi index 11c001dda..2599d8a2a 100644 --- a/components/rx/Demos/ToolPanel/project1.lpi +++ b/components/rx/Demos/ToolPanel/project1.lpi @@ -7,590 +7,8 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -616,32 +34,590 @@ - - + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + diff --git a/components/rx/Demos/ToolPanel/toolbardemo.cfg b/components/rx/Demos/ToolPanel/toolbardemo.cfg index 1db7754b6..33e85afd2 100644 --- a/components/rx/Demos/ToolPanel/toolbardemo.cfg +++ b/components/rx/Demos/ToolPanel/toolbardemo.cfg @@ -1,7 +1,7 @@ - - + + diff --git a/components/rx/Demos/ToolPanel/unit1.lfm b/components/rx/Demos/ToolPanel/unit1.lfm index d6602a9d2..f64c6be8f 100644 --- a/components/rx/Demos/ToolPanel/unit1.lfm +++ b/components/rx/Demos/ToolPanel/unit1.lfm @@ -1,18 +1,19 @@ object MainForm: TMainForm + Left = 275 + Height = 289 + Top = 227 + Width = 620 + HorzScrollBar.Page = 619 + VertScrollBar.Page = 288 Caption = 'ToolPanel demo' ClientHeight = 289 - ClientWidth = 559 - PixelsPerInch = 96 + ClientWidth = 620 Position = poDesktopCenter SessionProperties = 'Width;Height;Left;Top' ShowHint = True - HorzScrollBar.Page = 558 - VertScrollBar.Page = 288 - Left = 440 - Height = 289 - Top = 277 - Width = 559 object ToolPanel1: TToolPanel + Height = 32 + Width = 620 Items = < item Action = actNew @@ -40,7 +41,9 @@ object MainForm: TMainForm Left = 168 Height = 24 Top = 4 - Width = 24 + Width = 39 + DropDownMenu = PopupMenu2 + ButtonStyle = tbrDropDownExtra end item Action = actPrior @@ -49,6 +52,7 @@ object MainForm: TMainForm Height = 24 Top = 4 Width = 50 + DropDownMenu = PopupMenu2 ShowCaption = True end item @@ -66,7 +70,7 @@ object MainForm: TMainForm Left = 8 Height = 24 Top = 4 - Width = 85 + Width = 63 DropDownMenu = PopupMenu1 ShowCaption = True ButtonStyle = tbrDropDown @@ -86,123 +90,244 @@ object MainForm: TMainForm BtnHeight = 24 ToolBarStyle = tbsWindowsXP Options = [tpFlatBtns, tpCustomizable, tpGlyphPopup, tpCaptionPopup] - Version = 1 + Version = 3 Align = alTop AutoSize = True BorderWidth = 4 ClientHeight = 32 - ClientWidth = 559 + ClientWidth = 620 FullRepaint = False - ParentColor = True TabOrder = 0 - Height = 32 - Width = 559 end object ImageList1: TImageList - left = 216 - top = 8 + left = 168 + top = 80 Bitmap = { - 6C69070000001000000010000000C30100002F2A2058504D202A2F0A73746174 - 69632063686172202A546F6F6C734E6F726D616C4269746D61705B5D3D7B0A22 - 313620313620352031222C0A222E2063204E6F6E65222C0A2223206320233030 - 30303030222C0A226220632023383030303030222C0A22612063202338303830 - 3030222C0A226320632023633063306330222C0A222E2E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E - 2E2E2E2E2E232323232E2E2E2E222C0A222E2E2E2E2E2E2E232361612323232E - 2E222C0A222E2E2E2323232E2E2E2323616161232E222C0A222E2E2E2E23232E - 2E2E2E23616161232E222C0A222E232E2E23232E2E2E2E232361612323222C0A - 222E23232323232E2E2E23622323236161222C0A222E2323232363232E236223 - 2E2E236123222C0A222E2E2E2E2E23632362232E2E2E2E232E222C0A222E2E2E - 2E2E2E2363232E2E2E2E2E2E2E222C0A222E2E2E2E2E23622363232E2E2E2E2E - 2E222C0A222E2E2E2E2362232E2363232E2E2E2E2E222C0A222E2E2E2362232E - 2E2E2363232E2E2E2E222C0A222E2E2362232E2E2E2E2E2363232E2E2E222C0A - 222E2E23232E2E2E2E2E2E2E23232E2E2E227D3B0AA50100002F2A2058504D20 - 2A2F0A7374617469632063686172202A5072696F724E6F726D616C4269746D61 - 705B5D3D7B0A22313620313620332031222C0A222E2063204E6F6E65222C0A22 - 2320632023303030303030222C0A226120632023666666666666222C0A222E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E - 232E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E23232E2E2E2E2E2E2E2E2E222C - 0A222E2E2E2E2361232E2E2E2E2E2E2E2E2E222C0A222E2E2E23616123232323 - 232323232E2E222C0A222E2E2361616161616161616161232E2E222C0A222E2E - 2361616161616161616161232E2E222C0A222E2E2E2361612323232323232323 - 2E2E222C0A222E2E2E2E2361232E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E23 - 232E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E232E2E2E2E2E2E2E2E2E222C - 0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E227D3B0AA401 - 00002F2A2058504D202A2F0A7374617469632063686172202A4E6578744E6F72 - 6D616C4269746D61705B5D3D7B0A22313620313620332031222C0A222E206320 - 4E6F6E65222C0A222320632023303030303030222C0A22612063202366666666 - 6666222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C - 0A222E2E2E2E2E2E2E2E2E232E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E23 - 232E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2361232E2E2E2E222C0A222E2E - 23232323232323236161232E2E2E222C0A222E2E236161616161616161616123 - 2E2E222C0A222E2E2361616161616161616161232E2E222C0A222E2E23232323 - 232323236161232E2E2E222C0A222E2E2E2E2E2E2E2E2E2361232E2E2E2E222C - 0A222E2E2E2E2E2E2E2E2E23232E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E23 - 2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E - 2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E227D3B0AA30100002F2A2058504D202A2F0A737461746963206368617220 - 2A4E65774E6F726D616C4269746D61705B5D3D7B0A2231362031362033203122 - 2C0A222E2063204E6F6E65222C0A222320632023303030303030222C0A226120 - 632023666666666666222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A - 222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2323232323232323 - 2E2E2E2E2E222C0A222E2E2E2361616161616123232E2E2E2E222C0A222E2E2E - 236161616161612361232E2E2E222C0A222E2E2E23616161616161232323232E - 2E222C0A222E2E2E23616161616161616161232E2E222C0A222E2E2E23616161 - 616161616161232E2E222C0A222E2E2E23616161616161616161232E2E222C0A - 222E2E2E23616161616161616161232E2E222C0A222E2E2E2361616161616161 - 6161232E2E222C0A222E2E2E23616161616161616161232E2E222C0A222E2E2E - 23616161616161616161232E2E222C0A222E2E2E23616161616161616161232E - 2E222C0A222E2E2E23232323232323232323232E2E222C0A222E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E227D3B0AC60100002F2A2058504D202A2F0A7374617469 - 632063686172202A50726F70657274794E6F726D616C4269746D61705B5D3D7B - 0A22313620313620352031222C0A222E2063204E6F6E65222C0A222320632023 - 303030303030222C0A226120632023303030303830222C0A2262206320236330 - 63306330222C0A226320632023666666666666222C0A222E2E2E2E2E2E2E2E2E - 2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E - 2E2E2E2E2E2E2E2323232323232E61222C0A222E2E2E2E2E2E2E236262626262 - 622361222C0A222E2E2E2E2E2E23622362626262626261222C0A222E23232323 - 2362236223626262626261222C0A222E23636323622362236223626262236122 - 2C0A222E236323622363236223622323232E61222C0A222E2363232363636323 - 622363232E2E2E222C0A222E2363636363636363236363232E2E2E222C0A222E - 2363636363636363636363232E2E2E222C0A222E236361616361616161616323 - 2E2E2E222C0A222E2363636363636363636363232E2E2E222C0A222E23636161 - 63616161616163232E2E2E222C0A222E2363636363636363636363232E2E2E22 - 2C0A222E2323232323232323232323232E2E2E227D3B0A0E0200002F2A205850 - 4D202A2F0A7374617469632063686172202A457869744E6F726D616C4269746D - 61705B5D3D7B0A2231362031362031302031222C0A222E2063204E6F6E65222C - 0A222320632023303030303030222C0A226220632023303030303830222C0A22 - 6320632023303030306666222C0A226120632023303038303030222C0A226720 - 632023303038303830222C0A226420632023303066666666222C0A2266206320 - 23383038303830222C0A226820632023633063306330222C0A22652063202366 - 6666666666222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E - 2E2E2323232323232E2E2E2E2E222C0A222E2E2E2E2E2361616161232E2E2E2E - 2E222C0A222E2E2E2E2E2323232323232E2E2E2E2E222C0A222E2E2E2E2E2E2E - 2E2E2E2E2E2E2E2E2E222C0A222E2E2E626262626262626262622E2E2E222C0A - 222E2E2E626362632364656465622E2E2E222C0A222E2E2E6262636223656465 - 64622E2E2E222C0A222E2E2E626362632364656465622E2E2E222C0A222E2E2E - 626263622365646564622E2E2E222C0A222E2E2E626362632365656565622E2E - 2E222C0A222E2E2E626263622365656565622E2E2E222C0A222E2E2E62636223 - 2366656565622E2E2E222C0A2262626262232366666665656562626262222C0A - 2266666666666666666666666566656666222C0A226766666666666666666665 - 6866686566227D3B0AF00100002F2A2058504D202A2F0A737461746963206368 - 6172202A437573746F6D42746E5F4E6F726D616C5B5D3D7B0A22313820313820 - 332031222C0A222E2063204E6F6E65222C0A222320632023303030303030222C - 0A226120632023666666663030222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E - 2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E - 2E2E2E2E23232323232E2E2E2E2E2E222C0A222E2E2E2E2E2323616161616123 - 232E2E2E2E222C0A222E2E2E2E23616161616161616161232E2E2E222C0A222E - 2E2E236161616161616161616161232E2E222C0A222E2E2E2361612323616161 - 23236161232E2E222C0A222E2E2361616123236161612323616161232E222C0A - 222E2E2361616161616161616161616161232E222C0A222E2E23616161616161 - 61616161616161232E222C0A222E2E2361612361616161616161236161232E22 - 2C0A222E2E2361616123616161616123616161232E222C0A222E2E2E23616161 - 2323232323616161232E2E222C0A222E2E2E236161616161616161616161232E - 2E222C0A222E2E2E2E23616161616161616161232E2E2E222C0A222E2E2E2E2E - 2323616161616123232E2E2E2E222C0A222E2E2E2E2E2E2E23232323232E2E2E - 2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E227D3B0A + 4C69070000001000000010000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000FF000000FF000000FF000000FF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000FF000000FF008080FF008080FF000000FF0000 + 00FF000000FF0000000000000000000000000000000000000000000000FF0000 + 00FF000000FF000000000000000000000000000000FF000000FF008080FF0080 + 80FF008080FF000000FF00000000000000000000000000000000000000000000 + 00FF000000FF00000000000000000000000000000000000000FF008080FF0080 + 80FF008080FF000000FF0000000000000000000000FF00000000000000000000 + 00FF000000FF00000000000000000000000000000000000000FF000000FF0080 + 80FF008080FF000000FF000000FF00000000000000FF000000FF000000FF0000 + 00FF000000FF000000000000000000000000000000FF000080FF000000FF0000 + 00FF000000FF008080FF008080FF00000000000000FF000000FF000000FF0000 + 00FFC0C0C0FF000000FF00000000000000FF000080FF000000FF000000000000 + 0000000000FF008080FF000000FF000000000000000000000000000000000000 + 0000000000FFC0C0C0FF000000FF000080FF000000FF00000000000000000000 + 000000000000000000FF00000000000000000000000000000000000000000000 + 000000000000000000FFC0C0C0FF000000FF0000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000FF000080FF000000FFC0C0C0FF000000FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00FF000080FF000000FF00000000000000FFC0C0C0FF000000FF000000000000 + 0000000000000000000000000000000000000000000000000000000000FF0000 + 80FF000000FF000000000000000000000000000000FFC0C0C0FF000000FF0000 + 00000000000000000000000000000000000000000000000000FF000080FF0000 + 00FF0000000000000000000000000000000000000000000000FFC0C0C0FF0000 + 00FF0000000000000000000000000000000000000000000000FF000000FF0000 + 0000000000000000000000000000000000000000000000000000000000FF0000 + 00FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000FF000000FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00FFFFFFFFFF000000FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF000000FF0000 + 00FF000000FF00000000000000000000000000000000000000FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF00000000000000000000000000000000000000FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF0000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFF000000FF000000FF000000FF000000FF000000FF000000FF0000 + 00FF000000FF0000000000000000000000000000000000000000000000000000 + 00FFFFFFFFFF000000FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000FF000000FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000FF00000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000FF000000FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000FFFFFFFFFF000000FF0000 + 00000000000000000000000000000000000000000000000000FF000000FF0000 + 00FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFF0000 + 00FF0000000000000000000000000000000000000000000000FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF00000000000000000000000000000000000000FFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF00000000000000000000000000000000000000FF000000FF0000 + 00FF000000FF000000FF000000FF000000FF000000FFFFFFFFFFFFFFFFFF0000 + 00FF000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000FFFFFFFFFF000000FF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000FF000000FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000FF00000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000FF0000 + 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000000000 + 0000000000000000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF0000 + 0000000000000000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFF0000 + 00FF000000000000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF000000FF0000 + 00FF000000FF0000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF0000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF0000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF0000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF0000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF0000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF0000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF0000000000000000000000000000000000000000000000FFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFF000000FF0000000000000000000000000000000000000000000000FF0000 + 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 + 00FF000000FF0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000FF000000FF000000FF000000FF0000 + 00FF000000FF00000000800000FF000000000000000000000000000000000000 + 00000000000000000000000000FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0 + C0FFC0C0C0FF000000FF800000FF000000000000000000000000000000000000 + 000000000000000000FFC0C0C0FF000000FFC0C0C0FFC0C0C0FFC0C0C0FFC0C0 + C0FFC0C0C0FFC0C0C0FF800000FF00000000000000FF000000FF000000FF0000 + 00FF000000FFC0C0C0FF000000FFC0C0C0FF000000FFC0C0C0FFC0C0C0FFC0C0 + C0FFC0C0C0FFC0C0C0FF800000FF00000000000000FFFFFFFFFFFFFFFFFF0000 + 00FFC0C0C0FF000000FFC0C0C0FF000000FFC0C0C0FF000000FFC0C0C0FFC0C0 + C0FFC0C0C0FF000000FF800000FF00000000000000FFFFFFFFFF000000FFC0C0 + C0FF000000FFFFFFFFFF000000FFC0C0C0FF000000FFC0C0C0FF000000FF0000 + 00FF000000FF00000000800000FF00000000000000FFFFFFFFFF000000FF0000 + 00FFFFFFFFFFFFFFFFFFFFFFFFFF000000FFC0C0C0FF000000FFFFFFFFFF0000 + 00FF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF0000 + 00FF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 + 00FF00000000000000000000000000000000000000FFFFFFFFFF800000FF8000 + 00FFFFFFFFFF800000FF800000FF800000FF800000FF800000FFFFFFFFFF0000 + 00FF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 + 00FF00000000000000000000000000000000000000FFFFFFFFFF800000FF8000 + 00FFFFFFFFFF800000FF800000FF800000FF800000FF800000FFFFFFFFFF0000 + 00FF00000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000 + 00FF00000000000000000000000000000000000000FF000000FF000000FF0000 + 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 + 00FF000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000FF000000FF000000FF000000FF000000FF000000FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000FF008000FF008000FF008000FF008000FF000000FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000FF000000FF000000FF000000FF000000FF000000FF000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000800000FF8000 + 00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000 + 00FF000000000000000000000000000000000000000000000000800000FFFF00 + 00FF800000FFFF0000FF000000FFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF8000 + 00FF000000000000000000000000000000000000000000000000800000FF8000 + 00FFFF0000FF800000FF000000FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF8000 + 00FF000000000000000000000000000000000000000000000000800000FFFF00 + 00FF800000FFFF0000FF000000FFFFFF00FFFFFFFFFFFFFF00FFFFFFFFFF8000 + 00FF000000000000000000000000000000000000000000000000800000FF8000 + 00FFFF0000FF800000FF000000FFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FF8000 + 00FF000000000000000000000000000000000000000000000000800000FFFF00 + 00FF800000FFFF0000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 + 00FF000000000000000000000000000000000000000000000000800000FF8000 + 00FFFF0000FF800000FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8000 + 00FF000000000000000000000000000000000000000000000000800000FFFF00 + 00FF800000FF000000FF000000FF808080FFFFFFFFFFFFFFFFFFFFFFFFFF8000 + 00FF000000000000000000000000800000FF800000FF800000FF800000FF0000 + 00FF000000FF808080FF808080FF808080FFFFFFFFFFFFFFFFFFFFFFFFFF8000 + 00FF800000FF800000FF800000FF808080FF808080FF808080FF808080FF8080 + 80FF808080FF808080FF808080FF808080FF808080FF808080FFFFFFFFFF8080 + 80FFFFFFFFFF808080FF808080FF808000FF808080FF808080FF808080FF8080 + 80FF808080FF808080FF808080FF808080FF808080FFFFFFFFFFC0C0C0FF8080 + 80FFC0C0C0FFFFFFFFFF808080FF000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000FF000000FF000000FF000000FF000000FF0000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000 + 00FF000000FF0000000000000000000000000000000000000000000000000000 + 00FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF + FFFF00FFFFFF000000FF00000000000000000000000000000000000000FF00FF + FFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF + FFFF00FFFFFF00FFFFFF000000FF000000000000000000000000000000FF00FF + FFFF00FFFFFF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF000000FF0000 + 00FF00FFFFFF00FFFFFF000000FF0000000000000000000000FF00FFFFFF00FF + FFFF00FFFFFF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF000000FF0000 + 00FF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000FF00FFFFFF00FF + FFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF + FFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000FF00FFFFFF00FF + FFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF + FFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000FF00FFFFFF00FF + FFFF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF + FFFF000000FF00FFFFFF00FFFFFF0000000000000000000000FF00FFFFFF00FF + FFFF00FFFFFF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000 + 00FF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000FF00FF + FFFF00FFFFFF00FFFFFF000000FF000000FF000000FF000000FF000000FF00FF + FFFF00FFFFFF00FFFFFF000000FF000000000000000000000000000000FF00FF + FFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF + FFFF00FFFFFF00FFFFFF000000FF000000000000000000000000000000000000 + 00FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF + FFFF00FFFFFF000000FF00000000000000000000000000000000000000000000 + 0000000000FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000 + 00FF000000FF0000000000000000 } end object ActionList1: TActionList @@ -211,43 +336,51 @@ object MainForm: TMainForm top = 40 object actNew: TAction Caption = 'New' - Hint = 'Событие № 1' + DisableIfNoHandler = True + Hint = 'Action N 1' ImageIndex = 3 end object actNext: TAction Caption = 'Next' - Hint = 'Событие № 2' + DisableIfNoHandler = True + Hint = 'Action N 2' ImageIndex = 2 OnExecute = Action1Execute end object actPrior: TAction Caption = 'Prior' - Hint = 'Событие № 3' + DisableIfNoHandler = True + Hint = 'Prior action' ImageIndex = 1 OnExecute = Action1Execute end object actCustom: TAction Caption = 'Custom' - Hint = 'Настройка панели инструментов' + DisableIfNoHandler = True + Hint = 'Customize toolbar' ImageIndex = 0 OnExecute = actCustomExecute end object actExit: TAction Caption = 'Exit' + DisableIfNoHandler = True + Hint = 'exit from demo application' ImageIndex = 5 OnExecute = actExitExecute ShortCut = 32856 end object actSysMenu: TAction - Caption = 'System' - ImageIndex = 4 Tag = 4 + Caption = 'System' + DisableIfNoHandler = True + ImageIndex = 4 end object sysAbout: TAction + Category = 'System' Caption = 'About' + DisableIfNoHandler = True ImageIndex = 6 OnExecute = sysAboutExecute - Category = 'System' end end object XMLPropStorage1: TXMLPropStorage @@ -257,8 +390,8 @@ object MainForm: TMainForm top = 88 end object PopupMenu1: TPopupMenu - left = 96 - top = 8 + left = 16 + top = 40 object MenuItem1: TMenuItem Action = actNew OnClick = Action1Execute @@ -279,9 +412,11 @@ object MainForm: TMainForm end object MenuItem9: TMenuItem Action = actCustom + OnClick = actCustomExecute end object MenuItem7: TMenuItem Action = sysAbout + OnClick = sysAboutExecute end object MenuItem6: TMenuItem Caption = '-' @@ -367,4 +502,21 @@ object MainForm: TMainForm 1FFF00001FFF00001FFFE03FFFFF81FFFFFFC3FFFFFFE7FFFFFFF7FFFFFF } end + object PopupMenu2: TPopupMenu + Images = ImageList1 + left = 168 + top = 40 + object MenuItem10: TMenuItem + Caption = 'Item 1' + end + object MenuItem11: TMenuItem + Caption = 'Item 2' + end + object MenuItem12: TMenuItem + Caption = 'Item 3' + end + object MenuItem13: TMenuItem + Caption = 'Item 4' + end + end end diff --git a/components/rx/Demos/ToolPanel/unit1.lrs b/components/rx/Demos/ToolPanel/unit1.lrs index 1755a1af4..26bf4b81c 100644 --- a/components/rx/Demos/ToolPanel/unit1.lrs +++ b/components/rx/Demos/ToolPanel/unit1.lrs @@ -1,191 +1,389 @@ { Это - файл ресурсов, автоматически созданный lazarus } LazarusResources.Add('TMainForm','FORMDATA',[ - 'TPF0'#9'TMainForm'#8'MainForm'#7'Caption'#6#14'ToolPanel demo'#12'ClientHeig' - +'ht'#3'!'#1#11'ClientWidth'#3'/'#2#13'PixelsPerInch'#2'`'#8'Position'#7#15'p' - +'oDesktopCenter'#17'SessionProperties'#6#21'Width;Height;Left;Top'#8'ShowHin' - +'t'#9#18'HorzScrollBar.Page'#3'.'#2#18'VertScrollBar.Page'#3' '#1#4'Left'#3 - +#184#1#6'Height'#3'!'#1#3'Top'#3#21#1#5'Width'#3'/'#2#0#10'TToolPanel'#10'To' - +'olPanel1'#5'Items'#14#1#6'Action'#7#6'actNew'#7'Visible'#9#4'Left'#3#216#0#6 - +'Height'#2#24#3'Top'#2#4#5'Width'#2'1'#12'DropDownMenu'#7#10'PopupMenu1'#11 - +'ShowCaption'#9#11'ButtonStyle'#7#11'tbrDropDown'#0#1#6'Action'#7#9'actCusto' - +'m'#7'Visible'#9#4'Left'#3#128#1#6'Height'#2#24#3'Top'#2#4#5'Width'#2'@'#11 - +'ShowCaption'#9#0#1#6'Action'#7#7'actNext'#7'Visible'#9#4'Left'#3#168#0#6'He' - +'ight'#2#24#3'Top'#2#4#5'Width'#2#24#0#1#6'Action'#7#8'actPrior'#7'Visible'#9 - +#4'Left'#2'p'#6'Height'#2#24#3'Top'#2#4#5'Width'#2'2'#11'ShowCaption'#9#0#1#6 - +'Action'#7#7'actExit'#7'Visible'#9#4'Left'#3#248#1#6'Height'#2#24#3'Top'#2#4 - +#5'Width'#2'.'#11'ShowCaption'#9#0#1#6'Action'#7#10'actSysMenu'#7'Visible'#9 - +#4'Left'#2#8#6'Height'#2#24#3'Top'#2#4#5'Width'#2'U'#12'DropDownMenu'#7#10'P' - +'opupMenu1'#11'ShowCaption'#9#11'ButtonStyle'#7#11'tbrDropDown'#0#1#6'Action' - +#7#8'sysAbout'#7'Visible'#9#4'Left'#3#192#1#6'Height'#2#24#3'Top'#2#4#5'Widt' - +'h'#2'9'#11'ShowCaption'#9#0#0#9'ImageList'#7#10'ImageList1'#15'PropertyStor' - +'age'#7#15'XMLPropStorage1'#8'BtnWidth'#2#23#9'BtnHeight'#2#24#12'ToolBarSty' - +'le'#7#12'tbsWindowsXP'#7'Options'#11#10'tpFlatBtns'#14'tpCustomizable'#12't' - +'pGlyphPopup'#14'tpCaptionPopup'#0#7'Version'#2#1#5'Align'#7#5'alTop'#8'Auto' - +'Size'#9#11'BorderWidth'#2#4#12'ClientHeight'#2' '#11'ClientWidth'#3'/'#2#11 - +'FullRepaint'#8#11'ParentColor'#9#8'TabOrder'#2#0#6'Height'#2' '#5'Width'#3 - +'/'#2#0#0#10'TImageList'#10'ImageList1'#4'left'#3#216#0#3'top'#2#8#6'Bitmap' - +#10#157#12#0#0'li'#7#0#0#0#16#0#0#0#16#0#0#0#195#1#0#0'/* XPM */'#10'static ' - +'char *ToolsNormalBitmap[]={'#10'"16 16 5 1",'#10'". c None",'#10'"# c #0000' - +'00",'#10'"b c #800000",'#10'"a c #808000",'#10'"c c #c0c0c0",'#10'"........' - +'........",'#10'"................",'#10'"........####....",'#10'".......##aa' - +'###..",'#10'"...###...##aaa#.",'#10'"....##....#aaa#.",'#10'".#..##....##aa' - +'##",'#10'".#####...#b###aa",'#10'".####c#.#b#..#a#",'#10'".....#c#b#....#."' - +','#10'"......#c#.......",'#10'".....#b#c#......",'#10'"....#b#.#c#.....",' - +#10'"...#b#...#c#....",'#10'"..#b#.....#c#...",'#10'"..##.......##..."};'#10 - +#165#1#0#0'/* XPM */'#10'static char *PriorNormalBitmap[]={'#10'"16 16 3 1",' - +#10'". c None",'#10'"# c #000000",'#10'"a c #ffffff",'#10'"................"' - +','#10'"................",'#10'"................",'#10'"......#.........",' - +#10'".....##.........",'#10'"....#a#.........",'#10'"...#aa########..",'#10 - +'"..#aaaaaaaaaa#..",'#10'"..#aaaaaaaaaa#..",'#10'"...#aa########..",'#10'"..' - +'..#a#.........",'#10'".....##.........",'#10'"......#.........",'#10'".....' - +'...........",'#10'"................",'#10'"................"};'#10#164#1#0#0 - +'/* XPM */'#10'static char *NextNormalBitmap[]={'#10'"16 16 3 1",'#10'". c N' - +'one",'#10'"# c #000000",'#10'"a c #ffffff",'#10'"................",'#10'"..' - +'..............",'#10'"................",'#10'".........#......",'#10'".....' - +'....##.....",'#10'".........#a#....",'#10'"..########aa#...",'#10'"..#aaaaa' - +'aaaaa#..",'#10'"..#aaaaaaaaaa#..",'#10'"..########aa#...",'#10'".........#a' - +'#....",'#10'".........##.....",'#10'".........#......",'#10'"..............' - +'..",'#10'"................",'#10'"................"};'#10#163#1#0#0'/* XPM ' - +'*/'#10'static char *NewNormalBitmap[]={'#10'"16 16 3 1",'#10'". c None",'#10 - +'"# c #000000",'#10'"a c #ffffff",'#10'"................",'#10'"............' - +'....",'#10'"...########.....",'#10'"...#aaaaaa##....",'#10'"...#aaaaaa#a#..' - +'.",'#10'"...#aaaaaa####..",'#10'"...#aaaaaaaaa#..",'#10'"...#aaaaaaaaa#..",' - +#10'"...#aaaaaaaaa#..",'#10'"...#aaaaaaaaa#..",'#10'"...#aaaaaaaaa#..",'#10 - +'"...#aaaaaaaaa#..",'#10'"...#aaaaaaaaa#..",'#10'"...#aaaaaaaaa#..",'#10'"..' - +'.###########..",'#10'"................"};'#10#198#1#0#0'/* XPM */'#10'stati' - +'c char *PropertyNormalBitmap[]={'#10'"16 16 5 1",'#10'". c None",'#10'"# c ' - +'#000000",'#10'"a c #000080",'#10'"b c #c0c0c0",'#10'"c c #ffffff",'#10'"...' - +'.............",'#10'"................",'#10'"........######.a",'#10'"......' - +'.#bbbbbb#a",'#10'"......#b#bbbbbba",'#10'".#####b#b#bbbbba",'#10'".#cc#b#b#' - +'b#bbb#a",'#10'".#c#b#c#b#b###.a",'#10'".#c##ccc#b#c#...",'#10'".#ccccccc#cc' - +'#...",'#10'".#cccccccccc#...",'#10'".#caacaaaaac#...",'#10'".#cccccccccc#..' - +'.",'#10'".#caacaaaaac#...",'#10'".#cccccccccc#...",'#10'".############..."}' - +';'#10#14#2#0#0'/* XPM */'#10'static char *ExitNormalBitmap[]={'#10'"16 16 1' - +'0 1",'#10'". c None",'#10'"# c #000000",'#10'"b c #000080",'#10'"c c #0000f' - +'f",'#10'"a c #008000",'#10'"g c #008080",'#10'"d c #00ffff",'#10'"f c #8080' - +'80",'#10'"h c #c0c0c0",'#10'"e c #ffffff",'#10'"................",'#10'"...' - ,'..######.....",'#10'".....#aaaa#.....",'#10'".....######.....",'#10'"......' - +'..........",'#10'"...bbbbbbbbbb...",'#10'"...bcbc#dedeb...",'#10'"...bbcb#e' - +'dedb...",'#10'"...bcbc#dedeb...",'#10'"...bbcb#ededb...",'#10'"...bcbc#eeee' - +'b...",'#10'"...bbcb#eeeeb...",'#10'"...bcb##feeeb...",'#10'"bbbb##fffeeebbb' - +'b",'#10'"fffffffffffefeff",'#10'"gfffffffffehfhef"};'#10#240#1#0#0'/* XPM *' - +'/'#10'static char *CustomBtn_Normal[]={'#10'"18 18 3 1",'#10'". c None",'#10 - +'"# c #000000",'#10'"a c #ffff00",'#10'"..................",'#10'"..........' - +'........",'#10'".......#####......",'#10'".....##aaaaa##....",'#10'"....#aa' - +'aaaaaaa#...",'#10'"...#aaaaaaaaaaa#..",'#10'"...#aa##aaa##aa#..",'#10'"..#a' - +'aa##aaa##aaa#.",'#10'"..#aaaaaaaaaaaaa#.",'#10'"..#aaaaaaaaaaaaa#.",'#10'".' - +'.#aa#aaaaaaa#aa#.",'#10'"..#aaa#aaaaa#aaa#.",'#10'"...#aaa#####aaa#..",'#10 - +'"...#aaaaaaaaaaa#..",'#10'"....#aaaaaaaaa#...",'#10'".....##aaaaa##....",' - +#10'".......#####......",'#10'".................."};'#10#0#0#11'TActionList' - +#11'ActionList1'#6'Images'#7#10'ImageList1'#4'left'#3#216#0#3'top'#2'('#0#7 - +'TAction'#6'actNew'#7'Caption'#6#3'New'#4'Hint'#6#11#209#238#225#251#242#232 - +#229' '#185' 1'#10'ImageIndex'#2#3#0#0#7'TAction'#7'actNext'#7'Caption'#6#4 - +'Next'#4'Hint'#6#11#209#238#225#251#242#232#229' '#185' 2'#10'ImageIndex'#2#2 - +#9'OnExecute'#7#14'Action1Execute'#0#0#7'TAction'#8'actPrior'#7'Caption'#6#5 - +'Prior'#4'Hint'#6#11#209#238#225#251#242#232#229' '#185' 3'#10'ImageIndex'#2 - +#1#9'OnExecute'#7#14'Action1Execute'#0#0#7'TAction'#9'actCustom'#7'Caption'#6 - +#6'Custom'#4'Hint'#6#29#205#224#241#242#240#238#233#234#224' '#239#224#237 - +#229#235#232' '#232#237#241#242#240#243#236#229#237#242#238#226#10'ImageInde' - +'x'#2#0#9'OnExecute'#7#16'actCustomExecute'#0#0#7'TAction'#7'actExit'#7'Capt' - +'ion'#6#4'Exit'#10'ImageIndex'#2#5#9'OnExecute'#7#14'actExitExecute'#8'Short' - +'Cut'#4'X'#128#0#0#0#0#7'TAction'#10'actSysMenu'#7'Caption'#6#6'System'#10'I' - +'mageIndex'#2#4#3'Tag'#2#4#0#0#7'TAction'#8'sysAbout'#7'Caption'#6#5'About' - +#10'ImageIndex'#2#6#9'OnExecute'#7#15'sysAboutExecute'#8'Category'#6#6'Syste' - +'m'#0#0#0#15'TXMLPropStorage'#15'XMLPropStorage1'#12'StoredValues'#14#0#8'Fi' - +'leName'#6#15'toolbardemo.cfg'#4'left'#3#216#0#3'top'#2'X'#0#0#10'TPopupMenu' - +#10'PopupMenu1'#4'left'#2'`'#3'top'#2#8#0#9'TMenuItem'#9'MenuItem1'#6'Action' - +#7#6'actNew'#7'OnClick'#7#14'Action1Execute'#0#0#9'TMenuItem'#9'MenuItem2'#7 - +'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#7'actNext'#7'OnCl' - +'ick'#7#14'Action1Execute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#8'actPr' - +'ior'#7'OnClick'#7#14'Action1Execute'#0#0#9'TMenuItem'#9'MenuItem8'#7'Captio' - +'n'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#9'actCustom'#0#0#9'TMen' - +'uItem'#9'MenuItem7'#6'Action'#7#8'sysAbout'#0#0#9'TMenuItem'#9'MenuItem6'#7 - +'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#7'actExit'#7'OnCl' - +'ick'#7#14'actExitExecute'#0#0#0#10'TRxAppIcon'#10'RxAppIcon1'#4'left'#3#216 - +#0#3'top'#3#128#0#4'Data'#10#190#8#0#0#0#0#1#0#1#0' '#0#0#1#0#8#0#168#8#0#0 - +#22#0#0#0'('#0#0#0' '#0#0#0'@'#0#0#0#1#0#8#0#0#0#0#0#128#4#0#0#0#0#0#0#0#0#0 - +#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0 - +#128#0#128#128#0#0#192#192#192#0#192#220#192#0#240#202#166#0#212#240#255#0 - +#177#226#255#0#142#212#255#0'k'#198#255#0'H'#184#255#0'%'#170#255#0#0#170#255 - +#0#0#146#220#0#0'z'#185#0#0'b'#150#0#0'Js'#0#0'2P'#0#212#227#255#0#177#199 - +#255#0#142#171#255#0'k'#143#255#0'Hs'#255#0'%W'#255#0#0'U'#255#0#0'I'#220#0#0 - +'='#185#0#0'1'#150#0#0'%s'#0#0#25'P'#0#212#212#255#0#177#177#255#0#142#142 - +#255#0'kk'#255#0'HH'#255#0'%%'#255#0#0#0#254#0#0#0#220#0#0#0#185#0#0#0#150#0 - +#0#0's'#0#0#0'P'#0#227#212#255#0#199#177#255#0#171#142#255#0#143'k'#255#0'sH' - +#255#0'W%'#255#0'U'#0#255#0'I'#0#220#0'='#0#185#0'1'#0#150#0'%'#0's'#0#25#0 - +'P'#0#240#212#255#0#226#177#255#0#212#142#255#0#198'k'#255#0#184'H'#255#0#170 - +'%'#255#0#170#0#255#0#146#0#220#0'z'#0#185#0'b'#0#150#0'J'#0's'#0'2'#0'P'#0 - +#255#212#255#0#255#177#255#0#255#142#255#0#255'k'#255#0#255'H'#255#0#255'%' - +#255#0#254#0#254#0#220#0#220#0#185#0#185#0#150#0#150#0's'#0's'#0'P'#0'P'#0 - +#255#212#240#0#255#177#226#0#255#142#212#0#255'k'#198#0#255'H'#184#0#255'%' - +#170#0#255#0#170#0#220#0#146#0#185#0'z'#0#150#0'b'#0's'#0'J'#0'P'#0'2'#0#255 - +#212#227#0#255#177#199#0#255#142#171#0#255'k'#143#0#255'Hs'#0#255'%W'#0#255#0 - +'U'#0#220#0'I'#0#185#0'='#0#150#0'1'#0's'#0'%'#0'P'#0#25#0#255#212#212#0#255 - +#177#177#0#255#142#142#0#255'kk'#0#255'HH'#0#255'%%'#0#254#0#0#0#220#0#0#0 - +#185#0#0#0#150#0#0#0's'#0#0#0'P'#0#0#0#255#227#212#0#255#199#177#0#255#171 - +#142#0#255#143'k'#0#255'sH'#0#255'W%'#0#255'U'#0#0#220'I'#0#0#185'='#0#0#150 - +'1'#0#0's%'#0#0'P'#25#0#0#255#240#212#0#255#226#177#0#255#212#142#0#255#198 - +'k'#0#255#184'H'#0#255#170'%'#0#255#170#0#0#220#146#0#0#185'z'#0#0#150'b'#0#0 - +'sJ'#0#0'P2'#0#0#255#255#212#0#255#255#177#0#255#255#142#0#255#255'k'#0#255 - +#255'H'#0#255#255'%'#0#254#254#0#0#220#220#0#0#185#185#0#0#150#150#0#0'ss'#0 - ,#0'PP'#0#0#240#255#212#0#226#255#177#0#212#255#142#0#198#255'k'#0#184#255'H' - +#0#170#255'%'#0#170#255#0#0#146#220#0#0'z'#185#0#0'b'#150#0#0'Js'#0#0'2P'#0#0 - +#227#255#212#0#199#255#177#0#171#255#142#0#143#255'k'#0's'#255'H'#0'W'#255'%' - +#0'U'#255#0#0'I'#220#0#0'='#185#0#0'1'#150#0#0'%s'#0#0#25'P'#0#0#212#255#212 - +#0#177#255#177#0#142#255#142#0'k'#255'k'#0'H'#255'H'#0'%'#255'%'#0#0#254#0#0 - +#0#220#0#0#0#185#0#0#0#150#0#0#0's'#0#0#0'P'#0#0#212#255#227#0#177#255#199#0 - +#142#255#171#0'k'#255#143#0'H'#255's'#0'%'#255'W'#0#0#255'U'#0#0#220'I'#0#0 - +#185'='#0#0#150'1'#0#0's%'#0#0'P'#25#0#212#255#240#0#177#255#226#0#142#255 - +#212#0'k'#255#198#0'H'#255#184#0'%'#255#170#0#0#255#170#0#0#220#146#0#0#185 - +'z'#0#0#150'b'#0#0'sJ'#0#0'P2'#0#212#255#255#0#177#255#255#0#142#255#255#0'k' - +#255#255#0'H'#255#255#0'%'#255#255#0#0#254#254#0#0#220#220#0#0#185#185#0#0 - +#150#150#0#0'ss'#0#0'PP'#0#242#242#242#0#230#230#230#0#218#218#218#0#206#206 - +#206#0#194#194#194#0#182#182#182#0#170#170#170#0#158#158#158#0#146#146#146#0 - +#134#134#134#0'zzz'#0'nnn'#0'bbb'#0'VVV'#0'JJJ'#0'>>>'#0'222'#0'&&&'#0#26#26 - +#26#0#14#14#14#0#240#251#255#0#164#160#160#0#128#128#128#0#0#0#255#0#0#255#0 - +#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0#0#0#0#0#0#0#0 - +#0#0#0#0#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#19 - +#217#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#19#217#217 - +#217#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#239#239#239#239#239#239#239#239 - +#19#217#217#217#217#217#19#239#239#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239#231 - +#231#231#231#231#232#19#217#217#217#217'r'#217#217#19#231#231#239#0#0#0#0#0#0 - +#0#0#0#0#0#0#0#239#226#226#228#232#232#19#217#217'r'#217#217#217'r'#217#217 - +#19#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239#226#228#231#232#19#217#217#217#217 - +'r'#217#217#217'r'#217#217#19#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239#228#231#232 - +#19#217#217#217#217#217#217#217#217#217#217'r'#217#217#19#0#0#0#0#0#0#0#0#0#0 - +#0#0#0#239#226#228#19#217#217#217#217'r'#217#217#217'r'#217#217#217'r'#217 - +#217#19#0#0#0#0#0#0#0#0#0#0#0#0#239#226#19#217#217'r'#217#217#217'r'#217#217 - +#217'r'#217#217#217'r'#217#217#19#0#0#0#0#0#0#0#0#0#0#0#239#19#217#217#217 - +#217'r'#217#217#217'r'#217#217#217#217#217#217#217#217#19#0#0#0#0#0#0#0#0#0#0 - +#0#0#239#226#19#217#217#217#217'r'#217#217#217#217#0#0#0#217#217#217#19#0#0#0 - +#0#0#0#0#0#0#0#0#0#0#239#226#226#19#217#217#217#217'r'#217#217#0#149#149#149 - +#0#217#19#239#0#0#0#0#0#149#149#149#0#0#0#0#0#239#226#226#226#19#217#217#217 - +#217#217#0#145#145#0#145#149#0#232#239#0#0#0#0#9#9#9#9#149#0#0#0#0#239#226 - +#226#226#226#19#217#217#217#0#9#145#145#145#0#145#149#0#239#0#0#0#9#145#9#9#9 - +#9#149#0#0#0#239#226#226'mmm'#19#217#217#0#9#145#145#145#145#0#149#0#0#0#0#0 - +#9#145#9#9#9#9#149#0#0#0#239#226#226#226#226#226#226#19#217#0#9#145#0#145#145 - +#145#149#0#239#0#0#0#9#145#9#9#9#9#149#0#0#0#239#226#226#226#226#226#226#226 - +#19#217#0#9#145#145#145#145#0#231#239#0#0#0#0#9#145#145#145#9#0#0#0#0#239#226 - +#226'm'#226'mmmm'#19#217#0#9#9#9#0#226#231#239#0#0#0#0#0#9#9#9#0#0#0#0#0#239 - +#226#226#226#226#226#226#226#226#226#19#226#0#0#0#226#226#231#239#0#0#0#0#0#0 - +#0#0#0#0#0#0#0#239#226#226#226#226#226#226#226#226#226#226#226#226#226#226 - +#226#226#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239#226#226#226#226#226#226#226 - +#226#226#226#226#226#226#226#226#226#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239 - +#226#226#226#226#226#226#226#226#226#239#226#226#226#226#226#226#231#239#0#0 - +#0#0#0#0#0#0#0#0#0#0#0#239#226#226#226#226'*'#232#232#226#239#226#226#226#226 - +#226#226#226#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239#226#226#226#226'**'#232 - +#239#232#226#226#226#226#226#226#226#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239 - +#226#226#226#226'*%*'#232#232#232#226#226#226#226#226#226#231#239#0#0#0#0#0#0 - +#0#0#0#0#0#0#0#239#239#239#239'*%%%*'#239#239#239#0#0#0#0#0#0#239#0#0#0#0#0#0 - +#0#0#0#0#0#0#0#0#0#0'*%%%***'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 - +'**%%%*'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'*%%*'#0#0#0#0 - +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'**'#0#0#0#0#0#0#0#0#0#0#0 - +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'*'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 - +#0#0#0#0#0#0#0#0#0#0#255#239#255#254#255#199#255#254#255#131#255#254#0#0#31 + 'TPF0'#9'TMainForm'#8'MainForm'#4'Left'#3#19#1#6'Height'#3'!'#1#3'Top'#3#227#0 + +#5'Width'#3'l'#2#18'HorzScrollBar.Page'#3'k'#2#18'VertScrollBar.Page'#3' '#1 + +#7'Caption'#6#14'ToolPanel demo'#12'ClientHeight'#3'!'#1#11'ClientWidth'#3'l' + +#2#8'Position'#7#15'poDesktopCenter'#17'SessionProperties'#6#21'Width;Height' + +';Left;Top'#8'ShowHint'#9#0#10'TToolPanel'#10'ToolPanel1'#6'Height'#2' '#5'W' + +'idth'#3'l'#2#5'Items'#14#1#6'Action'#7#6'actNew'#7'Visible'#9#4'Left'#3#216 + +#0#6'Height'#2#24#3'Top'#2#4#5'Width'#2'1'#12'DropDownMenu'#7#10'PopupMenu1' + +#11'ShowCaption'#9#11'ButtonStyle'#7#11'tbrDropDown'#0#1#6'Action'#7#9'actCu' + +'stom'#7'Visible'#9#4'Left'#3#128#1#6'Height'#2#24#3'Top'#2#4#5'Width'#2'@' + +#11'ShowCaption'#9#0#1#6'Action'#7#7'actNext'#7'Visible'#9#4'Left'#3#168#0#6 + +'Height'#2#24#3'Top'#2#4#5'Width'#2''''#12'DropDownMenu'#7#10'PopupMenu2'#11 + +'ButtonStyle'#7#16'tbrDropDownExtra'#0#1#6'Action'#7#8'actPrior'#7'Visible'#9 + +#4'Left'#2'p'#6'Height'#2#24#3'Top'#2#4#5'Width'#2'2'#12'DropDownMenu'#7#10 + +'PopupMenu2'#11'ShowCaption'#9#0#1#6'Action'#7#7'actExit'#7'Visible'#9#4'Lef' + +'t'#3#248#1#6'Height'#2#24#3'Top'#2#4#5'Width'#2'.'#11'ShowCaption'#9#0#1#6 + +'Action'#7#10'actSysMenu'#7'Visible'#9#4'Left'#2#8#6'Height'#2#24#3'Top'#2#4 + +#5'Width'#2'?'#12'DropDownMenu'#7#10'PopupMenu1'#11'ShowCaption'#9#11'Button' + +'Style'#7#11'tbrDropDown'#0#1#6'Action'#7#8'sysAbout'#7'Visible'#9#4'Left'#3 + +#192#1#6'Height'#2#24#3'Top'#2#4#5'Width'#2'9'#11'ShowCaption'#9#0#0#9'Image' + +'List'#7#10'ImageList1'#15'PropertyStorage'#7#15'XMLPropStorage1'#8'BtnWidth' + +#2#23#9'BtnHeight'#2#24#12'ToolBarStyle'#7#12'tbsWindowsXP'#7'Options'#11#10 + +'tpFlatBtns'#14'tpCustomizable'#12'tpGlyphPopup'#14'tpCaptionPopup'#0#7'Vers' + +'ion'#2#3#5'Align'#7#5'alTop'#8'AutoSize'#9#11'BorderWidth'#2#4#12'ClientHei' + +'ght'#2' '#11'ClientWidth'#3'l'#2#11'FullRepaint'#8#8'TabOrder'#2#0#0#0#10'T' + +'ImageList'#10'ImageList1'#4'left'#3#168#0#3'top'#2'P'#6'Bitmap'#10#14#28#0#0 + +'Li'#7#0#0#0#16#0#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255 + +#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#128#128#255#0#128#128#255#0#0#0 + +#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0 + +#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#128#128#255 + +#0#128#128#255#0#128#128#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#128#128 + +#255#0#128#128#255#0#128#128#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0 + +#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0 + +#255#0#128#128#255#0#128#128#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0#0#0 + +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#128 + +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#128#128#255#0#128#128#255#0#0#0#0#0#0#0 + +#255#0#0#0#255#0#0#0#255#0#0#0#255#192#192#192#255#0#0#0#255#0#0#0#0#0#0#0 + +#255#0#0#128#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#0#128#128#255#0#0#0#255 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#192#192#192#255#0#0#0#255 + +#0#0#128#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#192#192#192#255#0#0#0 + +#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#128#255#0#0#0#255#192#192#192#255#0#0 + +#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#255#0#0#128#255#0#0#0#255#0#0#0#0#0#0#0#255#192#192#192#255 + +#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#255#0#0#128#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#192#192#192 + +#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0 + +#128#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#192#192 + +#192#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0 + +#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0 + +#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0 + ,#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0 + +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255 + +#255#255#255#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 + +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 + +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#0#0 + +#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 + +#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 + +#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0 + +#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + ,#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0 + +#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 + +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0 + +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#128#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#192#192#192#255#192#192#192#255#192 + +#192#192#255#192#192#192#255#192#192#192#255#192#192#192#255#0#0#0#255#128#0 + +#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#192#192#192 + +#255#0#0#0#255#192#192#192#255#192#192#192#255#192#192#192#255#192#192#192 + +#255#192#192#192#255#192#192#192#255#128#0#0#255#0#0#0#0#0#0#0#255#0#0#0#255 + +#0#0#0#255#0#0#0#255#0#0#0#255#192#192#192#255#0#0#0#255#192#192#192#255#0#0 + +#0#255#192#192#192#255#192#192#192#255#192#192#192#255#192#192#192#255#192 + +#192#192#255#128#0#0#255#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#0 + +#0#0#255#192#192#192#255#0#0#0#255#192#192#192#255#0#0#0#255#192#192#192#255 + +#0#0#0#255#192#192#192#255#192#192#192#255#192#192#192#255#0#0#0#255#128#0#0 + +#255#0#0#0#0#0#0#0#255#255#255#255#255#0#0#0#255#192#192#192#255#0#0#0#255 + +#255#255#255#255#0#0#0#255#192#192#192#255#0#0#0#255#192#192#192#255#0#0#0 + +#255#0#0#0#255#0#0#0#255#0#0#0#0#128#0#0#255#0#0#0#0#0#0#0#255#255#255#255 + +#255#0#0#0#255#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0 + +#0#255#192#192#192#255#0#0#0#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#255 + +#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255 + +#255#128#0#0#255#128#0#0#255#255#255#255#255#128#0#0#255#128#0#0#255#128#0#0 + +#255#128#0#0#255#128#0#0#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#255#255#255#255#255#128#0#0#255#128#0#0#255#255#255#255#255#128#0#0#255#128 + +#0#0#255#128#0#0#255#128#0#0#255#128#0#0#255#255#255#255#255#0#0#0#255#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0 + ,#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 + +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 + +#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#255#0#128#0#255#0#128#0#255#0#128#0#255#0#128#0#255#0#0#0#255 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#255#128#0#0#255#128#0#0#255#128#0#0#255 + +#128#0#0#255#128#0#0#255#128#0#0#255#128#0#0#255#128#0#0#255#128#0#0#255#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#255#255#0#0#255#128#0#0 + +#255#255#0#0#255#0#0#0#255#255#255#0#255#255#255#255#255#255#255#0#255#255 + +#255#255#255#128#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128 + +#0#0#255#128#0#0#255#255#0#0#255#128#0#0#255#0#0#0#255#255#255#255#255#255 + +#255#0#255#255#255#255#255#255#255#0#255#128#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#255#255#0#0#255#128#0#0#255#255#0#0#255#0#0 + +#0#255#255#255#0#255#255#255#255#255#255#255#0#255#255#255#255#255#128#0#0 + +#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#255#128#0#0#255 + +#255#0#0#255#128#0#0#255#0#0#0#255#255#255#255#255#255#255#0#255#255#255#255 + +#255#255#255#0#255#128#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#128#0#0#255#255#0#0#255#128#0#0#255#255#0#0#255#0#0#0#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#255#255#255#255#128#0#0#255#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#255#128#0#0#255#255#0#0#255#128#0#0 + +#255#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#128#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#255 + +#255#0#0#255#128#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#255#255#255#255 + +#255#255#255#255#255#255#255#255#128#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0 + +#255#128#0#0#255#128#0#0#255#128#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255 + +#128#128#128#255#128#128#128#255#255#255#255#255#255#255#255#255#255#255#255 + +#255#128#0#0#255#128#0#0#255#128#0#0#255#128#0#0#255#128#128#128#255#128#128 + +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 + +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 + +#255#255#255#255#128#128#128#255#255#255#255#255#128#128#128#255#128#128#128 + +#255#128#128#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 + +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 + +#128#128#255#255#255#255#255#192#192#192#255#128#128#128#255#192#192#192#255 + +#255#255#255#255#128#128#128#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 + +#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#255#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0 + +#255#255#255#0#255#255#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#255#0#255#255#255#0#255#255#255#0#0#0#255#0#0#0#255 + +#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#0#0#0#255#0#255#255#255 + +#0#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0#0#0#255#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#0#0#255#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#0 + +#0#0#0#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 + +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#255 + +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0#0#255#0#255#255#255#0 + +#255#255#255#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + ,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#0#255#255#255#0#255 + +#255#255#0#0#0#0#0#0#0#0#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255 + +#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#0#0#0#255 + +#0#0#0#255#0#0#0#255#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0 + +#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#255#255#255#0#255#255#255#0#255 + +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 + +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 + +#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255 + +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#0#0 + +#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#11'TActionList'#11'ActionList1'#6'Images' + +#7#10'ImageList1'#4'left'#3#216#0#3'top'#2'('#0#7'TAction'#6'actNew'#7'Capti' + +'on'#6#3'New'#18'DisableIfNoHandler'#9#4'Hint'#6#10'Action N 1'#10'ImageInde' + +'x'#2#3#0#0#7'TAction'#7'actNext'#7'Caption'#6#4'Next'#18'DisableIfNoHandler' + +#9#4'Hint'#6#10'Action N 2'#10'ImageIndex'#2#2#9'OnExecute'#7#14'Action1Exec' + +'ute'#0#0#7'TAction'#8'actPrior'#7'Caption'#6#5'Prior'#18'DisableIfNoHandler' + +#9#4'Hint'#6#12'Prior action'#10'ImageIndex'#2#1#9'OnExecute'#7#14'Action1Ex' + +'ecute'#0#0#7'TAction'#9'actCustom'#7'Caption'#6#6'Custom'#18'DisableIfNoHan' + +'dler'#9#4'Hint'#6#17'Customize toolbar'#10'ImageIndex'#2#0#9'OnExecute'#7#16 + +'actCustomExecute'#0#0#7'TAction'#7'actExit'#7'Caption'#6#4'Exit'#18'Disable' + +'IfNoHandler'#9#4'Hint'#6#26'exit from demo application'#10'ImageIndex'#2#5#9 + +'OnExecute'#7#14'actExitExecute'#8'ShortCut'#4'X'#128#0#0#0#0#7'TAction'#10 + +'actSysMenu'#3'Tag'#2#4#7'Caption'#6#6'System'#18'DisableIfNoHandler'#9#10'I' + +'mageIndex'#2#4#0#0#7'TAction'#8'sysAbout'#8'Category'#6#6'System'#7'Caption' + +#6#5'About'#18'DisableIfNoHandler'#9#10'ImageIndex'#2#6#9'OnExecute'#7#15'sy' + +'sAboutExecute'#0#0#0#15'TXMLPropStorage'#15'XMLPropStorage1'#12'StoredValue' + +'s'#14#0#8'FileName'#6#15'toolbardemo.cfg'#4'left'#3#216#0#3'top'#2'X'#0#0#10 + +'TPopupMenu'#10'PopupMenu1'#4'left'#2#16#3'top'#2'('#0#9'TMenuItem'#9'MenuIt' + +'em1'#6'Action'#7#6'actNew'#7'OnClick'#7#14'Action1Execute'#0#0#9'TMenuItem' + +#9'MenuItem2'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#7 + +'actNext'#7'OnClick'#7#14'Action1Execute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Ac' + +'tion'#7#8'actPrior'#7'OnClick'#7#14'Action1Execute'#0#0#9'TMenuItem'#9'Menu' + +'Item8'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#9'actCus' + +'tom'#7'OnClick'#7#16'actCustomExecute'#0#0#9'TMenuItem'#9'MenuItem7'#6'Acti' + +'on'#7#8'sysAbout'#7'OnClick'#7#15'sysAboutExecute'#0#0#9'TMenuItem'#9'MenuI' + +'tem6'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem5'#6'Action'#7#7'actExit' + +#7'OnClick'#7#14'actExitExecute'#0#0#0#10'TRxAppIcon'#10'RxAppIcon1'#4'left' + +#3#216#0#3'top'#3#128#0#4'Data'#10#190#8#0#0#0#0#1#0#1#0' '#0#0#1#0#8#0#168 + +#8#0#0#22#0#0#0'('#0#0#0' '#0#0#0'@'#0#0#0#1#0#8#0#0#0#0#0#128#4#0#0#0#0#0#0 + +#0#0#0#0#0#1#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0 + +#128#0#128#0#128#128#0#0#192#192#192#0#192#220#192#0#240#202#166#0#212#240 + +#255#0#177#226#255#0#142#212#255#0'k'#198#255#0'H'#184#255#0'%'#170#255#0#0 + +#170#255#0#0#146#220#0#0'z'#185#0#0'b'#150#0#0'Js'#0#0'2P'#0#212#227#255#0 + +#177#199#255#0#142#171#255#0'k'#143#255#0'Hs'#255#0'%W'#255#0#0'U'#255#0#0'I' + +#220#0#0'='#185#0#0'1'#150#0#0'%s'#0#0#25'P'#0#212#212#255#0#177#177#255#0 + +#142#142#255#0'kk'#255#0'HH'#255#0'%%'#255#0#0#0#254#0#0#0#220#0#0#0#185#0#0 + +#0#150#0#0#0's'#0#0#0'P'#0#227#212#255#0#199#177#255#0#171#142#255#0#143'k' + +#255#0'sH'#255#0'W%'#255#0'U'#0#255#0'I'#0#220#0'='#0#185#0'1'#0#150#0'%'#0 + +'s'#0#25#0'P'#0#240#212#255#0#226#177#255#0#212#142#255#0#198'k'#255#0#184'H' + +#255#0#170'%'#255#0#170#0#255#0#146#0#220#0'z'#0#185#0'b'#0#150#0'J'#0's'#0 + +'2'#0'P'#0#255#212#255#0#255#177#255#0#255#142#255#0#255'k'#255#0#255'H'#255 + +#0#255'%'#255#0#254#0#254#0#220#0#220#0#185#0#185#0#150#0#150#0's'#0's'#0'P' + +#0'P'#0#255#212#240#0#255#177#226#0#255#142#212#0#255'k'#198#0#255'H'#184#0 + +#255'%'#170#0#255#0#170#0#220#0#146#0#185#0'z'#0#150#0'b'#0's'#0'J'#0'P'#0'2' + +#0#255#212#227#0#255#177#199#0#255#142#171#0#255'k'#143#0#255'Hs'#0#255'%W'#0 + +#255#0'U'#0#220#0'I'#0#185#0'='#0#150#0'1'#0's'#0'%'#0'P'#0#25#0#255#212#212 + +#0#255#177#177#0#255#142#142#0#255'kk'#0#255'HH'#0#255'%%'#0#254#0#0#0#220#0 + +#0#0#185#0#0#0#150#0#0#0's'#0#0#0'P'#0#0#0#255#227#212#0#255#199#177#0#255 + +#171#142#0#255#143'k'#0#255'sH'#0#255'W%'#0#255'U'#0#0#220'I'#0#0#185'='#0#0 + +#150'1'#0#0's%'#0#0'P'#25#0#0#255#240#212#0#255#226#177#0#255#212#142#0#255 + +#198'k'#0#255#184'H'#0#255#170'%'#0#255#170#0#0#220#146#0#0#185'z'#0#0#150'b' + ,#0#0'sJ'#0#0'P2'#0#0#255#255#212#0#255#255#177#0#255#255#142#0#255#255'k'#0 + +#255#255'H'#0#255#255'%'#0#254#254#0#0#220#220#0#0#185#185#0#0#150#150#0#0's' + +'s'#0#0'PP'#0#0#240#255#212#0#226#255#177#0#212#255#142#0#198#255'k'#0#184 + +#255'H'#0#170#255'%'#0#170#255#0#0#146#220#0#0'z'#185#0#0'b'#150#0#0'Js'#0#0 + +'2P'#0#0#227#255#212#0#199#255#177#0#171#255#142#0#143#255'k'#0's'#255'H'#0 + +'W'#255'%'#0'U'#255#0#0'I'#220#0#0'='#185#0#0'1'#150#0#0'%s'#0#0#25'P'#0#0 + +#212#255#212#0#177#255#177#0#142#255#142#0'k'#255'k'#0'H'#255'H'#0'%'#255'%' + +#0#0#254#0#0#0#220#0#0#0#185#0#0#0#150#0#0#0's'#0#0#0'P'#0#0#212#255#227#0 + +#177#255#199#0#142#255#171#0'k'#255#143#0'H'#255's'#0'%'#255'W'#0#0#255'U'#0 + +#0#220'I'#0#0#185'='#0#0#150'1'#0#0's%'#0#0'P'#25#0#212#255#240#0#177#255#226 + +#0#142#255#212#0'k'#255#198#0'H'#255#184#0'%'#255#170#0#0#255#170#0#0#220#146 + +#0#0#185'z'#0#0#150'b'#0#0'sJ'#0#0'P2'#0#212#255#255#0#177#255#255#0#142#255 + +#255#0'k'#255#255#0'H'#255#255#0'%'#255#255#0#0#254#254#0#0#220#220#0#0#185 + +#185#0#0#150#150#0#0'ss'#0#0'PP'#0#242#242#242#0#230#230#230#0#218#218#218#0 + +#206#206#206#0#194#194#194#0#182#182#182#0#170#170#170#0#158#158#158#0#146 + +#146#146#0#134#134#134#0'zzz'#0'nnn'#0'bbb'#0'VVV'#0'JJJ'#0'>>>'#0'222'#0'&&' + +'&'#0#26#26#26#0#14#14#14#0#240#251#255#0#164#160#160#0#128#128#128#0#0#0#255 + +#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0#0#0 + +#0#0#0#0#0#0#0#0#0#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#19#217#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#19#217 + +#217#217#19#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#239#239#239#239#239#239#239 + +#239#19#217#217#217#217#217#19#239#239#239#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239 + +#231#231#231#231#231#232#19#217#217#217#217'r'#217#217#19#231#231#239#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#239#226#226#228#232#232#19#217#217'r'#217#217#217'r'#217 + +#217#19#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239#226#228#231#232#19#217#217#217 + +#217'r'#217#217#217'r'#217#217#19#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239#228#231 + +#232#19#217#217#217#217#217#217#217#217#217#217'r'#217#217#19#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#239#226#228#19#217#217#217#217'r'#217#217#217'r'#217#217#217'r' + +#217#217#19#0#0#0#0#0#0#0#0#0#0#0#0#239#226#19#217#217'r'#217#217#217'r'#217 + +#217#217'r'#217#217#217'r'#217#217#19#0#0#0#0#0#0#0#0#0#0#0#239#19#217#217 + +#217#217'r'#217#217#217'r'#217#217#217#217#217#217#217#217#19#0#0#0#0#0#0#0#0 + +#0#0#0#0#239#226#19#217#217#217#217'r'#217#217#217#217#0#0#0#217#217#217#19#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#239#226#226#19#217#217#217#217'r'#217#217#0#149#149 + +#149#0#217#19#239#0#0#0#0#0#149#149#149#0#0#0#0#0#239#226#226#226#19#217#217 + +#217#217#217#0#145#145#0#145#149#0#232#239#0#0#0#0#9#9#9#9#149#0#0#0#0#239 + +#226#226#226#226#19#217#217#217#0#9#145#145#145#0#145#149#0#239#0#0#0#9#145#9 + +#9#9#9#149#0#0#0#239#226#226'mmm'#19#217#217#0#9#145#145#145#145#0#149#0#0#0 + +#0#0#9#145#9#9#9#9#149#0#0#0#239#226#226#226#226#226#226#19#217#0#9#145#0#145 + +#145#145#149#0#239#0#0#0#9#145#9#9#9#9#149#0#0#0#239#226#226#226#226#226#226 + +#226#19#217#0#9#145#145#145#145#0#231#239#0#0#0#0#9#145#145#145#9#0#0#0#0#239 + +#226#226'm'#226'mmmm'#19#217#0#9#9#9#0#226#231#239#0#0#0#0#0#9#9#9#0#0#0#0#0 + +#239#226#226#226#226#226#226#226#226#226#19#226#0#0#0#226#226#231#239#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#239#226#226#226#226#226#226#226#226#226#226#226#226#226 + +#226#226#226#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239#226#226#226#226#226#226 + +#226#226#226#226#226#226#226#226#226#226#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#239#226#226#226#226#226#226#226#226#226#239#226#226#226#226#226#226#231#239 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#239#226#226#226#226'*'#232#232#226#239#226#226#226 + +#226#226#226#226#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0#239#226#226#226#226'**' + +#232#239#232#226#226#226#226#226#226#226#231#239#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#239#226#226#226#226'*%*'#232#232#232#226#226#226#226#226#226#231#239#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#239#239#239#239'*%%%*'#239#239#239#0#0#0#0#0#0#239#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0'*%%%***'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0'**%%%*'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'*%%*'#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'**'#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'*'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 + +#0#0#0#0#0#0#0#0#0#0#0#255#239#255#254#255#199#255#254#255#131#255#254#0#0#31 +#254#0#0#31#254#0#0#31#254#0#0#31#254#0#0#31#254#0#0#15#254#0#0#7#254#0#0#15 +#254#0#0#31#30#0#0#30#14#0#0#28#6#0#0#24#2#0#0#16#0#0#0#8#3#0#0#28#7#0#0#30 +#15#0#0#31#31#0#0#31#255#0#0#31#255#0#0#31#255#0#0#31#255#0#0#31#255#0#0#31 +#255#0#0#31#255#224'?'#255#255#129#255#255#255#195#255#255#255#231#255#255 - +#255#247#255#255#255#0#0#0 + +#255#247#255#255#255#0#0#10'TPopupMenu'#10'PopupMenu2'#6'Images'#7#10'ImageL' + +'ist1'#4'left'#3#168#0#3'top'#2'('#0#9'TMenuItem'#10'MenuItem10'#7'Caption'#6 + +#6'Item 1'#0#0#9'TMenuItem'#10'MenuItem11'#7'Caption'#6#6'Item 2'#0#0#9'TMen' + +'uItem'#10'MenuItem12'#7'Caption'#6#6'Item 3'#0#0#9'TMenuItem'#10'MenuItem13' + ,#7'Caption'#6#6'Item 4'#0#0#0#0 ]); diff --git a/components/rx/Demos/ToolPanel/unit1.pas b/components/rx/Demos/ToolPanel/unit1.pas index 0d58043b5..5e62c398f 100644 --- a/components/rx/Demos/ToolPanel/unit1.pas +++ b/components/rx/Demos/ToolPanel/unit1.pas @@ -16,8 +16,13 @@ type TMainForm = class(TForm) actExit: TAction; actSysMenu: TAction; + MenuItem10: TMenuItem; + MenuItem11: TMenuItem; + MenuItem12: TMenuItem; + MenuItem13: TMenuItem; MenuItem6: TMenuItem; MenuItem7: TMenuItem; + PopupMenu2: TPopupMenu; sysAbout: TAction; actNew: TAction; actNext: TAction; diff --git a/components/rx/docs/WhatsNew.eng.txt b/components/rx/docs/WhatsNew.eng.txt index ebedd8792..5540b5e3c 100644 --- a/components/rx/docs/WhatsNew.eng.txt +++ b/components/rx/docs/WhatsNew.eng.txt @@ -1,3 +1,11 @@ +29.08.2007 - ўҐабЁп 1.1.5.98 (svn revision 39) + + In RxDBgrid - after close dataset list of SelectedRows is cleared + + fix resaizing find form for RxDbGrd + + compile in latest Lazarus + + in TToolbarButton stile tbrSeparator and tbrDivider as Delphi + tbrSeparator - separator with line + tbrDivider - empty separator + + in TToolbarButton new style tbrDropDownExtra - button with dropdown menu. 12.08.2007 - version 1.1.4.93 + in TRxDBComboBox publishe any property + in TRxDBLookupCombo add event OnGetGridCellProps diff --git a/components/rx/docs/WhatsNew.rus.txt b/components/rx/docs/WhatsNew.rus.txt index 5e28eb1a1..111720dcf 100644 --- a/components/rx/docs/WhatsNew.rus.txt +++ b/components/rx/docs/WhatsNew.rus.txt @@ -1,3 +1,14 @@ +29.08.2007 - версия 1.1.5.98 (svn revision 39) + + В RxDBGrid После закрытия набора данных список помеченных строк (SelectedRows) + очищается + + Улучшено масштабирование формы поиска по RxDbGrd + + Компиляция в последнем Lazarus + + TToolbarButton различает теперь стили tbrSeparator и tbrDivider + tbrSeparator - разделитьль с чертой + tbrDivider - пустой разделитель + + TToolbarButton новый стиль tbrDropDownExtra - кнопка с выпадающим меню. + В отличии от tbrDropDown это работает как кнопка + если нажата крайня правая область - то + тогда появляется меню. (интерфейс ещё коряв - надо будет доработать в дальнейшем) 12.08.2007 - версия 1.1.4.93 + В TRxDBComboBox опубликованы недостающие поля + В TRxDBLookupCombo добавлено обработчик OnGetGridCellProps diff --git a/components/rx/rxdbgrid.pas b/components/rx/rxdbgrid.pas index f4175ffbb..8cd5c7147 100644 --- a/components/rx/rxdbgrid.pas +++ b/components/rx/rxdbgrid.pas @@ -1085,7 +1085,11 @@ begin FSortEngine:=nil; end else + begin FSortEngine:=nil; + if SelectedRows.Count>0 then + SelectedRows.Clear; + end; FSortField:=nil; FSortOrder:=smNone; end; diff --git a/components/rx/rxdbgrid_findunit.lfm b/components/rx/rxdbgrid_findunit.lfm index b1ac0dff3..d44b49974 100644 --- a/components/rx/rxdbgrid_findunit.lfm +++ b/components/rx/rxdbgrid_findunit.lfm @@ -1,82 +1,103 @@ object rxDBGridFindForm: TrxDBGridFindForm Left = 436 - Height = 99 + Height = 127 Top = 423 - Width = 434 - HorzScrollBar.Page = 433 - VertScrollBar.Page = 98 + Width = 493 + HorzScrollBar.Page = 492 + VertScrollBar.Page = 126 ActiveControl = BtnFind Caption = 'Find' - ClientHeight = 99 - ClientWidth = 434 + ClientHeight = 127 + ClientWidth = 493 + OnActivate = FormActivate OnShow = FormShow - PixelsPerInch = 96 object Label1: TLabel + AnchorSideBottom.Control = Edit1 + AnchorSideBottom.Side = asrBottom Left = 6 - Height = 14 - Top = 19 - Width = 57 + Height = 13 + Top = 17 + Width = 62 + Anchors = [akLeft, akBottom] Caption = 'Text to find' - Color = clNone FocusControl = Edit1 ParentColor = False end object Label2: TLabel - Left = 8 - Height = 14 - Top = 48 - Width = 57 + AnchorSideLeft.Control = Label1 + AnchorSideBottom.Control = ComboBox1 + AnchorSideBottom.Side = asrBottom + Left = 6 + Height = 13 + Top = 51 + Width = 67 + Anchors = [akLeft, akBottom] Caption = 'Find at filed' - Color = clNone ParentColor = False end object BtnFind: TButton - Left = 346 - Height = 25 + Left = 408 + Height = 38 Top = 8 - Width = 83 + Width = 80 Anchors = [akTop, akRight] - BorderSpacing.InnerBorder = 2 Caption = 'Find more' Default = True OnClick = BtnFindClick TabOrder = 4 end object Button2: TButton - Left = 346 - Height = 25 - Top = 41 - Width = 83 + AnchorSideTop.Control = BtnFind + AnchorSideTop.Side = asrBottom + Left = 408 + Height = 34 + Top = 54 + Width = 80 Anchors = [akTop, akRight] - BorderSpacing.InnerBorder = 2 + BorderSpacing.Top = 8 Cancel = True Caption = 'Close' OnClick = Button2Click TabOrder = 5 end object Edit1: TEdit - Left = 80 - Height = 23 + AnchorSideLeft.Control = ComboBox1 + Left = 81 + Height = 22 Top = 8 - Width = 258 + Width = 316 Anchors = [akTop, akLeft, akRight] + AutoSize = True TabOrder = 0 end object ComboBox1: TComboBox - Left = 80 - Height = 21 - Top = 36 - Width = 256 + AnchorSideLeft.Control = Label2 + AnchorSideLeft.Side = asrBottom + AnchorSideTop.Control = Edit1 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Edit1 + AnchorSideRight.Side = asrBottom + Left = 81 + Height = 26 + Top = 38 + Width = 316 + Anchors = [akTop, akLeft, akRight] AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] + BorderSpacing.Left = 8 + BorderSpacing.Top = 8 MaxLength = 0 Style = csDropDownList TabOrder = 1 end object CheckBox1: TCheckBox - Left = 8 - Height = 13 + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = ComboBox1 + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 20 Top = 72 - Width = 92 + Width = 113 + BorderSpacing.Top = 8 Caption = 'Case sensetive' TabOrder = 2 end @@ -95,6 +116,8 @@ object rxDBGridFindForm: TrxDBGridFindForm ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.ControlsPerLine = 1 + ClientHeight = 59 + ClientWidth = 146 Items.Strings = ( 'All' 'Forward' @@ -104,10 +127,14 @@ object rxDBGridFindForm: TrxDBGridFindForm Visible = False end object CheckBox2: TCheckBox - Left = 128 - Height = 13 - Top = 70 - Width = 69 + AnchorSideLeft.Control = Label1 + AnchorSideTop.Control = CheckBox1 + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 20 + Top = 100 + Width = 86 + BorderSpacing.Top = 8 Caption = 'Partial key' TabOrder = 3 end diff --git a/components/rx/rxdbgrid_findunit.lrs b/components/rx/rxdbgrid_findunit.lrs index b0059a156..1d04dfac7 100644 --- a/components/rx/rxdbgrid_findunit.lrs +++ b/components/rx/rxdbgrid_findunit.lrs @@ -2,35 +2,48 @@ LazarusResources.Add('TrxDBGridFindForm','FORMDATA',[ 'TPF0'#17'TrxDBGridFindForm'#16'rxDBGridFindForm'#4'Left'#3#180#1#6'Height'#2 - +'c'#3'Top'#3#167#1#5'Width'#3#178#1#18'HorzScrollBar.Page'#3#177#1#18'VertSc' - +'rollBar.Page'#2'b'#13'ActiveControl'#7#7'BtnFind'#7'Caption'#6#4'Find'#12'C' - +'lientHeight'#2'c'#11'ClientWidth'#3#178#1#6'OnShow'#7#8'FormShow'#13'Pixels' - +'PerInch'#2'`'#0#6'TLabel'#6'Label1'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#19#5 - +'Width'#2'9'#7'Caption'#6#12'Text to find'#5'Color'#7#6'clNone'#12'FocusCont' - +'rol'#7#5'Edit1'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Hei' - +'ght'#2#14#3'Top'#2'0'#5'Width'#2'9'#7'Caption'#6#13'Find at filed'#5'Color' - +#7#6'clNone'#11'ParentColor'#8#0#0#7'TButton'#7'BtnFind'#4'Left'#3'Z'#1#6'He' - +'ight'#2#25#3'Top'#2#8#5'Width'#2'S'#7'Anchors'#11#5'akTop'#7'akRight'#0#25 - +'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#9'Find more'#7'Default'#9#7'OnC' - +'lick'#7#12'BtnFindClick'#8'TabOrder'#2#4#0#0#7'TButton'#7'Button2'#4'Left'#3 - +'Z'#1#6'Height'#2#25#3'Top'#2')'#5'Width'#2'S'#7'Anchors'#11#5'akTop'#7'akRi' - +'ght'#0#25'BorderSpacing.InnerBorder'#2#2#6'Cancel'#9#7'Caption'#6#5'Close'#7 - +'OnClick'#7#12'Button2Click'#8'TabOrder'#2#5#0#0#5'TEdit'#5'Edit1'#4'Left'#2 - +'P'#6'Height'#2#23#3'Top'#2#8#5'Width'#3#2#1#7'Anchors'#11#5'akTop'#6'akLeft' - +#7'akRight'#0#8'TabOrder'#2#0#0#0#9'TComboBox'#9'ComboBox1'#4'Left'#2'P'#6'H' - +'eight'#2#21#3'Top'#2'$'#5'Width'#3#0#1#16'AutoCompleteText'#11#22'cbactEndO' - +'fLineComplete'#20'cbactSearchAscending'#0#9'MaxLength'#2#0#5'Style'#7#14'cs' - +'DropDownList'#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckBox1'#4'Left'#2#8#6'H' - +'eight'#2#13#3'Top'#2'H'#5'Width'#2'\'#7'Caption'#6#14'Case sensetive'#8'Tab' - +'Order'#2#2#0#0#11'TRadioGroup'#11'RadioGroup1'#4'Left'#3#232#0#6'Height'#2 - +'L'#3'Top'#2'H'#5'Width'#3#150#0#8'AutoFill'#9#7'Caption'#6#9'Direction'#28 - +'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'C' - +'hildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing' - +'.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHoriz' - +'ontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChi' - +'lds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSiz' - +'ing.ControlsPerLine'#2#1#13'Items.Strings'#1#6#3'All'#6#7'Forward'#6#8'Back' - +'ward'#0#8'TabOrder'#2#6#7'Visible'#8#0#0#9'TCheckBox'#9'CheckBox2'#4'Left'#3 - +#128#0#6'Height'#2#13#3'Top'#2'F'#5'Width'#2'E'#7'Caption'#6#11'Partial key' - +#8'TabOrder'#2#3#0#0#0 + +''#3'Top'#3#167#1#5'Width'#3#237#1#18'HorzScrollBar.Page'#3#236#1#18'VertSc' + +'rollBar.Page'#2'~'#13'ActiveControl'#7#7'BtnFind'#7'Caption'#6#4'Find'#12'C' + +'lientHeight'#2''#11'ClientWidth'#3#237#1#10'OnActivate'#7#12'FormActivate' + +#6'OnShow'#7#8'FormShow'#0#6'TLabel'#6'Label1'#24'AnchorSideBottom.Control'#7 + +#5'Edit1'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2#13 + +#3'Top'#2#17#5'Width'#2'>'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7'Caption'#6 + +#12'Text to find'#12'FocusControl'#7#5'Edit1'#11'ParentColor'#8#0#0#6'TLabel' + +#6'Label2'#22'AnchorSideLeft.Control'#7#6'Label1'#24'AnchorSideBottom.Contro' + +'l'#7#9'ComboBox1'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'He' + +'ight'#2#13#3'Top'#2'3'#5'Width'#2'C'#7'Anchors'#11#6'akLeft'#8'akBottom'#0#7 + +'Caption'#6#13'Find at filed'#11'ParentColor'#8#0#0#7'TButton'#7'BtnFind'#4 + +'Left'#3#152#1#6'Height'#2'&'#3'Top'#2#8#5'Width'#2'P'#7'Anchors'#11#5'akTop' + +#7'akRight'#0#7'Caption'#6#9'Find more'#7'Default'#9#7'OnClick'#7#12'BtnFind' + +'Click'#8'TabOrder'#2#4#0#0#7'TButton'#7'Button2'#21'AnchorSideTop.Control'#7 + +#7'BtnFind'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#3#152#1#6'Height'#2 + +'"'#3'Top'#2'6'#5'Width'#2'P'#7'Anchors'#11#5'akTop'#7'akRight'#0#17'BorderS' + +'pacing.Top'#2#8#6'Cancel'#9#7'Caption'#6#5'Close'#7'OnClick'#7#12'Button2Cl' + +'ick'#8'TabOrder'#2#5#0#0#5'TEdit'#5'Edit1'#22'AnchorSideLeft.Control'#7#9'C' + +'omboBox1'#4'Left'#2'Q'#6'Height'#2#22#3'Top'#2#8#5'Width'#3'<'#1#7'Anchors' + +#11#5'akTop'#6'akLeft'#7'akRight'#0#8'AutoSize'#9#8'TabOrder'#2#0#0#0#9'TCom' + +'boBox'#9'ComboBox1'#22'AnchorSideLeft.Control'#7#6'Label2'#19'AnchorSideLef' + +'t.Side'#7#9'asrBottom'#21'AnchorSideTop.Control'#7#5'Edit1'#18'AnchorSideTo' + +'p.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#5'Edit1'#20'AnchorSide' + +'Right.Side'#7#9'asrBottom'#4'Left'#2'Q'#6'Height'#2#26#3'Top'#2'&'#5'Width' + +#3'<'#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#16'AutoCompleteText'#11 + +#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#18'BorderSpacing.Left' + +#2#8#17'BorderSpacing.Top'#2#8#9'MaxLength'#2#0#5'Style'#7#14'csDropDownList' + +#8'TabOrder'#2#1#0#0#9'TCheckBox'#9'CheckBox1'#22'AnchorSideLeft.Control'#7#6 + +'Label1'#21'AnchorSideTop.Control'#7#9'ComboBox1'#18'AnchorSideTop.Side'#7#9 + +'asrBottom'#4'Left'#2#6#6'Height'#2#20#3'Top'#2'H'#5'Width'#2'q'#17'BorderSp' + +'acing.Top'#2#8#7'Caption'#6#14'Case sensetive'#8'TabOrder'#2#2#0#0#11'TRadi' + +'oGroup'#11'RadioGroup1'#4'Left'#3#232#0#6'Height'#2'L'#3'Top'#2'H'#5'Width' + +#3#150#0#8'AutoFill'#9#7'Caption'#6#9'Direction'#28'ChildSizing.LeftRightSpa' + +'cing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizo' + +'ntal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'c' + +'rsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChil' + +'ds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layo' + +'ut'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1 + +#12'ClientHeight'#2';'#11'ClientWidth'#3#146#0#13'Items.Strings'#1#6#3'All'#6 + +#7'Forward'#6#8'Backward'#0#8'TabOrder'#2#6#7'Visible'#8#0#0#9'TCheckBox'#9 + +'CheckBox2'#22'AnchorSideLeft.Control'#7#6'Label1'#21'AnchorSideTop.Control' + +#7#9'CheckBox1'#18'AnchorSideTop.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2 + +#20#3'Top'#2'd'#5'Width'#2'V'#17'BorderSpacing.Top'#2#8#7'Caption'#6#11'Part' + +'ial key'#8'TabOrder'#2#3#0#0#0 ]); diff --git a/components/rx/rxdbgrid_findunit.pas b/components/rx/rxdbgrid_findunit.pas index cb2e67da2..49f24a757 100644 --- a/components/rx/rxdbgrid_findunit.pas +++ b/components/rx/rxdbgrid_findunit.pas @@ -24,6 +24,7 @@ type RadioGroup1: TRadioGroup; procedure BtnFindClick(Sender: TObject); procedure Button2Click(Sender: TObject); + procedure FormActivate(Sender: TObject); procedure FormShow(Sender: TObject); private FGrid:TRxDBGrid; @@ -55,6 +56,12 @@ begin Close; end; +procedure TrxDBGridFindForm.FormActivate(Sender: TObject); +begin +{ BtnFind.Height:=Canvas.TextHeight('W') + 6; + Button2.Height:=BtnFind.Height;} +end; + procedure TrxDBGridFindForm.FormShow(Sender: TObject); begin Edit1.SetFocus; diff --git a/components/rx/rxlookup.pas b/components/rx/rxlookup.pas index bf7fde5b1..366f4127d 100644 --- a/components/rx/rxlookup.pas +++ b/components/rx/rxlookup.pas @@ -294,15 +294,9 @@ type property LookupSource; end; -function CreateArrowBitmap:TBitmap; implementation uses VCLUtils, Math; -function CreateArrowBitmap:TBitmap; -begin - Result:=Graphics.TBitmap.Create; - Result.LoadFromLazarusResource('rxbtn_downarrow'); -end; { TCustomDBLookupEdit } diff --git a/components/rx/rxnew.lpk b/components/rx/rxnew.lpk index 37d623734..5f75e1d0c 100644 --- a/components/rx/rxnew.lpk +++ b/components/rx/rxnew.lpk @@ -23,7 +23,7 @@ translate to Lazarus by alexs in 2005 - 2007 "/> - + @@ -182,17 +182,17 @@ translate to Lazarus by alexs in 2005 - 2007 - - - - - - - - - + + + + + + + + + diff --git a/components/rx/rxtoolbar.pas b/components/rx/rxtoolbar.pas index 95078815b..1b933f0e1 100644 --- a/components/rx/rxtoolbar.pas +++ b/components/rx/rxtoolbar.pas @@ -6,16 +6,19 @@ interface uses Classes, SysUtils, LCLType, LCLIntf, Buttons, Controls, ExtCtrls, ActnList, - PropertyStorage, Menus, Forms, types; + PropertyStorage, Menus, Forms, types, Graphics; const DefButtonWidth = 24; DefButtonHeight = 23; - +const + DropDownExtraBtnWidth = 15; + type TToolPanel = class; TToolbarItem = class; - TToolbarButtonStyle = (tbrButton, tbrCheck, tbrDropDown, tbrSeparator, tbrDivider); + TToolbarButtonStyle = (tbrButton, tbrCheck, tbrDropDown, tbrSeparator, + tbrDivider, tbrDropDownExtra); TToolBarStyle = (tbsStandart, tbsWindowsXP); TToolButtonAllign = (tbaNone, tbaLeft, tbaRignt); @@ -50,6 +53,7 @@ type FLastDrawFlagsA:integer; FAutoSize:boolean; FOwnerItem:TToolbarItem; + FFullPush:boolean; function IsDesignMode:boolean; procedure PaintSeparator; protected @@ -58,6 +62,7 @@ type procedure MouseMove(Shift: TShiftState; X, Y: Integer); override; procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override; + procedure MouseLeave; override; procedure Paint; override; procedure Click; override; procedure UpdateState(InvalidateOnChange: boolean); override; @@ -157,6 +162,7 @@ type FDefButtonHeight:integer; FToolBarStyle: TToolBarStyle; FVersion: Integer; + FArrowBmp:TBitmap; function GetBtnHeight: Integer; function GetBtnWidth: Integer; function GetItems: TToolbarItems; @@ -239,7 +245,7 @@ type end; implementation -uses Math, Graphics, RxTBRSetup, LCLProc, vclutils, Dialogs, typinfo, rxdconst; +uses Math, RxTBRSetup, LCLProc, vclutils, Dialogs, typinfo, rxdconst; const BtnAl2Align:array [TToolButtonAllign] of TAlign = (alNone, alLeft, alRight); @@ -259,14 +265,17 @@ begin PaintRect:=ClientRect; Canvas.Brush.Color := Color; Canvas.FillRect(PaintRect); - X:=Width div 2 - 1; - H:=TToolPanel(Parent).Height; - if X>0 then + if FToolbarButtonStyle = tbrSeparator then begin - Canvas.Pen.Color:=clBtnShadow; - Canvas.Line(X, 1, X, H); - Canvas.Pen.Color:=clWindow; - Canvas.Line(X+1, 1, X+1, H); + X:=Width div 2 - 1; + H:=TToolPanel(Parent).Height; + if X>0 then + begin + Canvas.Pen.Color:=clBtnShadow; + Canvas.Line(X, 1, X, H); + Canvas.Pen.Color:=clWindow; + Canvas.Line(X+1, 1, X+1, H); + end; end; end; @@ -280,7 +289,10 @@ begin FDesignY:=Max(Y-1, 1); end else - inherited MouseDown(Button, Shift, X, Y); + begin + FFullPush:=X < (Width - DropDownExtraBtnWidth - 5); + inherited MouseDown(Button, Shift, X, Y); + end; end; procedure TToolbarButton.MouseMove(Shift: TShiftState; X, Y: Integer); @@ -291,7 +303,10 @@ begin Left:=Max(0, Min(X+Left-FDesignX, Parent.Width - Width)); end else - inherited MouseMove(Shift, X, Y); + begin +// FFullPuch:=(X-Left) < (Width - DropDownExtraBtnWidth); + inherited MouseMove(Shift, X, Y); + end end; procedure TToolbarButton.MouseUp(Button: TMouseButton; Shift: TShiftState; X, @@ -306,9 +321,15 @@ begin inherited MouseUp(Button, Shift, X, Y); end; +procedure TToolbarButton.MouseLeave; +begin + inherited MouseLeave; + FFullPush:=true; +end; + procedure TToolbarButton.Paint; var - PaintRect: TRect; + PaintRect, PaintRect1: TRect; GlyphWidth, GlyphHeight: Integer; Offset, OffsetCap: TPoint; ClientSize, TotalSize, TextSize: TSize; @@ -318,7 +339,7 @@ var SIndex : Longint; TMP : String; begin - if FToolbarButtonStyle = tbrSeparator then + if FToolbarButtonStyle in [tbrSeparator, tbrDivider] then begin PaintSeparator; exit; @@ -345,12 +366,67 @@ begin if FLastDrawFlagsA <> 0 then begin if TToolbarItems(FOwnerItem.Collection).FToolPanel.FToolBarStyle = tbsWindowsXP then - DrawButtonFrameXP(Canvas, PaintRect, (FLastDrawFlagsA and DFCS_PUSHED) <> 0, + begin + + if FToolbarButtonStyle = tbrDropDownExtra then + begin + PaintRect1:=PaintRect; + Dec(PaintRect1.Right, DropDownExtraBtnWidth); + if FFullPush then + begin + DrawButtonFrameXP(Canvas, PaintRect1, (FLastDrawFlagsA and DFCS_PUSHED) <> 0, + (FLastDrawFlagsA and DFCS_FLAT) <> 0); + end + else + DrawButtonFrameXP(Canvas, PaintRect1, false, + (FLastDrawFlagsA and DFCS_FLAT) <> 0); + ; + + PaintRect1:=PaintRect; + PaintRect1.Left:=PaintRect1.Right - DropDownExtraBtnWidth; + DrawButtonFrameXP(Canvas, PaintRect1, (FLastDrawFlagsA and DFCS_PUSHED) <> 0, + (FLastDrawFlagsA and DFCS_FLAT) <> 0); + end + else + DrawButtonFrameXP(Canvas, PaintRect, (FLastDrawFlagsA and DFCS_PUSHED) <> 0, (FLastDrawFlagsA and DFCS_FLAT) <> 0) + end else - DrawButtonFrame(Canvas, PaintRect, (FLastDrawFlagsA and DFCS_PUSHED) <> 0, + begin + if FToolbarButtonStyle = tbrDropDownExtra then + begin + PaintRect1:=PaintRect; + Dec(PaintRect1.Right, DropDownExtraBtnWidth); + + if FFullPush then + begin + DrawButtonFrame(Canvas, PaintRect1, (FLastDrawFlagsA and DFCS_PUSHED) <> 0, (FLastDrawFlagsA and DFCS_FLAT) <> 0); + end + else + begin + DrawButtonFrame(Canvas, PaintRect1, false, + (FLastDrawFlagsA and DFCS_FLAT) <> 0); + end; + + PaintRect1:=PaintRect; + PaintRect1.Left:=PaintRect1.Right - DropDownExtraBtnWidth; + DrawButtonFrame(Canvas, PaintRect1, (FLastDrawFlagsA and DFCS_PUSHED) <> 0, + (FLastDrawFlagsA and DFCS_FLAT) <> 0); + end + else + DrawButtonFrame(Canvas, PaintRect, (FLastDrawFlagsA and DFCS_PUSHED) <> 0, + (FLastDrawFlagsA and DFCS_FLAT) <> 0); + end; end; + + if FToolbarButtonStyle = tbrDropDownExtra then + begin + Canvas.Draw(PaintRect.Right - 10, Height div 2, TToolbarItems(FOwnerItem.Collection).FToolPanel.FArrowBmp); +// FArrowBmp + Dec(PaintRect.Right, DropDownExtraBtnWidth); + end; + GlyphWidth:= FImageList.Width; GlyphHeight:=FImageList.Height; @@ -446,7 +522,7 @@ begin end; if ((FLastDrawFlagsA and DFCS_FLAT) <> 0) and ((FLastDrawFlagsA and DFCS_PUSHED) = 0) - and (tpGlyphPopup in TToolbarItems(FOwnerItem.Collection).FToolPanel.Options)then + and (tpGlyphPopup in TToolbarItems(FOwnerItem.Collection).FToolPanel.Options) and FFullPush then begin // FImageList.Draw(Canvas, Offset.X, Offset.Y, TCustomAction(Action).ImageIndex, false); Dec(Offset.X, 2); @@ -489,6 +565,7 @@ begin OffsetRect(PaintRect, -2, -2); end; Canvas.TextRect(PaintRect, PaintRect.Left, PaintRect.Top, Caption, TXTStyle); + end; end; @@ -507,6 +584,17 @@ begin FDropDownMenu.PopUp(P.X, P.Y); end; end + else + if (FToolbarButtonStyle = tbrDropDownExtra) and (not FFullPush) then + begin + if Assigned(FDropDownMenu) then + begin + P.X:=Width - DropDownExtraBtnWidth; + P.Y:=Height; + P:=ClientToScreen(P); + FDropDownMenu.PopUp(P.X, P.Y); + end; + end else inherited Click; end; @@ -594,7 +682,7 @@ var begin if Assigned(Parent) and not (csLoading in TToolPanel(Parent).ComponentState) then begin - if FToolbarButtonStyle = tbrSeparator then + if FToolbarButtonStyle in [tbrSeparator, tbrDivider] then begin aWidth:=7; if Assigned(FImageList) then @@ -615,6 +703,12 @@ begin ImgH:=TToolPanel(Parent).BtnHeight; ImgW:=TToolPanel(Parent).BtnWidth; end; + + if FToolbarButtonStyle = tbrDropDownExtra then + begin + ImgW:=ImgW + DropDownExtraBtnWidth; + end; + if FShowCaption then begin TextSize:=Canvas.TextExtent(Caption); @@ -966,6 +1060,7 @@ end; constructor TToolPanel.Create(AOwner: TComponent); begin inherited Create(AOwner); + FArrowBmp:=CreateArrowBitmap; AutoSize:=true; FToolbarItems:=TToolbarItems.Create(Self); Align:=alTop; @@ -990,6 +1085,7 @@ begin end; FreeAndNil(FToolbarItems); FreeAndNil(FPropertyStorageLink); + FreeAndNil(FArrowBmp); inherited Destroy; end; @@ -1174,9 +1270,9 @@ end; function TToolbarItem.GetDisplayName: string; begin - if ButtonStyle = tbrSeparator then + if ButtonStyle in [tbrSeparator, tbrDivider] then begin - Result:='Separator' //inherited GetDisplayName; + Result:='Separator' end else if Assigned(Action) then @@ -1203,6 +1299,7 @@ begin FButton.FShowCaption:=false; FButton.FAutoSize:=true; FButton.FOwnerItem:=Self; + FButton.FFullPush:=true; if not (csLoading in TToolbarItems(ACollection).FToolPanel.ComponentState) then FButton.Align:=BtnAl2Align[TToolbarItems(ACollection).FToolPanel.ButtonAllign]; { if TToolbarItems(ACollection).FToolPanel.ButtonAllign = tbaLeft then diff --git a/components/rx/vclutils.pas b/components/rx/vclutils.pas index d13ed191f..589bc89ce 100644 --- a/components/rx/vclutils.pas +++ b/components/rx/vclutils.pas @@ -28,6 +28,7 @@ procedure OutTextXY90(Canvas:TCanvas; X,Y:integer; Text:string; Orientation:TTex function IsForegroundTask: Boolean; function ValidParentForm(Control: TControl): TCustomForm; +function CreateArrowBitmap:TBitmap; { function AllocMemo(Size: Longint): Pointer; function ReallocMemo(fpBlock: Pointer; Size: Longint): Pointer; @@ -508,6 +509,13 @@ begin raise Exception.Create('SOutOfResources'); end; {$ENDIF} + +function CreateArrowBitmap:TBitmap; +begin + Result:=Graphics.TBitmap.Create; + Result.LoadFromLazarusResource('rxbtn_downarrow'); +end; + end.