diff --git a/components/rx/Demos/RxHistoryNavigator/project1.ico b/components/rx/Demos/RxHistoryNavigator/project1.ico new file mode 100644 index 000000000..0341321b5 Binary files /dev/null and b/components/rx/Demos/RxHistoryNavigator/project1.ico differ diff --git a/components/rx/Demos/RxHistoryNavigator/project1.lpi b/components/rx/Demos/RxHistoryNavigator/project1.lpi new file mode 100644 index 000000000..4332c1686 --- /dev/null +++ b/components/rx/Demos/RxHistoryNavigator/project1.lpi @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/rx/Demos/RxHistoryNavigator/project1.lpr b/components/rx/Demos/RxHistoryNavigator/project1.lpr new file mode 100644 index 000000000..2eea9e5ee --- /dev/null +++ b/components/rx/Demos/RxHistoryNavigator/project1.lpr @@ -0,0 +1,21 @@ +program project1; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, // this includes the LCL widgetset + Forms, Unit1, rxnew + { you can add units after this }; + +{$R *.res} + +begin + RequireDerivedFormResource := True; + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/components/rx/Demos/RxHistoryNavigator/project1.lps b/components/rx/Demos/RxHistoryNavigator/project1.lps new file mode 100644 index 000000000..f121fa033 --- /dev/null +++ b/components/rx/Demos/RxHistoryNavigator/project1.lps @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/components/rx/Demos/RxHistoryNavigator/project1.res b/components/rx/Demos/RxHistoryNavigator/project1.res new file mode 100644 index 000000000..7c6cf3e4b Binary files /dev/null and b/components/rx/Demos/RxHistoryNavigator/project1.res differ diff --git a/components/rx/Demos/RxHistoryNavigator/unit1.lfm b/components/rx/Demos/RxHistoryNavigator/unit1.lfm new file mode 100644 index 000000000..f8663f511 --- /dev/null +++ b/components/rx/Demos/RxHistoryNavigator/unit1.lfm @@ -0,0 +1,387 @@ +object Form1: TForm1 + Left = 484 + Height = 397 + Top = 317 + Width = 552 + Caption = 'Find form' + ClientHeight = 397 + ClientWidth = 552 + Position = poScreenCenter + ShowHint = True + LCLVersion = '0.9.31' + object ToolPanel1: TToolPanel + Left = 0 + Height = 34 + Top = 0 + Width = 552 + Items = < + item + Action = actExit + Visible = True + Left = 5 + Height = 24 + Top = 5 + Width = 53 + ShowCaption = True + end + item + Visible = True + Left = 58 + Height = 24 + Top = 5 + Width = 7 + ShowCaption = False + ButtonStyle = tbrSeparator + end + item + Action = actBack + Visible = True + Left = 65 + Height = 24 + Top = 5 + Width = 76 + ShowCaption = True + ButtonStyle = tbrDropDownExtra + end + item + Action = actForward + Visible = True + Left = 141 + Height = 24 + Top = 5 + Width = 89 + ShowCaption = True + ButtonStyle = tbrDropDownExtra + end> + ImageList = ImageList1 + ToolBarStyle = tbsWindowsXP + Options = [tpFlatBtns] + Align = alTop + BorderWidth = 4 + ClientHeight = 34 + ClientWidth = 552 + TabOrder = 0 + end + object Label1: TLabel + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = ToolPanel1 + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 18 + Top = 40 + Width = 99 + BorderSpacing.Around = 6 + Caption = 'Enter finde text' + ParentColor = False + end + object Edit1: TEdit + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Label1 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = BitBtn1 + Left = 6 + Height = 27 + Top = 64 + Width = 476 + Anchors = [akTop, akLeft, akRight] + BorderSpacing.Around = 6 + TabOrder = 1 + Text = 'text to find' + end + object Memo1: TMemo + AnchorSideLeft.Control = Owner + AnchorSideTop.Control = Edit1 + AnchorSideTop.Side = asrBottom + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + AnchorSideBottom.Control = StatusBar1 + Left = 6 + Height = 273 + Top = 97 + Width = 540 + Anchors = [akTop, akLeft, akRight, akBottom] + BorderSpacing.Around = 6 + TabOrder = 2 + end + object BitBtn1: TBitBtn + AnchorSideTop.Control = Edit1 + AnchorSideTop.Side = asrCenter + AnchorSideRight.Control = Owner + AnchorSideRight.Side = asrBottom + Left = 488 + Height = 30 + Top = 62 + Width = 58 + Action = actFind + Anchors = [akTop, akRight] + AutoSize = True + BorderSpacing.Left = 6 + BorderSpacing.Right = 6 + Glyph.Data = { + 46050000424D4605000000000000360000002800000012000000120000000100 + 2000000000001005000064000000640000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF003E39 + 34FF393430FF332F2BFF2C2925FF272421FF201D1BFF1716141A110F0EDB0B0A + 09FF070706FF040403FF000000FF000000FFFFFFFF00FFFFFF00000000000000 + 0000FFFFFF0046413BFF857A70FFC3B8AEFF7C7268FF7F756BFF36322DFF1E1C + 190F282522D495897DFFBAAEA2FF7C7268FF7F756BFF010101FFFFFFFF00FFFF + FF000000000000000000FFFFFF004D4741FF83786FFFCCC3BAFF786F65FF7B71 + 67FF2F2B28F9272421011D1B18EE95897DFFC2B8ADFF786F65FF7C7268FF0605 + 05FFFFFFFF00FFFFFF000000000000000000FFFFFF00534C46FC83786FFFCCC3 + BAFF797066FF71685FFF37332ED5FFFFFF00252220D5857A70FFC2B8ADFF786F + 65FF7B7167FF0A0908FCFFFFFF00FFFFFF000000000000000000FFFFFF005A52 + 4CC39F9286FFCCC3BAFFC0B4AAFFA6988BFF3E3934A8FFFFFF002C2925A89084 + 79FFC2B8ADFFC0B4AAFFA89B8EFF110F0EC3FFFFFF00FFFFFF00000000000000 + 0000797066055C554EF9423D38FF58514AFF3D3833FF332F2BFF23201DE51716 + 14301E1C19B51A1816FF252220FF191715FF0F0E0DFF010101EE00000002FFFF + FF0000000000000000009F9286059D9185FFB1A396FF7F756BFF7C7268FF776D + 64FF6C635BFF2E2A26FF564F48FF80766CFF7C7268FF776D64FF70675EFF0000 + 00FE00000005FFFFFF000000000000000000AB9D9004AFA194E1BAAEA2FF8277 + 6DFF82776DFFAA917BFFBAA794FFB7A48EFAB09781FF9F8D7DFF836D5BFF7163 + 57FF95897DFF040403E000000003FFFFFF000000000000000000B9ACA008877D + 72489B8E82FF9D9185FF867B71FF564F48FF504A44FF80766CFF6E665DFF826C + 58FFA6917DFF948474FF564F48FF0C0B0B7A07070601FFFFFF00000000000000 + 0000FFFFFF00FFFFFF00746B62FFA4978AFF95897DFF9F9286FF3E3934FFFFFF + FF004C4640FF7E746AFF857A70FF3E3934FF453F3AA72522200C15131102FFFF + FF000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF008E8378E2C3B8 + AEFF655D55FFFFFFFF007C7268FFA89B8EFF9C8F83E4FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF + FF009C8F83E2BCB0A4FF9D9185FFFFFFFF00AEA093FF9D9185FF655D55DAFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 + 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF000000000000000000 + } + TabOrder = 3 + end + object StatusBar1: TStatusBar + Left = 0 + Height = 21 + Top = 376 + Width = 552 + Panels = <> + end + object ActionList1: TActionList + Images = ImageList1 + left = 264 + top = 200 + object actExit: TAction + Caption = 'Exit' + ImageIndex = 0 + OnExecute = actExitExecute + end + object actFind: TAction + Caption = 'Find' + ImageIndex = 1 + OnExecute = actFindExecute + end + object actBack: TAction + Caption = 'Back' + Enabled = False + ImageIndex = 2 + end + object actForward: TAction + Caption = 'Repeat' + Enabled = False + ImageIndex = 3 + end + end + object ImageList1: TImageList + Height = 18 + Width = 18 + left = 320 + top = 200 + Bitmap = { + 4C69040000001200000012000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF006D9CD4896A9AD2FB6697CFEE0000000000000000FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00709ED6DB6D9CD4FF85B1DAFF5A91B9FF6093CBEA0000000000000000FFFF + FF00FFFFFF00808080FF7E7E7EFF7C7C7CFF7A7A7AFF777777FF757575FF7272 + 72FF719ED4FF6F9ED6FF87B2DCFFABD3E8FFA9D0E6FF5890B8FF598EC6EA0000 + 000000000000FFFFFF00FFFFFF007D7D7DFF999999FF999999FF9A9A9AFF9A9A + 9AFF9B9B9BFF9B9B9BFF6F9DD3FFAAD1E7FFABD1E7FF98C7E1FF91C2DEFF568F + B7FF5289C1EA0000000000000000FFFFFF00FFFFFF007A7A7AFF999999FF5291 + 59FF999A99FF9B9B9BFF9C9C9CFF9C9C9CFF6C9AD0FFA7CEE5FF8FC1DFFF89BD + DCFF8BBDDCFF538DB6FF4B84BCEA0000000000000000FFFFFF00FFFFFF007777 + 77FF9A9A9AFF3D8A45FF498A4FFF9C9C9CFF9D9D9DFF9D9D9DFF6696CCFFA2CB + E3FF89BDDCFF83B9DAFF84B9DAFF518BB5FF437EB6EA00000000000000004494 + 4DFF42914BFF3F8D48FF3D8945FF5DA465FF5AA061FF45834BFF9E9E9EFF9E9E + 9EFF6092C9FF9EC7E2FF83B8DAFF7DB4D7FF7EB3D7FF4F89B4FF3B79B1EA0000 + 00000000000041904AFF94D29FFF91D09AFF8DCD96FF89CB92FF84C88DFF5198 + 58FF417C46FF9F9F9FFF5A8EC4FF98C3E0FF7CB3D7FF74AFD6FF5EC4EDFF4B88 + B3FF3473ABEA00000000000000003E8B46FF8FCE99FF7DC687FF78C381FF73C0 + 7CFF74C07CFF79C281FF49904FFF547F57FF5489BFFF94BFDDFF75ADD4FF63B8 + E1FF4BD4FFFF428BB8FF2C6EA6EA00000000000000003B8742FF89CB92FF84C8 + 8DFF80C688FF7BC383FF77C17FFF478F4DFF3B743FFFA1A1A1FF4C84BAFF8DBB + DBFF6EA8D1FF66A6D1FF5FB4DFFF4785B1FF2569A1EA00000000000000003782 + 3EFF347E3BFF317937FF2E7534FF499150FF468F4CFF39733DFFA1A1A1FFA2A2 + A2FF457EB4FF88B7D9FF67A3CFFF619ECCFF639FCCFF4583B1FF1F649CEA0000 + 000000000000FFFFFF00FFFFFF00606060FFA0A0A0FF3D7641FF367139FFA2A2 + A2FFA2A2A2FFA3A3A3FF3D79B0FF82B3D7FF629FCCFF5A9AC9FF5E9BCAFF4381 + AFFF196098EA0000000000000000FFFFFF00FFFFFF005C5C5CFFA1A1A1FF3C73 + 40FFA0A1A1FFA3A3A3FFA3A3A3FFA4A4A4FF3674AAFF7DAFD4FF5B9AC9FF5495 + C7FF5896C8FF4180AEFF135C94EA0000000000000000FFFFFF00FFFFFF005858 + 58FFA2A2A2FFA2A2A2FFA3A3A3FFA4A4A4FFA4A4A4FFA5A5A5FF2F6FA5FF78AB + D2FF78ABD3FF73A7D1FF69A0CDFF407FAEFF0F5991EA00000000000000009999 + 99FF717171FF545454FF515151FF4F4F4FFF4C4C4CFF4A4A4AFF474747FF4545 + 45FF25679DFF3274A8FF3D7CAFFF4784B5FF4E8ABAFF3E7EADFF0C578FEA0000 + 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF001D639B1619609839145D9562105A92880D5890A4135C + 92FC0C578FED0000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 + 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF009C8F + 83E2BCB0A4FF9D9185FFFFFFFF00AEA093FF9D9185FF655D55DAFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF + FF00FFFFFF008E8378E2C3B8AEFF655D55FFFFFFFF007C7268FFA89B8EFF9C8F + 83E4FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFF + FF00FFFFFF00746B62FFA4978AFF95897DFF9F9286FF3E3934FFFFFFFF004C46 + 40FF7E746AFF857A70FF3E3934FF453F3AA72522200C15131102FFFFFF000000 + 000000000000B9ACA008877D72489B8E82FF9D9185FF867B71FF564F48FF504A + 44FF80766CFF6E665DFF826C58FFA6917DFF948474FF564F48FF0C0B0B7A0707 + 0601FFFFFF000000000000000000AB9D9004AFA194E1BAAEA2FF82776DFF8277 + 6DFFAA917BFFBAA794FFB7A48EFAB09781FF9F8D7DFF836D5BFF716357FF9589 + 7DFF040403E000000003FFFFFF0000000000000000009F9286059D9185FFB1A3 + 96FF7F756BFF7C7268FF776D64FF6C635BFF2E2A26FF564F48FF80766CFF7C72 + 68FF776D64FF70675EFF000000FE00000005FFFFFF0000000000000000007970 + 66055C554EF9423D38FF58514AFF3D3833FF332F2BFF23201DE5171614301E1C + 19B51A1816FF252220FF191715FF0F0E0DFF010101EE00000002FFFFFF000000 + 000000000000FFFFFF005A524CC39F9286FFCCC3BAFFC0B4AAFFA6988BFF3E39 + 34A8FFFFFF002C2925A8908479FFC2B8ADFFC0B4AAFFA89B8EFF110F0EC3FFFF + FF00FFFFFF000000000000000000FFFFFF00534C46FC83786FFFCCC3BAFF7970 + 66FF71685FFF37332ED5FFFFFF00252220D5857A70FFC2B8ADFF786F65FF7B71 + 67FF0A0908FCFFFFFF00FFFFFF000000000000000000FFFFFF004D4741FF8378 + 6FFFCCC3BAFF786F65FF7B7167FF2F2B28F9272421011D1B18EE95897DFFC2B8 + ADFF786F65FF7C7268FF060505FFFFFFFF00FFFFFF000000000000000000FFFF + FF0046413BFF857A70FFC3B8AEFF7C7268FF7F756BFF36322DFF1E1C190F2825 + 22D495897DFFBAAEA2FF7C7268FF7F756BFF010101FFFFFFFF00FFFFFF000000 + 000000000000FFFFFF003E3934FF393430FF332F2BFF2C2925FF272421FF201D + 1BFF1716141A110F0EDB0B0A09FF070706FF040403FF000000FF000000FFFFFF + FF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00DFDBD7FFB3A79CFFA5998DFFFFFF + FF00AC9F92FF94897FFFB8B4B0FFFFFFFF00FFFFFF000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00E5E3E1FFCFC9C4FFACA2 + 97FF776F66FFFFFFFF00776D64FFA09488FFBAB3ADFFE2E1E0FFFFFFFF000000 + 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00897E + 73FF9B8E82FF887D72FF564F48FFC0BCB8FF5D564EFF857668FF7C6F63FF6C65 + 5FFFBBBAB9FF0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00C8BFB7FFA89B90FF897E74FF86786AFF8E7F70FFA19181FF958372FF937F + 6DFF897666FF7D7166FF555351FF0000000000000000FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00A3978BFFA99D90FF7F756BFF7F7469FF7D7267FF4E47 + 3FFF6B6056FF84786DFF7A6E64FF776D63FF1C1A18FF0000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00605953FF46413BFF4E4842FF3833 + 2FFF383532FFC6C6C5FF5A5856FF1D1B19FF201D1BFF131110FF111111FF0000 + 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0078726EFFA397 + 8CFFC2B9AFFFA6998EFF827C76FFFFFFFF006F6C69FF9C9186FFBBB0A5FFA69A + 8EFF4F4C49FF0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00524C46FF90867DFFAEA59BFF776D64FF55504CFFFFFFFF0045423FFF9A8F + 84FFA0978CFF7A7167FF1F1C1AFF0000000000000000FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF0049433DFF90857CFFABA197FF7C7268FF49433EFFFFFF + FF00484441FFA09488FF9F9489FF7D7369FF191715FF0000000000000000FFFF + FF00FFFFFF00FFFFFF003BA8DBFFFFFFFF00403B35FF4A443EFF49443EFF3A36 + 31FF2A2623FFFFFFFF00373434FF282522FF24221FFF1A1816FF050404FF0000 + 000000000000FFFFFF00FFFFFF003BA8DBFF3BA8DBFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000000000000000000FFFFFF003BA8DBFF3BA8DBFF3BA8DBFF3BA8 + DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8 + DBFF3BA8DBFFFFFFFF00FFFFFF000000000000000000FFFFFF003BA8DBFF3BA8 + DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8 + DBFF3BA8DBFF3BA8DBFF3BA8DBFFFFFFFF00FFFFFF000000000000000000FFFF + FF00FFFFFF003BA8DBFF3BA8DBFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 + 000000000000FFFFFF00FFFFFF00FFFFFF003BA8DBFFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 + 000000000000FFFFFF00FFFFFF00B8B4B0FF94897FFFAC9F92FFFFFFFF00A599 + 8DFFB3A79CFFDFDBD7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000000000000000000FFFFFF00E2E1E0FFBAB3ADFFA09488FF776D + 64FFFFFFFF00776F66FFACA297FFCFC9C4FFE5E3E1FFFFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF000000000000000000BBBAB9FF6C655FFF7C6F + 63FF857668FF5D564EFFC0BCB8FF564F48FF887D72FF9B8E82FF897E73FFFFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000005553 + 51FF7D7166FF897666FF937F6DFF958372FFA19181FF8E7F70FF86786AFF897E + 74FFA89B90FFC8BFB7FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 + 0000000000001C1A18FF776D63FF7A6E64FF84786DFF6B6056FF4E473FFF7D72 + 67FF7F7469FF7F756BFFA99D90FFA3978BFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000000000000000000111111FF131110FF201D1BFF1D1B19FF5A58 + 56FFC6C6C5FF383532FF38332FFF4E4842FF46413BFF605953FFFFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF0000000000000000004F4C49FFA69A8EFFBBB0 + A5FF9C9186FF6F6C69FFFFFFFF00827C76FFA6998EFFC2B9AFFFA3978CFF7872 + 6EFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000001F1C + 1AFF7A7167FFA0978CFF9A8F84FF45423FFFFFFFFF0055504CFF776D64FFAEA5 + 9BFF90867DFF524C46FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 + 000000000000191715FF7D7369FF9F9489FFA09488FF484441FFFFFFFF004943 + 3EFF7C7268FFABA197FF90857CFF49433DFFFFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF000000000000000000050404FF1A1816FF24221FFF282522FF3734 + 34FFFFFFFF002A2623FF3A3631FF49443EFF4A443EFF403B35FFFFFFFF003BA8 + DBFFFFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF003BA8DBFF3BA8DBFFFFFFFF00FFFFFF000000000000000000FFFF + FF00FFFFFF003BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8 + DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFFFFFFFF000000 + 000000000000FFFFFF00FFFFFF003BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8 + DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8DBFF3BA8 + DBFFFFFFFF000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003BA8 + DBFF3BA8DBFFFFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF + FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF + FF00FFFFFF003BA8DBFFFFFFFF00FFFFFF00FFFFFF0000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000 + } + end + object PopupMenu1: TPopupMenu + left = 120 + top = 136 + end + object RxHistoryNavigator1: TRxHistoryNavigator + ToolPanel = ToolPanel1 + BackBtn = 'actBack' + ForwardBtn = 'actForward' + OnHistoryNavigate = RxHistoryNavigator1HistoryNavigate + left = 441 + top = 48 + end + object ApplicationProperties1: TApplicationProperties + OnHint = ApplicationProperties1Hint + left = 360 + top = 200 + end +end diff --git a/components/rx/Demos/RxHistoryNavigator/unit1.pas b/components/rx/Demos/RxHistoryNavigator/unit1.pas new file mode 100644 index 000000000..6c426dd1d --- /dev/null +++ b/components/rx/Demos/RxHistoryNavigator/unit1.pas @@ -0,0 +1,82 @@ +unit Unit1; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, FileUtil, RxHistoryNavigator, rxtoolbar, Forms, Controls, + Graphics, Dialogs, ActnList, StdCtrls, Buttons, ComCtrls, Menus; + +type + + { TForm1 } + + TForm1 = class(TForm) + actExit: TAction; + actFind: TAction; + actBack: TAction; + ActionList1: TActionList; + actForward: TAction; + ApplicationProperties1: TApplicationProperties; + BitBtn1: TBitBtn; + Edit1: TEdit; + ImageList1: TImageList; + Label1: TLabel; + Memo1: TMemo; + PopupMenu1: TPopupMenu; + RxHistoryNavigator1: TRxHistoryNavigator; + StatusBar1: TStatusBar; + ToolPanel1: TToolPanel; + procedure actExitExecute(Sender: TObject); + procedure actFindExecute(Sender: TObject); + procedure ApplicationProperties1Hint(Sender: TObject); + procedure RxHistoryNavigator1HistoryNavigate(Sender: TRxHistoryNavigator; + AInfo: string; AProcessed: boolean); + private + procedure DoFind(S:string); + public + { public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.lfm} + +{ TForm1 } + +procedure TForm1.actExitExecute(Sender: TObject); +begin + Close; +end; + +procedure TForm1.actFindExecute(Sender: TObject); +begin + RxHistoryNavigator1.AddToHistory('Find text', Edit1.Text); + DoFind(Edit1.Text); + Edit1.Text:=''; + Edit1.SetFocus; +end; + +procedure TForm1.ApplicationProperties1Hint(Sender: TObject); +begin + StatusBar1.SimpleText:=Application.Hint; +end; + +procedure TForm1.RxHistoryNavigator1HistoryNavigate( + Sender: TRxHistoryNavigator; AInfo: string; AProcessed: boolean); +begin + Memo1.Lines.Add('History Find text ' + AInfo); +end; + +procedure TForm1.DoFind(S: string); +begin + //Что-то ищем - имитация бурной деятельности + Memo1.Lines.Add('Find text ' + S); +end; + +end. + diff --git a/components/rx/images/TRxHistoryNavigator.png b/components/rx/images/TRxHistoryNavigator.png new file mode 100644 index 000000000..ceced4ac1 Binary files /dev/null and b/components/rx/images/TRxHistoryNavigator.png differ diff --git a/components/rx/images/mk_res.bat b/components/rx/images/mk_res.bat index 165f68221..4abfb615c 100644 --- a/components/rx/images/mk_res.bat +++ b/components/rx/images/mk_res.bat @@ -1,2 +1,2 @@ del rx.lrs -c:\lazarus\tools\lazres.exe rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.png TRxClock.png TRxSpeedButton.png TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png TRxLoginDialog.png TRxVersionInfo.png TRxAboutDialog.png TRxDBCurrEdit.png TRxViewsPanel.png TRxDBColorBox.png TRxRadioGroup.png TRxDBRadioGroup.png +c:\lazarus\tools\lazres.exe rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.png TRxClock.png TRxSpeedButton.png TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png TRxLoginDialog.png TRxVersionInfo.png TRxAboutDialog.png TRxDBCurrEdit.png TRxViewsPanel.png TRxDBColorBox.png TRxRadioGroup.png TRxDBRadioGroup.png TRxHistoryNavigator.png diff --git a/components/rx/images/mk_res.sh b/components/rx/images/mk_res.sh index 75a70b243..8f0cd948c 100755 --- a/components/rx/images/mk_res.sh +++ b/components/rx/images/mk_res.sh @@ -1,2 +1,2 @@ rm rx.lrs -/usr/local/share/lazarus/tools/lazres rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.png TRxClock.png TRxSpeedButton.png TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png TRxLoginDialog.png TRxVersionInfo.png TRxAboutDialog.png TRxDBCurrEdit.png TRxViewsPanel.png TRxDBColorBox.png TRxRadioGroup.png TRxDBRadioGroup.png \ No newline at end of file +/usr/local/share/lazarus/tools/lazres rx.lrs TDBDateEdit.xpm TRXLookUpEdit.xpm TRxDBCalcEdit.xpm TRxDBLookupCombo.xpm TRxDBGrid.xpm TDualListDialog.xpm TFolderLister.xpm TRxMemoryData.xpm TCURRENCYEDIT.xpm TRXSWITCH.xpm TRXDICE.xpm TRXDBCOMBOBOX.xpm ttoolpanel.xpm trxxpmanifest.xpm TPAGEMANAGER.xpm TRXAPPICON.xpm TSECRETPANEL.xpm TRXLABEL.xpm tautopanel.xpm TRxCalendarGrid.xpm TRxDateEdit.png TRxClock.png TRxSpeedButton.png TRxSpinButton.png TRxSpinEdit.png TRXDBSpinEdit.png TRxTimeEdit.png TRxDBTimeEdit.png TRxDBProgressBar.png TRxDBTrackBar.png TRxLoginDialog.png TRxVersionInfo.png TRxAboutDialog.png TRxDBCurrEdit.png TRxViewsPanel.png TRxDBColorBox.png TRxRadioGroup.png TRxDBRadioGroup.png TRxHistoryNavigator.png \ No newline at end of file diff --git a/components/rx/images/rx.lrs b/components/rx/images/rx.lrs index 9699eb6a6..40f41db02 100644 --- a/components/rx/images/rx.lrs +++ b/components/rx/images/rx.lrs @@ -729,3 +729,21 @@ LazarusResources.Add('TRxDBRadioGroup','PNG',[ +#20'e'#166#229'y'#11'('#174#150'V'#153#183#194#255#198#31'Mv'#189#134#210#214 +'J$'#0#0#0#0'IEND'#174'B`'#130 ]); +LazarusResources.Add('TRxHistoryNavigator','PNG',[ + #137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#6#0#0#0#224'w='#248#0 + +#0#0#9'pHYs'#0#0#14#196#0#0#14#196#1#149'+'#14#27#0#0#1'8IDATH'#137#213#148 + +'=K'#195'@'#24#199#127#23'\'#130#171'T'#4#191'D'#171#224#224#160#163'[p'#236 + +#152#15#144#174#151'1'#163'Y'#147#221#184#245'k'#232#224' H)'#157':'#10'N'#1 + +#199'B'#198#199'!MLL'#140#205'K'#135#254#225#184'7'#238#255'r'#207'qP'#128 + +#128'00'#140'}'#146#3#168#174#228'j{'#246'?'#24'}'#201'E'#164't'#222#243#202 + +#243#214#9'\'#29'4'#238#155#166#3'@'#146#132#248#254'L)'#173#3#241#31#28'D' + +#165#166#148'T'#181'>>'#191#242#241#211#227#201#174'^H'#146#240#167#200#147 + +#241#5#0#227#201'e'#222'gc'#128'{'#235#174#21'9'#164'i'#140#226'B&R'#7#203'z' + +'oE'#14'i'#2#180#14#4#145#198#214#6#158#151'6'#17#17#173#3'Q'#176#21#25#8#166 + +#233#164#206#1#223#159#165#133#213':'#144#245'r%'#235#229'J6q,'#155'8'#174'u' + +#215#197#200'Qq2'#181#237#210#230'b'#209#254#222#27#5#230'Q'#196#249#217')'#0 + +#199#163'Qo'#242#138#192#239#4#208'?'#197'^'#18#188#188#190#201#205#245#149 + +#170#8#20#19#244'q'#158#145'W'#4#138#9#134#194'a'#214#160'V '#154'?'#15'B' + +#248#167#128'='#189#5'hL'#224#186'aw'#1'8'#208#26#228#239'u'#151#143','#255 + +#29'['#224#27#254'('#218'x|2'#20#20#0#0#0#0'IEND'#174'B`'#130 +]); diff --git a/components/rx/registerrx.pas b/components/rx/registerrx.pas index 44715fe90..fe85925b8 100644 --- a/components/rx/registerrx.pas +++ b/components/rx/registerrx.pas @@ -42,7 +42,7 @@ procedure Register; implementation uses - PropEdits, folderlister, duallist, + PropEdits, folderlister, duallist, RxHistoryNavigator, curredit, rxswitch, rxdice, rxtoolbar, rxxpman, PageMngr, RxAppIcon, Dialogs, ComponentEditors, DBPropEdits, DB, rxctrls, RxCustomChartPanel, AutoPanel, pickdate, rxconst, tooledit, rxclock, @@ -73,6 +73,43 @@ begin DataSource.DataSet.GetFieldNames(Values); end; +type + + { THistoryButtonProperty } + + THistoryButtonProperty = class(TStringPropertyEditor) + public + function GetAttributes: TPropertyAttributes; override; + procedure GetValues(Proc: TGetStrProc); override; + end; + + + +{ THistoryButtonProperty } + +function THistoryButtonProperty.GetAttributes: TPropertyAttributes; +begin + Result:= [paValueList, paSortList, paMultiSelect]; +end; + +procedure THistoryButtonProperty.GetValues(Proc: TGetStrProc); +var + I: Integer; + Navigator:TRxHistoryNavigator; +begin + Navigator:=TRxHistoryNavigator(GetComponent(0)); + if Assigned(Navigator) then + begin + if Assigned(Navigator.ToolPanel) then + begin + for i:=0 to Navigator.ToolPanel.Items.Count - 1 do + begin + if Assigned(Navigator.ToolPanel.Items[i].Action) then + Proc(Navigator.ToolPanel.Items[i].Action.Name); + end; + end; + end; +end; {$IFDEF USE_TRxAppIcon} procedure RegisterRxAppIcon; @@ -174,6 +211,11 @@ begin RegisterComponents('RX',[TRxViewsPanel]); end; +procedure RegisterRxHistoryNavigator; +begin + RegisterComponents('RX Tools',[TRxHistoryNavigator]); +end; + procedure Register; begin //RX @@ -200,9 +242,13 @@ begin RegisterUnit('RxTimeEdit', @RegisterRxTimeEdit); RegisterUnit('RxAboutDialog', @RegisterRxAboutDialog); RegisterUnit('RxViewsPanel', @RegisterRxViewsPanel); + RegisterUnit('RxHistoryNavigator', @RegisterRxHistoryNavigator); + // RegisterPropertyEditor(TypeInfo(string), TPopUpColumn, 'FieldName', TPopUpColumnFieldProperty); + RegisterPropertyEditor(TypeInfo(string), TRxHistoryNavigator, 'BackBtn', THistoryButtonProperty); + RegisterPropertyEditor(TypeInfo(string), TRxHistoryNavigator, 'ForwardBtn', THistoryButtonProperty); RegisterCEEditLookupFields; end;