窗体创建的问题(100分)

  • 主题发起人 主题发起人 METALLEE
  • 开始时间 开始时间
M

METALLEE

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在动态创建子窗体的方法是:
Form2:=TForm2.Create(Application);
Form2.Show;
再新窗体中处理这两个事件
procedure TForm2.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
Form2:=nil;
end;

从而实现多次创建同一子窗体。但问题随之而来````新创建一个字窗体后原先的子窗体的变量全部被更改了,不受主窗体的控制,也就是说窗体create的过程中内部函数也变了。
大家参考以下OICQ,每次点击不同的好友图标都会弹出同一个发送信息对话框,只是发送人不一样而已,主进程可以控制所有创建的子窗体,且在windows的任务栏和任务管理器中都会显示子窗体的进程。我想知道这样的窗体是如何动态创建的,用delphi如何实现?谢谢~~~
我的OICQ:21953354
 
可以用TLIST么,
mylist:tlist of Tform;
mylist.create;
Form2:=TForm2.Create(Application);
Form2.Show;
mylist.add(Form2);
//mylist.items=....
mylist.free;
 
能说详细写吗?
tlist of Tform;好像是不合法的声明````我对TList了解不多,详细说明一下好吗``谢谢
其实我就是希望创建一个类似数组的窗体。每个窗体界面一样```变量声明也一样但是彼此独立,仅能够与主窗体传递参数。谢谢```
 
在delphi的帮助中查TLIST吧,由例子的
 
太深奥了,不会,学习!
 
with =TForm2.Create(Application)do
begin
try
........
finally
Free;
end;
end;
 
tabList:Tlist ;
。。。。。。
tablist:=Tlist.create;
。。。。。
procedure TFormMain.BtnAddClick(Sender: TObject);
var
newTab:TRZTabSheet;
newframe:Tframe1;
curpage:TRZpagecontrol;
begin
newTab:= TRZTabSheet.Create(Self);
curpage:=PageList.ActivePage.controls[0] as TRZpagecontrol;
newTab.PageControl :=curpage;
newTab.Caption :=' '+inttostr(curpage.pagecount);
curpage.activepage:=newTab;
newframe:=Tframe1.Create(application);
tablist.add(newframe);
newframe.Parent:=newTab;
end;

............
tablist.free
 
有没有方法能够创建一个TForm数组``而且最好是动态数组
 
接受答案了.
 
后退
顶部