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 zidingyi {$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只能用在
類方法中,而不能用在過程或函數中.如下列是錯誤的:
Function a1(B:Integer):Integer;
begin
...
Button := TButton.Create(self);
...
end;
8.Parent和Owner的區別:
(1):Parent屬性是指組件的包容器,組件只能在此范圍內顯示和移動.
(2):Owner屬性是指組件的所有者,它負責組件的創建和釋放.Create方法應帶有表示組件所有者的參數.
(3):它們都是運行階段的屬性,只能通過代碼設置.
dpr 為工程文件
dfm 為窗體文件
pas 為單元文件
cfg 配置文件
dof 為項目選項文件(一般沒用)
dcu compiled units文件 ,編譯後的單元文件
res 資源文件
ddp 文件就是Delphi Diagram Portfolio簡寫,是用來保存Code Editor中的Diagram信息的.
一般一個項目要考個別人,只需要 dpr,dfm,pas文件即可,如果有cfg,res也一塊考(後兩個文件很少用到)
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部分正好相反.
1.一個完整的系統一般由很多功能相對獨立的單元模塊組成。
2.單元模塊中可以是類、函數。類和函數配合來實現想要的功能。(具體的代碼裡會用到變量、常量和系統關鍵字)
3.另外,還有界面部份和後端的數據庫部份。
函數一般定義格式:
funciton funName(Var1:string)
begin
//函數內容
end;
類的一般定義格式:
type
TMyObject=class(TOejct)
private
//私有部份
public
//公有部份
end;
如果需要一個完整的 Delphi 程序例子,可以在下面的網址去下載一個:
www.delphifans.com/