summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/fcl-db/tests/dbguitestrunner.pas
blob: cc80b15ac9aa0a09ef37096c460a4e3689e79759 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
unit DBGuiTestRunner;
// Adds database.ini editing facilities to regular GuiTestRunner form

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils,
  Interfaces, Forms,
  StdCtrls,
  GuiTestRunner, inieditor;

type

  { TDBGuiTestRunnerForm }

  TDBGuiTestRunnerForm=class(TGUITestRunner)
  private
    DBEditButton: TButton;
  public
    procedure DBEditButtonClick(ASender: TObject);
    constructor Create(AOwner: TComponent); override;
  end;

var
  DBGuiTestRunnerForm: TDBGuiTestRunnerForm;


implementation


{ TDBGuiTestRunnerForm }

procedure TDBGuiTestRunnerForm.DBEditButtonClick(ASender: TObject);
var
  DBSelectForm: TFormIniEditor;
begin
  DBSelectForm:=TFormIniEditor.Create(nil);
  try
    DBSelectForm.INIFile:='database.ini';
    DBSelectForm.ProfileSelectSection:='Database';
    DBSelectForm.ProfileSelectKey:='type';
    // We can ignore resulting db selection as the file is saved already:
    DBSelectForm.ShowModal;
  finally
    DBSelectForm.Free;
  end;
end;

constructor TDBGuiTestRunnerForm.Create(AOwner: TComponent);
// Add our database.ini edit button to the existing GUI
begin
  inherited Create(AOwner);
  DBEditButton:=TButton.Create(Self);
  DBEditButton.Top:=7;
  DBEditButton.Left:=210;
  DBEditButton.Height:=32;
  DBEditButton.Width:=100;
  DBEditButton.Caption:='Edit database.ini...';
  DBEditButton.Hint:='Edit database selection settings (effective for next start)';
  DBEditButton.OnClick:=@DBEditButtonClick;
  // Set this last; now all properties take effect
  DBEditButton.Parent:=Self.Panel1;
end;

end.