窗口切换(100分)

  • 主题发起人 主题发起人 sunny_sky
  • 开始时间 开始时间
S

sunny_sky

Unregistered / Unconfirmed
GUEST, unregistred user!
本人采用单文档界面做的程序。由一个窗口切换到另一个窗口,使用的代码是
main:=Tmain.Create(self);
main.Showmodal;
close;(切换到main窗口,同时关闭本窗口)
但为什么本窗口仍然没有关闭,只是隐藏在main窗口后面。如何才能真正关闭他呢?
 
在本窗口的onclose中写入:
procedure Tmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;


就OK了
 
showModal是阻塞式的,必须等到main关闭(close)之后才会返回。
所以,你应该在这样
main:=tmain.create(self);
self.hide;
main.showmodal;
main.free;
self.show;
 
>>真正关闭他呢?
默认关闭就是隐藏的,如果你想真正关闭它那么就Free它了,
但是主窗体Free了以后程序就终止了,所以主窗体只能hide.
 
要真正关闭的话,就用commandor说cafree,这个是最彻底的关闭兼施放所占资源,不过用showmodal好像不太合适吧,我觉得最好还是用show,这样用鼠标键盘都能切换
 
后退
顶部