delphi打开一个窗口后,如何关闭前一个窗口
窗口名为InvDealResultFrm 类型为fsMDIChild
窗口名为infoFrm 类型为fsNormal
程序要求:
在InvDealResultFrm 中打开窗口infoFrm后,想关闭窗口InvDealResultFrm 。
我在InvDealResultFrm 窗口按钮中这么编写如下程序,但是实际效果为必须等infoFrm窗口关闭后InvDealResultFrm窗口才关闭。
=========================================
infoFrm := TinfoFrm.Create(application);
infoFrm.ShowModal;
infoFrm.Free;
infoFrm:=nil;
InvDealResultFrm.Close;
=========================================
infoFrm := TinfoFrm.Create(application); InvDealResultFrm.hide; //先隐藏 infoFrm.ShowModal; infoFrm.Free; infoFrm:=nil; InvDealResultFrm.Close;//消耗
窗体如果用ShowModal方式显示出来,则这行代码后面的代码是要等到窗体关闭后才执行的
所以要达到你的效果,可以在infoFrm的onshow事件中关闭InvDealResultFrm
也可以用楼上的办法
也可以隐藏
self.hide; //最好是 self.close
infoFrm := TinfoFrm.Create(application);
infoFrm.ShowModal;
infoFrm.Free;
infoFrm:=nil;
你说关闭InvDealResultFrm ,为何要把infoFrm给关了?infoFrm:=nil就是关闭的意思
这样当然是infoFrm关了,InvDealResultFrm 才会关
infoFrm:= TinfoFrm.Create(application);
InvDealResultFrm.Close;
infoFrm.ShowModal;
infoFrm.Free;
infoFrm:=nil;