-
Notifications
You must be signed in to change notification settings - Fork 5
/
UFrmMasksEdit.pas
118 lines (94 loc) · 2.32 KB
/
UFrmMasksEdit.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
118
unit UFrmMasksEdit;
interface
uses Vcl.Forms, Vcl.Buttons, Vcl.StdCtrls, Vcl.Controls, System.Classes,
//
UConfig;
type
TFrmMasksEdit = class(TForm)
Label1: TLabel;
EdName: TEdit;
Label3: TLabel;
EdMasks: TMemo;
BtnOK: TButton;
BtnCancel: TButton;
BtnHelp: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
procedure BtnHelpClick(Sender: TObject);
private
Edit: Boolean;
MasksTable: TMasksTable;
function NameAlreadyExists: Boolean;
end;
var
FrmMasksEdit: TFrmMasksEdit;
function DoMasksEdit(Edit: Boolean; var MasksTable: TMasksTable): Boolean;
implementation
{$R *.dfm}
uses System.SysUtils, Vcl.Dialogs, System.UITypes, UCommon;
function DoMasksEdit;
begin
FrmMasksEdit := TFrmMasksEdit.Create(Application);
FrmMasksEdit.Edit := Edit;
FrmMasksEdit.MasksTable := MasksTable;
Result := FrmMasksEdit.ShowModal = mrOk;
if Result then MasksTable := FrmMasksEdit.MasksTable;
FrmMasksEdit.Free;
end;
procedure TFrmMasksEdit.FormCreate(Sender: TObject);
begin
Width := Width+8; //fix theme behavior
end;
procedure TFrmMasksEdit.FormShow(Sender: TObject);
begin
if Edit then
begin
Caption := 'Edit Masks Table';
EdName.Text := MasksTable.Name;
EdMasks.Text := MasksTable.Masks;
end;
end;
procedure TFrmMasksEdit.BtnOKClick(Sender: TObject);
begin
EdName.Text := Trim(EdName.Text);
if EdName.Text = string.Empty then
begin
MessageDlg('Name is empty', mtError, [mbOK], 0);
EdName.SetFocus;
Exit;
end;
if Pos(' ', EdName.Text)>0 then
begin
MessageDlg('Name cannot contain space character', mtError, [mbOK], 0);
EdName.SetFocus;
Exit;
end;
if NameAlreadyExists then
begin
MessageDlg('Name already exists', mtError, [mbOK], 0);
EdName.SetFocus;
Exit;
end;
//
if not Edit then
begin
MasksTable := TMasksTable.Create;
Config.MasksTables.Add(MasksTable);
end;
MasksTable.Name := EdName.Text;
MasksTable.Masks := EdMasks.Text;
ModalResult := mrOk;
end;
function TFrmMasksEdit.NameAlreadyExists: Boolean;
var
M: TMasksTable;
begin
M := Config.FindMasksTable(EdName.Text);
Result := (M<>nil) and (M<>MasksTable);
end;
procedure TFrmMasksEdit.BtnHelpClick(Sender: TObject);
begin
ShowMasksHelp;
end;
end.