天天看點

Delphi單元檔案詳解

Delphi單元檔案詳解

1.庫單元檔案頭:

其中聲明了庫單元的名字.

2.Interface部分:

由保留字interface開始,結束于保留字implementation,它用來聲明引用的單元,常量,資料類型,變量,過程和函數.在Interface部分聲明的變量,常量,資料類型,過程,函數都可以供外部引用,對整個程式而言是共有的.也就是說,對于所有引用該單元的單元來說,這些聲明都是可見和可通路的.在Interface部分,隻需寫出過程和函數的首部,具體的定義是在下面的implementation部分給出的.

Interface部分又可分為多個可選部分,分别為單元引入部分(uses),常量說明部分,類型說明部分,變量說明部分,過程和函數聲明部分.

3.Implementation部分:

Implementation部分分為兩部分.一部分是聲明部分,包括單元引用,常量,類型,變量,過程和函數的聲明,這一點和Interface部分相似.

差別有兩點:

(1):在Implementation部分聲明的隻對本單元是公共的,可見的,其他單元即使引用了該單元,也不能通路它們.

(2):在Implementation部分聲明的過程和函數,不需要遵循先聲明後定義的規則,而可以直接寫出過程和函數的定義.另一部分是在Interface部分聲明的過程和函數的定義.

4.Initialization部分:

用于初始化該庫單元,此處的代碼最先執行.如果多個庫單元中包含Initialization部分,那麼它們的執行順序就和Program的uses部分引用單元的出現順序是一緻的.

5.Finalization部分:

通常用于釋放Initialization部分配置設定的資源.如果多個庫單元中包含Finalization部分,其執行順序和Initialization部分正好相反.

unit MainFrm; {庫單元檔案頭}

interface {接口部分}

uses

Windows, Forms, StdCtrls;

type

TForm1 = class(TForm)

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

procedure MyButtonClick(sender:TObject);

{ Public declarations }

end;

var

Form1: TForm1;

implementation {實作部分}

//uses

{$R *.dfm} {資源檔案}

procedure TForm1.FormCreate(Sender: TObject);

begin

procedure TForm1.MyButtonClick(sender:TObject);

initialization {可選的初始化部分}

//

finalization {結束部分}

end. {End結束符}

6.Sender參數:

看上面程式代碼發現事件處理程式的參數中,至少含有一個參數Sender,它代表觸發事件處理程式的元件,有了Sender參數,可以使多個元件共用相同的事件處理程式.

7.Self參數:

Self是指所編的程式範圍是在哪一個類中,Delphi中大都在窗體範圍内程式設計,是以,Self即指窗體,如果在編寫一個類或是一個元件,則Self指該類或該元件.我們在過程和函數的聲明中可以看出Self是代表哪個元件,即Self代表"."号之前的元件.另外應注意,Self隻能用在類方法中,而不能用在過程或函數中.如下列是錯誤的:

Function a1(B:Integer):Integer;

...

Button := TButton.Create(self);

8.Parent和Owner的差別:

(1):Parent屬性是指元件的包容器,元件隻能在此範圍内顯示和移動.

(2):Owner屬性是指元件的所有者,它負責元件的建立和釋放.Create方法應帶有表示元件所有者的參數.

(3):它們都是運作階段的屬性,隻能通過代碼設定.

繼續閱讀