作者網(wǎng)站:http://asp.itdrp.com/hottey
昨天敲了半天才出來(lái)的,想組成一個(gè)系列.供新手學(xué)習一下!(雖說(shuō)我也是新手^_^)
Delphi單元文件
1.庫單元文件頭:其中聲明了庫單元的名字.
2.Interface部分:
由保留字interface開(kāi)始,結束于保留字implementation,它用來(lái)聲明引用的單元,常量,數
據類(lèi)型,變量,過(guò)程和函數.在Interface部分聲明的變量,常量,數據類(lèi)型,過(guò)程,函數都可以
供外部引用,對整個(gè)程序而言是共有的.也就是說(shuō),對于所有引用該單元的單元來(lái)說(shuō),這些聲
明都是可見(jiàn)和可訪(fǎng)問(wèn)的.
在Interface部分,只需寫(xiě)出過(guò)程和函數的首部,具體的定義是在下面的implementation部
分給出的.
Interface部分又可分為多個(gè)可選部分,分別為單元引入部分(uses),常量說(shuō)明部分,類(lèi)型
說(shuō)明部分,變量說(shuō)明部分,過(guò)程和函數聲明部分.
3.Implementation部分:
Implementation部分分為兩部分.一部分是聲明部分,包括單元引用,常量,類(lèi)型,變量,過(guò)
程和函數的聲明,這一點(diǎn)和Interface部分相似.
區別有兩點(diǎn):
(1):在Implementation部分聲明的只對本單元是公共的,可見(jiàn)的,其他單元即使引用了該
單元,也不能訪(fǎng)問(wèn)它們.
(2):在Implementation部分聲明的過(guò)程和函數,不需要遵循先聲明后定義的規則,而可以
直接寫(xiě)出過(guò)程和函數的定義.另一部分是在Interface部分聲明的過(guò)程和函數的定義.
4.Initialization部分:
用于初始化該庫單元,此處的代碼最先執行.如果多個(gè)庫單元中包含Initialization部分
,那么它們的執行順序就和Program的uses部分引用單元的出現順序是一致的.
5.Finalization部分:
通常用于釋放Initialization部分分配的資源.如果多個(gè)庫單元中包含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 {實(shí)現部分}
//uses
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
MyButton : TButton;
begin
MyButton := TButton.Create(self);
MyButton.Parent := self;
//告訴創(chuàng )建方法在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參數:
看上面程序代碼發(fā)現事件處理程序的參數中,至少含有一個(gè)參數Sender,它代表觸發(fā)事件
處理程序的組件,有了Sender參數,可以使多個(gè)組件共用相同的事件處理程序.
7.Self參數:
Self是指所編的程序范圍是在哪一個(gè)類(lèi)中,Delphi中大都在窗體范圍內編程,因此,Self即
指窗體,如果在編寫(xiě)一個(gè)類(lèi)或是一個(gè)組件,則Self指該類(lèi)或該組件.我們在過(guò)程和函數的聲明
中可以看出Self是代表哪個(gè)組件,即Self代表"."號之前的組件.另外應注意,Self只能用在
類(lèi)方法中,而不能用在過(guò)程或函數中.如下列是錯誤的:
Function a1(B:Integer):Integer;
begin
...
Button := TButton.Create(self);
...
end;
8.Parent和Owner的區別:
(1):Parent屬性是指組件的包容器,組件只能在此范圍內顯示和移動(dòng).
(2):Owner屬性是指組件的所有者,它負責組件的創(chuàng )建和釋放.Create方法應帶有表示組件
所有者的參數.
(3):它們都是運行階段的屬性,只能通過(guò)代碼設置.
聯(lián)系客服