-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLibraryForm.pas
118 lines (97 loc) · 2.55 KB
/
LibraryForm.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
unit LibraryForm;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms,
Vcl.Dialogs, Vcl.StdCtrls, System.ImageList, Vcl.ImgList;
type
TMultiResult = record
OK: Boolean;
Value: string;
end;
TfrmLibrary = class(TForm)
lstLibrary: TListBox;
edtPath: TEdit;
btnOK: TButton;
btnCancel: TButton;
btnAdd: TButton;
btnReplace: TButton;
btnDelete: TButton;
btnInvalid: TButton;
btnLibraryDir: TButton;
il16Bis: TImageList;
procedure lstLibraryClick(Sender: TObject);
procedure btnAddClick(Sender: TObject);
procedure btnReplaceClick(Sender: TObject);
procedure btnDeleteClick(Sender: TObject);
procedure btnInvalidClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmLibrary: TfrmLibrary;
function EditLibrary(NameValue: string; Values: string): TMultiResult;
implementation
uses
GlobalUnit;
{$R *.dfm}
function EditLibrary(NameValue: string; Values: string): TMultiResult;
var
ListValues: TStringList;
begin
Result.OK := False;
frmLibrary := TfrmLibrary.Create(Application.MainForm);
with frmLibrary do
begin
ListValues := TStringList.Create;
Caption := NameValue;
Explode(';', Values, ListValues);
lstLibrary.Items.Assign(ListValues);
if ShowModal = mrOk then
begin
ListValues.Assign(lstLibrary.Items);
Result.Value := Implode(';', ListValues);
Result.OK := True;
end;
ListValues.Free;
end;
frmLibrary.Free;
end;
procedure TfrmLibrary.btnAddClick(Sender: TObject);
begin
if DirectoryExists(edtPath.Text) then
lstLibrary.Items.Add(edtPath.Text);
end;
procedure TfrmLibrary.btnDeleteClick(Sender: TObject);
begin
if lstLibrary.ItemIndex > -1 then
lstLibrary.Items.Delete(lstLibrary.ItemIndex);
end;
procedure TfrmLibrary.btnInvalidClick(Sender: TObject);
var
I: Integer;
Path: string;
begin
I := 0;
while I < lstLibrary.Items.Count do
begin
Path := lstLibrary.Items[I];
if not DirectoryExists(edtPath.Text) then
lstLibrary.Items.Delete(lstLibrary.ItemIndex)
else
Inc(I);
end;
end;
procedure TfrmLibrary.btnReplaceClick(Sender: TObject);
begin
if lstLibrary.ItemIndex > -1 then
if DirectoryExists(edtPath.Text) then
lstLibrary.Items[lstLibrary.ItemIndex] := edtPath.Text;
end;
procedure TfrmLibrary.lstLibraryClick(Sender: TObject);
begin
if lstLibrary.ItemIndex > -1 then
edtPath.Text := lstLibrary.Items[lstLibrary.ItemIndex];
end;
end.