finddlgs.pp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. unit Finddlgs;
  2. interface
  3. uses gtk, FPgtk;
  4. type
  5. TFindDialog = class (TFPgtkWindow)
  6. private
  7. FSearchString : string;
  8. EditSearch : TFPgtkEntry;
  9. procedure SetSearchString (Value:string);
  10. procedure ChangeText (Sender:TFPgtkObject; data:pointer);
  11. public
  12. constructor create (WindowType : TGtkWindowType); override;
  13. procedure DoDialogInit (InitData : pointer); override;
  14. property SearchString : string read FSearchString write SetSearchString;
  15. end;
  16. PFindDialogData = ^TFindDialogData;
  17. TFindDialogData = record
  18. Text : string;
  19. end;
  20. implementation
  21. resourcestring
  22. rsSearch = 'Search';
  23. constructor TFindDialog.create (WindowType : TGtkWindowType);
  24. var b : TFPgtkButton;
  25. t : TFPgtkTable;
  26. begin
  27. inherited Create (WindowType);
  28. border := 2;
  29. t := TFPgtkTable.create (2,3);
  30. Add (t);
  31. t.attach (TFPgtkLabel.create('Give text to search (case sensitive)'), 0,2, 0,1);
  32. b := TFPgtkButton.CreateWithLabel ('Ok');
  33. b.ConnectClicked ( CloseWithResult, inttopointer (drOk) );
  34. t.attach (b, 0,1, 2,3);
  35. b.Candefault := True;
  36. b.GrabDefault;
  37. b := TFPgtkButton.CreateWithLabel ('Cancel');
  38. b.ConnectClicked ( CloseWindow, inttopointer (drCancel) );
  39. t.attach (b, 1,2, 2,3);
  40. b.Candefault := True;
  41. EditSearch := TFpGtkEntry.Create;
  42. EditSearch.ConnectChanged (ChangeText, nil);
  43. t.attach (EditSearch, 0,2, 1,2);
  44. EditSearch.GrabFocus;
  45. end;
  46. procedure TFindDialog.DoDialogInit (InitData : pointer);
  47. begin
  48. EditSearch.Text := PFindDialogData(InitData).Text;
  49. Title := rsSearch;
  50. inherited;
  51. end;
  52. procedure TFindDialog.SetSearchString (Value : string);
  53. begin
  54. EditSearch.Text := Value;
  55. end;
  56. procedure TFindDialog.ChangeText (Sender : TFPGtkObject; data : pointer);
  57. begin
  58. FSearchString := EditSearch.Text;
  59. end;
  60. end.