1. ShowModal方法
TForm1 *Form=new TForm1(Application);
Form->ShowModal();
delete Form;
Form=NULL;
2. Show方法
TForm1 *Form=new TForm1(Application);
Form->Show();
在TForm1的OnClose事件中
设置Action=caFree;
就可以了,不需要delete的。
3.对于MDICHILD窗口不用显示删除,程序在结束时会自动删除。
VCL说明
以下信息来自pazee (耙子)
窗口用单纯的close是不能释放窗口的, 很多时候我们不写 delete xxx 来释放,而是在TForm::OnClose的事件里面写上 Action= caFree; 来实现在关闭窗口的同时自动释放。 这个用法一般都用在 非模态窗口,因为这个时候窗口的生命周期不好控制,比如我们用xxx->Show(); 出来的窗口(MDI尤其这样) 为了说明它的确可以释放,我们看看VCL源代码 TForm继承自TCustomForm, procedure TCustomForm.CloseModal; var CloseAction: TCloseAction; begin try CloseAction := caNone; // 初始化Action 为csNone; if CloseQuery the