网络共享,准备聊天项目。
获取服务器端用户
function TdmServer.OnlineUserSearch: Boolean;
var
I: Integer;
ConnectedProfiles : String;
begin
if tetheringManager1.RemoteProfiles.Count > 0 then
begin
for I := 0 to tetheringManager1.RemoteProfiles.Count - 1 do
begin
ConnectedProfiles := tetheringManager1.RemoteProfiles.Items[I].ProfileText;
AddOnlineUserList(I,ConnectedProfiles);
end;
end
end;
procedure TdmServer.AddOnlineUser(pUserId: Integer; pusername: String);
begin
try
if not IsThereAuserSearch(pUserId) then //Are there any users?
begin
queryOnlineUser.Open;
queryOnlineUser.Insert;
queryOnlineUser.FieldByName('UserId').AsInteger := pUserId ;
queryOnlineUser.FieldByName('username').AsString := pusername;
queryOnlineUser.Post;
queryOnlineUser.Refresh;
End;
Except
end;
end;
客户
添加到服务器端的用户指定了客户端,我将它们分配给了列表作者。如果用户想与在线用户交谈该怎么办?
据此
procedure TClientMain.btnSendClick(Sender: TObject);
var
I : Integer;
begin
begin
case lvMessagetype of
// by user group
eGroup:
begin
// if then
end;
// Conversation with Single User
eUser:
begin
end;
// sending messages to all users
eAllUser:
begin
For I := 0 to ClientAppProfile.ConnectedProfiles.Count -1 do
begin
TThread.Synchronize(nil,procedure begin ClientAppProfile.SendString(ClientAppProfile.ConnectedProfiles[I],memSendmessage.Text,memSendmessage.Text) end);
end;
end;
end;
memSendmessage.Clear;
end;
end;
我想从列表中向用户发送消息
*案例*
指定的eGroup:如果为数据库中的同一组选择了用户
例如:将一组书籍发送到一组时,有3个用户。向这3个用户发送消息
我应该如何做我想要的客户方。
我在等待您的帮助。
谢谢