source: trunk/USimpleChat.pas

Last change on this file was 2, checked in by george, 16 years ago

Přidáno: Ropracovaná verze 3.0

  • Property svn:executable set to *
File size: 3.0 KB
Line 
1unit USimpleChat;
2
3interface
4
5uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, SunriseChatCoreUnit, SunriseChatNetworkCoreUnit, StdCtrls;
8
9type
10 TForm2 = class(TForm)
11 Memo1: TMemo;
12 ListBox1: TListBox;
13 Button1: TButton;
14 Edit1: TEdit;
15 Edit2: TEdit;
16 SunriseChatNetworkCore1: TSunriseChatNetworkCore;
17 procedure FormCreate(Sender: TObject);
18 procedure Button1Click(Sender: TObject);
19 procedure SunriseChatNetworkCore1UserListUpdate;
20 procedure Edit1KeyPress(Sender: TObject; var Key: Char);
21 procedure Edit2Exit(Sender: TObject);
22 procedure SunriseChatNetworkCore1AddMessage(EventType: TAppEventType;
23 Room: TRoom; const Args: array of TVarRec; RoomLine: TRoomLine);
24 procedure ListBox1Click(Sender: TObject);
25 private
26 { Private declarations }
27 public
28 ListBox1LastItemIndex: Integer;
29 end;
30
31var
32 Form2: TForm2;
33
34implementation
35
36uses DateUtils;
37
38{$R *.dfm}
39
40procedure TForm2.FormCreate(Sender: TObject);
41var
42 I: Integer;
43begin
44 with SunriseChatNetworkCore1 do begin
45 BroadcastType := btGlobal;
46 LocalUser.Nick := Edit2.Text;
47 //for I := 0 to NetworkInterfaces.Count-1 do
48 // Memo1.Lines.Add(TNetworkInterface(NetworkInterfaces[I]).IPAddress);
49 TNetworkInterface(NetworkInterfaces[3]).Select;
50 Memo1.Lines.Add('Network interface: '+ActiveNetworkInterface.IPAddress);
51 Active := True;
52 end;
53end;
54
55procedure TForm2.Button1Click(Sender: TObject);
56begin
57 with SunriseChatNetworkCore1, ListBox1, Items do
58 if (ItemIndex >= 0) and (ItemIndex < Count) then
59 with TUser(UserList[ListBox1.ItemIndex]) do
60 SendCommand(scMessage, Edit1.Text, Id.Machine, Id.User)
61 else SendCommand(scMessage, Edit1.Text);
62 Edit1.Text := '';
63end;
64
65procedure TForm2.SunriseChatNetworkCore1UserListUpdate;
66var
67 I: Integer;
68 LastItemIndex: Integer;
69begin
70 with SunriseChatNetworkCore1, ListBox1, Items do begin
71 BeginUpdate;
72 LastItemIndex := ItemIndex;
73 Clear;
74 for I := 0 to UserList.Count-1 do Add(TUser(UserList[I]).Nick);
75 if (LastItemIndex < Count) and (LastItemIndex >= 0) then ItemIndex := LastItemIndex;
76 EndUpdate;
77 end;
78end;
79
80procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
81begin
82 if Key = #13 then Button1.OnClick(Self);
83end;
84
85procedure TForm2.Edit2Exit(Sender: TObject);
86begin
87 SunriseChatNetworkCore1.LocalUser.Nick := Edit2.Text;
88 SunriseChatNetworkCore1.SendCommand(scUserInfo);
89end;
90
91procedure TForm2.SunriseChatNetworkCore1AddMessage(
92 EventType: TAppEventType; Room: TRoom; const Args: array of const;
93 RoomLine: TRoomLine);
94begin
95 Memo1.Lines.Add(RoomLine.Text);
96end;
97
98procedure TForm2.ListBox1Click(Sender: TObject);
99begin
100 with ListBox1, Items do begin
101 if (ListBox1LastItemIndex = -1) then begin
102 ListBox1LastItemIndex := ItemIndex;
103 ItemIndex := -1;
104 end else begin
105 ListBox1LastItemIndex := -1
106 end;
107 end;
108end;
109
110end.
Note: See TracBrowser for help on using the repository browser.