诚恳请教窗体的动态创建问题(急,急,急)!!!!(分全送)(15分)

  • 主题发起人 主题发起人 wxb761014
  • 开始时间 开始时间
W

wxb761014

Unregistered / Unconfirmed
GUEST, unregistred user!
我有个程序有十三个窗体,如果都自动创建,程序运行到某个窗体时会丢失窗体
上的控件,每次不同。所以,我想使用动态创建,即使用new进行创建。但本人
C++水平有限,程序总是出错。请问如何使用动态创建窗体,请懂CB与c++的高
手帮忙,谁有这方面的例子与经验,还请指教。
 
MyForm=TMyForm->Create(Application);
MyForm->Show;
 
各位大虾帮帮忙吧!!!!
我估计就是一层窗户纸,直待高手来捅破。
发表一下意见也好。先行谢过!!
 
>>程序运行到某个窗体时会丢失窗体上的控件
怎么可能????
 
.dpr:
delete:
application.createform(tfrom,form);

.pas:
add when needed
application.createform(tform,form);
procedure tform.onclese;
begin
action:=cafree;
end;
 
form.show; (add)
 
agree cakk
我就不相信会有这种怪事!
把源码贴出来看看!
 
程序运行到某个窗体时会丢失窗体上的控件
怎么可能????
原因就是运行是窗体太多,导致内存不足,
所以我才想使用动态创建。
谁有这方面的例子,不色赐教!
 
不可能吧???
 
PlayWindow DlgPlayWindow ;(其中PlayWindow是你想要显示的窗口的类)
DlgPlayWindow.Create (IDD_DIALOG1);
IDD_DIALOG1是要显示的窗口的资源名
这样的话就创建了一个窗口(实态的)。
就可以显示该窗口了。
如果是模态的话,用DlgPlayWindow.Domodal()就成了。
DlgPlayWindow.ShowWindow (SW_SHOW);
 
如:上一个form 为mainform,要打开的为form1
try
application.createform(tfrom1,form1);
mainform.hide;
form1.showmodal;
finally
mainform.show;
form1.free;
end;
 
看VCL的源码就是了
例如inputbox
 
分太少,各位原谅
 
后退
顶部