-
Notifications
You must be signed in to change notification settings - Fork 6
/
IM.Contact.Add.pas
108 lines (91 loc) · 2.72 KB
/
IM.Contact.Add.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
unit IM.Contact.Add;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, HGM.Button, Vcl.ExtCtrls, Vcl.Grids,
HGM.Controls.VirtualTable, IM.Classes;
type
TFormContactAdd = class(TForm)
EditNick: TEdit;
EditJID: TEdit;
sLabel1: TLabel;
sLabel2: TLabel;
ButtonFlatOK: TButtonFlat;
ButtonFlatCancel: TButtonFlat;
TableExGroups: TTableEx;
Label1: TLabel;
Shape1: TShape;
Shape2: TShape;
PanelBottom: TPanel;
Shape3: TShape;
PanelTop: TPanel;
Label2: TLabel;
Shape4: TShape;
procedure ButtonFlatCancelClick(Sender: TObject);
procedure ButtonFlatOKClick(Sender: TObject);
procedure TableExGroupsGetData(FCol, FRow: Integer; var Value: string);
procedure TableExGroupsDrawCellData(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
procedure TableExGroupsItemColClick(Sender: TObject; MouseButton: TMouseButton; const Index: Integer);
private
FGroups: TGroupList;
public
class function Execute(var JID, Nick: string; Groups: TGroupList): Boolean;
end;
var
FormContactAdd: TFormContactAdd;
implementation
uses
IM.Main;
{$R *.dfm}
class function TFormContactAdd.Execute(var JID, Nick: string; Groups: TGroupList): Boolean;
begin
with TFormContactAdd.Create(nil) do
begin
FGroups := Groups;
Groups.AddTable(TableExGroups);
Groups.UpdateTable;
Result := ShowModal = mrOk;
JID := EditJID.Text;
Nick := EditNick.Text;
Groups.UnAssignTable(TableExGroups);
Free;
end;
end;
procedure TFormContactAdd.TableExGroupsDrawCellData(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if ACol <> 0 then
Exit;
if FGroups.Checked[ARow] then
FormMain.ImageListNormal.Draw(TableExGroups.Canvas, Rect.Left + 2, Rect.Top + 2, 1, True)
else
FormMain.ImageListNormal.Draw(TableExGroups.Canvas, Rect.Left + 2, Rect.Top + 2, 2, True);
end;
procedure TFormContactAdd.TableExGroupsGetData(FCol, FRow: Integer; var Value: string);
begin
case FCol of
0:
Value := '';
1:
Value := FGroups[FRow].Name;
end;
end;
procedure TFormContactAdd.TableExGroupsItemColClick(Sender: TObject; MouseButton: TMouseButton; const Index: Integer);
begin
if Index <> 0 then
Exit;
FGroups.Checked[TableExGroups.ItemIndex] := not FGroups.Checked[TableExGroups.ItemIndex];
end;
procedure TFormContactAdd.ButtonFlatOKClick(Sender: TObject);
begin
if (EditJID.Text <> '') and (EditNick.Text <> '') and (Pos('@', EditJID.Text) > 0) then
begin
ModalResult := mrOk;
end
else
ShowMessage('Ïîëÿ çàïîëíåíû íåâåðíî!');
end;
procedure TFormContactAdd.ButtonFlatCancelClick(Sender: TObject);
begin
Close;
end;
end.