我在我的项目中使用多个表单。 (客户端服务器应用程序)我使用聊天但我有一些问题。
1-我的listview上有一个用户列表。我在这里打开新的聊天表格。
procedure CreateNewChat(User: String);
var
ChatForm: TChatForm;
begin
ChatForm:= TChatForm.Create(nil);
if assigned (ChatForm) then
ChatForm.User:= User;
Chat.Socket:= MySocket; // TClientSocket new Instance
ChatForm.Show;
end;
///Chatform
procedure ParseData(Cmd:string);
begin
if Cmd <> '' then
begin
/// parsing...
end;
新连接正在添加到列表视图中
var
Item: TListItem;
NewTempForm: TTempForm;
begin
NewTempForm := tempForm.Create;
Item := Listview.Items.Add;
if User = '' then
Exit;
Item.Caption := User;
Item.SubItems.Add('OK');
Item.GroupId := GroupId;
Item.SubItems.Objects[0] := NewTempForm;
end;
我的问题是从这里开始的。
1-如何根据用户检测表格?那么,如果两个或更高的形式是开放的,那么我如何在它们上显示收到的消息?因为我是动态创建的。我需要一个检测对象。
我试着像那样
var
tempForm: TTempForm; // this is an empty object class
sTempStr: String;
begin
if ListView.Selected <> nil then
begin
tempForm := TTempForm(ListView.Selected.SubItems.Objects[0]); // this is for unique form creation
if tempForm.frmTasks = nil then // if there is not, create!
begin
tempForm.frmTasks := TfrmTasks.Create(nil);
end;
但我收到的消息显示在所有表格上。实际上应该只出现一种形式。 (哪位用户发送了它)
感谢。