form1 form2 属于那种现调用现生成的窗体(本人很菜,不会描述,见笑).
form1上有个按钮 点了之后调用出form2 并把form1窗体上的某些数据传送到form2上
我是这么写的
form1.close;
form2:=TForm2.create(nil);
try
............
{把form1上的数据传给form2}
................
Form2.showmodal;
finally
freeandnil(form2)
end;
结果都很好,就是有一个问题。
form2出来了 form1却没有关闭
只有把form2 关了 form1才关
这是怎么回事啊 有什么解决办法吗 让 form2打开的同时 把form1关了 。
form1上有个按钮 点了之后调用出form2 并把form1窗体上的某些数据传送到form2上
我是这么写的
form1.close;
form2:=TForm2.create(nil);
try
............
{把form1上的数据传给form2}
................
Form2.showmodal;
finally
freeandnil(form2)
end;
结果都很好,就是有一个问题。
form2出来了 form1却没有关闭
只有把form2 关了 form1才关
这是怎么回事啊 有什么解决办法吗 让 form2打开的同时 把form1关了 。
form1.close;
form2:=TForm2.create(nil);
try
............
{把form1上的数据传给form2}
form1.free;//释放看看
................
Form2.showmodal;
finally
freeandnil(form2)
end;
to 1楼 你的办法不错 可是当我把FORM2关了的时候,会出现错误
说明:FORM1 FORM2都可以通过主窗体上的按钮调用 (假设为BUTTON1 BUTTON2)
FROM1呢又可以生成FORM2 (如问题所说)
BUTTON1的代码为 FORM1调用FORM2后,按一楼所说,会出现错误 如下
Frm_Plan:=TFrm_Plan.Create(nil);
try
Frm_Plan.ShowModal;----------------------指向这一行
finally
freeandnil(Frm_Plan);
end;
begin
..进行你所说的传送数据
ShowModal;
Destroy;
end;
if Form2=nil then
Form2:=TForm2.Create(self);
{输入你需要传递的数据(代码)}
Form2.ShowModal;
Form2关闭需要释放
Form2Close中
Active:=cafree;Form2:=nil;
即可。