在 Delphi 中,當一個表單 (Form) 被建立時,會依序觸發以下事件:
Constructor (Create):
在這個階段,表單的物件會被建立,但視窗還沒有初始化。
如果使用的是 TForm.Create(nil),此時還沒有分配 Parent,也沒有顯示。
CreateWnd:
建立表單的 Windows 視窗句柄 (Handle)。
此時可以進行與視窗句柄相關的操作,例如 API 呼叫。
Loaded:
當表單是從 DFM (表單文件) 加載時會觸發。
所有的組件屬性和子組件都已經被初始化。
適合在這裡進行一些屬性設定或初始化動作。
OnCreate (或 FormCreate 事件):
當表單完成建立時觸發。
通常用於初始化變數、設定控制項屬性或載入資料。
OnShow:
當表單即將顯示在螢幕上時觸發。
表單已經可見,但還沒有繪製完全。
適合用於需要在顯示時更新畫面的操作,例如 UI 資料刷新。
OnActivate:
當表單獲得焦點 (成為最上層視窗) 時觸發。
每次表單被切換回來時都會觸發,不只是第一次顯示時。
OnPaint:
當表單需要重繪時觸發。
一般用於自訂繪圖邏輯,例如畫布 (Canvas) 操作。
OnResize (可選,視情況而定):
當表單大小改變時觸發。
可用於調整內部控制項的佈局。
當表單關閉或釋放時,事件順序如下:
OnCloseQuery:
在關閉前詢問是否允許關閉 (CanClose 參數)。
可用於彈出確認視窗或檢查條件。
OnClose:
當表單正在關閉時觸發。
可透過 Action 參數決定是隱藏還是釋放表單。
OnHide:
當表單從螢幕上消失時觸發。
OnDestroy (或 FormDestroy 事件):
在表單物件被釋放前觸發。
通常用於釋放資源、清理記憶體或結束程序。
Destructor (Destroy):
最後的資源釋放動作,然後表單物件從記憶體中移除。
From Char-GPT