在主窗体(form_main)上有如下菜单:
菜单1 菜单2
菜单1_1
......要求单击"菜单1_1"弹出form1(1) 如果在"菜单1_1"的事件过程中写如下代码
form1.Show
能正常显示form1(2) 如果在"菜单1_1"的事件过程中写如下代码
form1:=Tform1.create(nil);
form1.Show
则提示错误.请问为什么?
我看别人写的代码不直接用form1.Show,而是有form1:=Tform1.create(nil);或form1:=Tform1.create(application);
请问用哪一种形式好,如何正确书写代码?
谢谢啦!!!
菜单1 菜单2
菜单1_1
......要求单击"菜单1_1"弹出form1(1) 如果在"菜单1_1"的事件过程中写如下代码
form1.Show
能正常显示form1(2) 如果在"菜单1_1"的事件过程中写如下代码
form1:=Tform1.create(nil);
form1.Show
则提示错误.请问为什么?
我看别人写的代码不直接用form1.Show,而是有form1:=Tform1.create(nil);或form1:=Tform1.create(application);
请问用哪一种形式好,如何正确书写代码?
谢谢啦!!!
if not assing(Aform) then aform:=tform.create(application);
aform.show;
Tform1.create(nil);或form1:=Tform1.create(application);的区别在于窗体的所有者,如果是nil那么窗体的销毁就要有你来负责
就要用 建一个窗体实例
form1:=Tform1.create(application);你可能已经在别的地方创过这个窗体,,
楼上的方法,,,是先判断窗体是不是已经存在
这样好一点
里面是不是已经自己动创建的你的窗体
form1:=Tform1.create(self);
form1.Show;
form1.free;
end
begin
form1:=Tform1.create(self);
form1.Show;
end
改成
var
tmpform:Tform1;
begin
tmpform:=Tform1.create(self);
tmpform.Show;
end就要以随便怎么点都不会出问题了。