dbguitestrunner.pas 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. unit DBGuiTestRunner;
  2. // Adds database.ini editing facilities to regular GuiTestRunner form
  3. {$mode objfpc}{$H+}
  4. interface
  5. uses
  6. Classes, SysUtils,
  7. Interfaces, Forms,
  8. StdCtrls,
  9. GuiTestRunner, inieditor;
  10. type
  11. { TDBGuiTestRunnerForm }
  12. TDBGuiTestRunnerForm=class(TGUITestRunner)
  13. private
  14. DBEditButton: TButton;
  15. public
  16. procedure DBEditButtonClick(ASender: TObject);
  17. constructor Create(AOwner: TComponent); override;
  18. end;
  19. var
  20. DBGuiTestRunnerForm: TDBGuiTestRunnerForm;
  21. implementation
  22. { TDBGuiTestRunnerForm }
  23. procedure TDBGuiTestRunnerForm.DBEditButtonClick(ASender: TObject);
  24. var
  25. DBSelectForm: TFormIniEditor;
  26. begin
  27. DBSelectForm:=TFormIniEditor.Create(nil);
  28. try
  29. DBSelectForm.INIFile:='database.ini';
  30. DBSelectForm.ProfileSelectSection:='Database';
  31. DBSelectForm.ProfileSelectKey:='type';
  32. // We can ignore resulting db selection as the file is saved already:
  33. DBSelectForm.ShowModal;
  34. finally
  35. DBSelectForm.Free;
  36. end;
  37. end;
  38. constructor TDBGuiTestRunnerForm.Create(AOwner: TComponent);
  39. // Add our database.ini edit button to the existing GUI
  40. begin
  41. inherited Create(AOwner);
  42. DBEditButton:=TButton.Create(Self);
  43. DBEditButton.Top:=7;
  44. DBEditButton.Left:=340; //to the left of the close button
  45. DBEditButton.Height:=32;
  46. DBEditButton.Width:=100;
  47. DBEditButton.Caption:='Edit database.ini...';
  48. DBEditButton.Hint:='Edit database selection settings (effective for next start)';
  49. DBEditButton.OnClick:=@DBEditButtonClick;
  50. // Set this last; now all properties take effect
  51. DBEditButton.Parent:=Self.Panel1;
  52. end;
  53. end.