procedure
TMainForm
.
ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
var
s,from_,to_,user:
string
;
begin
Socket
.
ReceiveBuf(PackRead,SizeOf(PackRead));
if
PackRead
.
ID =
103
then
begin
if
(PackRead
.
UserTO = DM1
.
User_Name)
then
if
FormMessageChat
.
Visible
then
begin
FormMessageChat
.
MessageList
.
Clear;
FormMessageChat
.
MessageSend
.
Clear;
FormMessageChat
.
Close;
end
;
Exit;
end
;
if
PackRead
.
ID =
101
then
begin
if
(PackRead
.
UserTO =
''
)
then
begin
s := PackRead
.
Msg;
FormMessageChatAdmin
.
clear_users_list();
while
Pos(
';'
,s) >
0
do
begin
user := Copy(s,
1
,Pos(
';'
,s)-
1
);
if
(copy(user,
1
,pos(
' '
,user)-
1
) <> DM1
.
User_Name)
then
FormMessageChatAdmin
.
UserList
.
Items
.
Add(user);
Delete(s,
1
,Pos(
';'
,s));
end
;
end
else
if
(PackRead
.
UserTO = DM1
.
User_Name)
then
begin
s := PackRead
.
Msg;
FormMessageChatAdmin
.
clear_users_list();
while
Pos(
';'
,s) >
0
do
begin
user := Copy(s,
1
,Pos(
';'
,s)-
1
);
if
(copy(user,
1
,pos(
' '
,user)-
1
) <> DM1
.
User_Name)
then
FormMessageChatAdmin
.
UserList
.
Items
.
Add(user);
Delete(s,
1
,Pos(
';'
,s));
end
;
end
;
FormMessageChatAdmin
.
Label3
.
Caption :=
'Online: '
+IntToStr(FormMessageChatAdmin
.
UserList
.
Items
.
Count);
Exit;
end
;
if
PackRead
.
ID =
104
then
begin
rMsgBox(PackRead
.
Msg,MB_OK+MB_ICONINFORMATION);
Exit;
end
;
if
PackRead
.
ID =
102
then
begin
PackSend
.
ID :=
102
;
StrLCopy(PackSend
.
UserTO,
Pchar
(
'Server'
), SizeOf(PackSend
.
UserTO));
StrLCopy(PackSend
.
UserFrom,
Pchar
(DM1
.
User_Name), SizeOf(PackSend
.
UserFrom));
StrLCopy(PackSend
.
Msg,
Pchar
(DM1
.
User_Name +
' ('
+DM1
.
client_version+
')'
), SizeOf(PackSend
.
Msg));
Socket
.
SendBuf(PackSend,SizeOf(PackSend));
Exit;
end
;
if
PackRead
.
ID =
105
then
begin
to_ := PackRead
.
UserTO;
from_ := PackRead
.
UserFrom;
user_stp := from_;
if
(to_ = DM1
.
User_Name)
then
begin
s := from_+
' > '
+PackRead
.
Msg;
FormMessageChat
.
ins_message(s);
end
;
if
(from_ = DM1
.
User_Name)
then
begin
s := from_+
' > '
+PackRead
.
Msg;
FormMessageChatAdmin
.
ins_message(s);
end
;
Exit;
end
;
if
PackRead
.
ID =
106
then
begin
to_ := PackRead
.
UserTO;
from_ := PackRead
.
UserFrom;
if
(from_ = DM1
.
User_Name)
then
begin
s := from_ +
' > '
+PackRead
.
Msg;
FormMessageChat
.
ins_message(s);
end
;
if
(to_ = DM1
.
User_Name)
then
begin
s := from_+
' > '
+PackRead
.
Msg;
FormMessageChatAdmin
.
ins_message(s);
end
;
Exit;
end
;
if
(PackRead
.
ID =
107
)
and
(PackRead
.
UserTO =
''
)
then
begin
Application
.
Terminate;
Exit;
end
;
if
(PackRead
.
ID =
107
)
and
(PackRead
.
UserTO <>
''
)
then
begin
to_ := PackRead
.
UserTO;
if
(to_ = DM1
.
User_Name)
then
begin
Application
.
Terminate;
end
;
Exit;
end
;
end
;