何必用数组呢,用TLIST不好吗?
点击事件生成新窗口:Var
WinList:TList;procedure TMainForm.FormCreate(Sender :TObject);
Begin
WInList :=TList.Create;
end;
procedure TMainForm.Destry(Sender:TObject);
Var
Count:Integer;
Begin
for Count :=0 to WinList.Count -1 do
TFrmChat(WinList.Items[Count]).Close; //关闭所有创建窗口
WinList.Free;//释放List
end;//新建
procedure NewICQWindow(Const ICQNumber:String);
Var
NewWindow:TfrmChat;
begin
NewWindow :=TfrmChat.Create(Application);
NewWindow.Caption :=ICQNumber; //ICQNumber应为唯一值
WinList.Add(NewWinow);
NewWindow.Show;
end;
procedure DeleteWindow(Const ICQNumber:String);
Var
Count:Integer;
Begin
for Count :=0 to WinList.Count -1 do
Begin
if TFrmChat(WinList.Items[Count]).Caption =ICQNumber then
Begin
TFrmChat(WinList.Items[Count]).Free;//释放指定窗口
WinList.Delete(Count);//删除列表中的值
end;
end;
end;每个frmChat窗口最好有独立的ClientSocket,独立建 立 通信
frmChatClose事件发生时加入DeleteWindow(Caption);//当前窗口ICQNumber号码
点击事件生成新窗口:Var
WinList:TList;procedure TMainForm.FormCreate(Sender :TObject);
Begin
WInList :=TList.Create;
end;
procedure TMainForm.Destry(Sender:TObject);
Var
Count:Integer;
Begin
for Count :=0 to WinList.Count -1 do
TFrmChat(WinList.Items[Count]).Close; //关闭所有创建窗口
WinList.Free;//释放List
end;//新建
procedure NewICQWindow(Const ICQNumber:String);
Var
NewWindow:TfrmChat;
begin
NewWindow :=TfrmChat.Create(Application);
NewWindow.Caption :=ICQNumber; //ICQNumber应为唯一值
WinList.Add(NewWinow);
NewWindow.Show;
end;
procedure DeleteWindow(Const ICQNumber:String);
Var
Count:Integer;
Begin
for Count :=0 to WinList.Count -1 do
Begin
if TFrmChat(WinList.Items[Count]).Caption =ICQNumber then
Begin
TFrmChat(WinList.Items[Count]).Free;//释放指定窗口
WinList.Delete(Count);//删除列表中的值
end;
end;
end;每个frmChat窗口最好有独立的ClientSocket,独立建 立 通信
frmChatClose事件发生时加入DeleteWindow(Caption);//当前窗口ICQNumber号码
myform[i]:=TFormchat.create(nil);
2.你可在TFORMCHAT中设置一些参数和方法
在myform[i]:=TFormchat.create(nil);
:
MYFORM[i].SHOW;
之间进行调用来实现双方对话建立.
窗体关闭会激发OnClose事件.
它有TLIST在处理窗体列表时是十分合适的,建立采纳.
你们都是高手,很希望和你们成为朋友。
很希望在以后的学习中获得你们的帮助。
与我联系:Email:[email protected] OICQ:7760126