1. 程式人生 > 其它 >Delphi第十天學習筆記

Delphi第十天學習筆記

窗體的建立

  • 在.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實現

第二種方法:使用Override關鍵字標識