昨天敲了半天才出來的,想組成一個系列.供新手學習一下!(雖說我也是新手^_^)
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);
var
MyButton : TButton;
begin
MyButton := TButton.Create(self);
MyButton.Parent := self;
//告訴創建方法在Form1中顯示MyButton
MyButton.Caption := '測試一';
MyButton.OnClick := MyButtonClick;
MyButton.Show;
end;
procedure TForm1.MyButtonClick(sender:TObject);
begin
Application.MessageBox(PAnsiChar(TButton(sender).Caption)
,'Test Component');
TButton(sender).Caption := '測試二';
end;
initialization {可選的初始化部分}
//
finalization {結束部分}
//
end. {End結束符}
6.Sender參數:
看上面程序代碼發現事件處理程序的參數中,至少含有一個參數Sender,它代表觸發事件處理程序的組件,有了Sender參數,可以使多個組件共用相同的事件處理程序.
7.Self參數:
Self是指所編的程序范圍是在哪一個類中,Delphi中大都在窗體范圍內編程,因此,Self即指窗體,如果在編寫一個類或是一個組件,則Self指該類或該組件.我們在過程和函數的聲明中可以看出Self是代表哪個組件,即Self代表"."號之前的組件.另外應注意,Self只能用在類方法中,而不能用在過程或函數中.如下列是錯誤的: