關于窗體的釋放:Close()方法是將窗體隱藏,即form.hide;
釋放窗體或是控件的標準用法是Form.Free,其實Free方法只是調用了Destroy()方法,在窗體不為nil時進行資源的釋放,但并不將窗體實例置為nil,只有窗體實例沒有創始化之前值才為nil,否則你要顯示的將窗體實例置為nil.
釋放窗體的標準用法是:
1、對于模態窗體
Form1 := TForm.Create(Self);
try
your process
Form1.ShowModal;
finally
Form1.Free;
end;//可以確保資源的釋放,而不會重復創建窗體實例。
2、對于非模態窗體
if not Assigned(Form1) then//窗體實例為nil;
begin
Form1 := TForm1.Create(Self);
Form1.Show;
end;
注意要在窗體的OnClose和OnDestroy事件中分別寫入事件處理代碼。
OnClose:
Action := caFree;
OnDestroy:
Form1 := nil;
//這樣確保form1在釋放后置為nil值,不會重復創建窗體實例
轉載于:https://www.cnblogs.com/bytutu/archive/2012/02/09/2343597.html