Delphi第十天學習筆記
阿新 • • 發佈:2021-09-14
窗體的建立
-
在.dproj檔案中新增Application.CreateForm(TFormTest, frmTest);
這種方法建立的視窗只有當程式關閉時才會釋放 -
動態建立
1,如下圖
2,
窗體的銷燬
- 呼叫Destroy等方法
- 在Form的關閉事件OnClose中設定,如下
Destroy和Free以及FreeAndNil、Release
- Destroy:虛方法。直接銷燬物件
- Free:靜態方法。判斷指標是否為Nil,不為Nil則呼叫Destroy,安全性較高,但有產生野指標的風險
- FreeAndNil:一般過程。先將指標重置為Nil,再釋放該指標原來指向的物件所在記憶體
- Release:TCustForm中的方法。等待資源不再使用後才通過Free來釋放資源。
Delphi中的Property關鍵字
-
Property定義了類的屬性,該屬性的值通過Read後的欄位或方法獲取,並由Write後的欄位或方法設定
-
例:定義了一個屬性MyData,它與私有屬性FData相關,通過SetMyData賦值,通過GetMyData取值
-
屬性賦值時會呼叫Write關鍵字後的Setter方法,對輸入值進行處理後才賦值
-
讀屬性值時會自動呼叫Read關鍵字後的Getter方法,獲取並返回處理後的資料
-
屬性沒有被分配記憶體,所以也被稱為‘虛擬欄位’,因此不能作為引用引數傳遞給方法或物件
-
Read和Write可以單獨出現,只有Read時該屬性為只讀屬性,只有Write時該屬性只能被修改不能獲取值
Delphi中的構造器和析構器
構造器Constructor
- 構造器關鍵字:constructor
- 預設構造器名:Create
- 構造器的作用:為類例項分配記憶體並初始化
- 可以用Overload過載多個構造器,建議用Create作為構造器的名字,因為這能隱藏系統預設的構造器
析構器Destructor
- 析構器關鍵字:destructor
- 預設析構器:Destroy
- 析構器的作用:釋放類例項所佔用的記憶體
- 釋放記憶體時應用Free或FreeAndNil方法,而不應該直接呼叫Destroy
類中方法的重寫
- 要求:該方法為虛擬方法,即用關鍵字Virtual標識
第一種方法:使用Inherited
- 使用Inherited可以呼叫父類的方法
- 在重寫程式碼中使用Inherited實現