-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathudChooseDB.pas
93 lines (80 loc) · 2.62 KB
/
udChooseDB.pas
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
unit udChooseDB;
{
March 2016 Code By: Daniel Campbell
}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, JvExComCtrls, JvComCtrls, StdCtrls, ImgList;
type
TdChooseDB = class(TForm)
tvServerList1: TJvTreeView;
tvServerList2: TJvTreeView;
btnConnect: TButton;
ilTreeView: TImageList;
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure FormShow(Sender: TObject);
procedure tvServerListMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure btnConnectClick(Sender: TObject);
private
fFillingServers : Boolean;
fServer1, fAlias1, fServer2, fAlias2 : string;
public
property Server1 : string read fServer1 write fServer1;
property Alias1 : string read fAlias1 write fAlias1;
property Server2 : string read fServer2 write fServer2;
property Alias2 : string read fAlias2 write fAlias2;
end;
implementation
uses uuServerList;
{$R *.dfm}
procedure TdChooseDB.btnConnectClick(Sender: TObject);
var
lSelectedNode1, lSelectedNode2 : TTreeNode;
begin
lSelectedNode1 := tvServerList1.Selected;
if (lSelectedNode1 = nil) or (lSelectedNode1.Parent = nil) then Exit;
lSelectedNode2 := tvServerList2.Selected;
if (lSelectedNode2 = nil) or (lSelectedNode2.Parent = nil) then Exit;
Server1 := lSelectedNode1.Parent.Text;
Alias1 := lSelectedNode1.Text;
Server2 := lSelectedNode2.Parent.Text;
Alias2 := lSelectedNode2.Text;
ModalResult := mrOK;
end;
procedure TdChooseDB.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then
Close;
end;
procedure TdChooseDB.FormShow(Sender: TObject);
begin
fFillingServers := True;
PopulateServerList(tvServerList1);
PopulateServerList(tvServerList2);
fFillingServers := False;
end;
procedure TdChooseDB.tvServerListMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
lSelectedNode : TTreeNode;
ltvServerList : TJvTreeView;
begin
ltvServerList := (Sender as TJvTreeView);
lSelectedNode := ltvServerList.Selected;
if lSelectedNode = nil then Exit;
if Button = mbLeft then
begin
//This triggers when filling the list but also when they click on a new item
if (not fFillingServers) then
begin
if lSelectedNode.Parent = nil then //clicked on a server
begin
ExpandServer(lSelectedNode, ltvServerList, '', '');
end;
end;
end
end;
end.