程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi5的單元文件

Delphi5的單元文件

編輯:Delphi

單元文件是Delphi程序中最重要的文件,它包含了程序中最主要的源代碼,無論是窗體和組件的事件處理過程或單獨的源代碼都保存在單元文件中。對於初學者來說,Delphi的單元文件比較復雜。這裡將對Delphi5的單元文件進行介紹。

單元文件分為有窗體文件和無窗體文件兩種。每當用戶在項目中新建一個窗體,例如使用“File|New Form”或加速按鈕創建一個新窗體,Delphi就會自動創建一個相應的單元文件。如果用戶需要一個無窗體的單元文件,則應該使用“File|New Unit”菜單命令或在項目管理器中添加一個單元文件。可以說每個窗體對應著一個單元,反過來說則不一定成立。

創建一個新的應用程序時,程序只有一個單元文件Unit1和一個相應的窗體Form1。下面是一個典型的帶窗體的單元文件結構:

unit Unit1; //單元名
interface //接口部分
uses //用來申明本單元內訪問到的各單元
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, //標准單元
Unit2,Unit3; //用戶自定義的單元
type TForm1 = class(TForm) //申明一個新窗體類
Label1: TLabel; //窗體上的組件被申明為新類的對象
Button1: TButton;
ScrollBar1: TScrollBar;
RadioButton1: TRadioButton;
ComboBox1: TComboBox;

procedure Button1Click(Sender: TObject); //所有的事件也被申明為新類的方法
procedure ComboBox1Change(Sender: TObject);
procedure Label1Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);

private //私有申明
{ Private declarations } 

public //公共申明
{ Public declarations }
end;
var
Form1: TForm1; //申明一個窗體對象

implementation //實現部分

Uses
Unit4;

{$R *.DFM}

end.

在interface(接口部分)起始處的Uses子句指出本單元用到的各單元,其中有系統的標准單元,我們也可以添加自定義的單元。然後定義了一個新的窗體類Tform1,窗體上所有的組件都被申明為新類中的一個對象,而且是Published類型的。所有的事件處理過程也被申明為Published類型,這樣就能在設計階段對組件的屬性進行修改或改變處理事件。然後申明了一個新窗體類的窗體對象,該對象名即窗體的Name屬性。

implementation(實現部分)包含了程序的執行代碼和其它的隱含申明。

不同單元之間的引用可以使用Uses語句。例如,如果Unit1中需要引用Unit2中的變量和對象,可以在Unit1的interface部分的Uses語句中添加單元名Unit2。但是有一點需要注意的是,Delphi中不允許循環引用。所以我們不能在Unit2的interface部分的Uses語句中加入對Unit1的引用。如果Unit2中確實需要引用Unit1中的變量或對象,我們該怎麼辦呢?我們可以在Unit2的implementation(實現部分)手工添加Uses語句進行申明:

implementation
Uses
Unit1;

interface(接口部分)可以申明一些不同的元素,包括過程、函數、全局變量和數據類型。當申明一個新類並把它放進單元時,可以寫入單元的interface部分內,這被稱為類的接口(也就是它的申明),也可以寫入單元的implementation部分。變量不同的申明具有不同的作用域。變量只有在它的作用域內才有意義。

在定義例程事件或過程內申明的變量,只能在本過程中使用。當程序執行定義該變量的例程時會分配內存給該變量,一旦例程終止,內存會自動釋放。

在implementation部分申明的變量,只能在本單元使用,而不能在單元外使用。

在interface部分申明的變量,它的作用域將擴展到使用Uses語句申明本單元的其它單元中。例如,如果Unit2中使用Uses申明引用Unit1,那麼Unit2中便可以使用Unit1中在interface部分任何申明的變量。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved