單元檔案(.pas)承載了程式的主要原始碼,無論是表單事件處理邏輯、自訂類別、共用函數,皆定義於此。理解其結構與引用機制,是模組化開發的關鍵。
每個表單對應一個單元,但單元不一定有表單。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Unit2, Unit3; // 介面區引用:公開可見
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
// 元件宣告為 Published 欄位,設計時可在物件檢視器編輯
procedure Button1Click(Sender: TObject); // 事件處理程序宣告為方法
private
{ 私有宣告:僅本單元可見 }
public
{ 公開宣告:其他引用本單元的模組可見 }
end;
var
Form1: TForm1; // 全域表單實例變數
implementation
uses
Unit4; // 實作區引用:私有,打破循環引用關鍵
{$R *.DFM} // 連結表單資源檔
end.
uses 子句引用的單元,其公開宣告將對本單元可見,並傳遞給引用本單元的其他單元(傳遞性)uses 子句引用的單元,僅供本單元實作碼使用,不傳遞給引用本單元的模組{$R *.DFM} 指令將編譯期表單資源嵌入執行檔| 宣告位置 | 作用域 | 生命週期 |
|---|---|---|
| 程序/函數內區域變數 | 僅該程序內 | 程序執行期間,隨程序結束釋放 |
| Implementation 區區域變數 | 僅本單元內 | 應用程式執行全期 |
| Interface 區全域變數 | 本單元及所有引用本單元的模組 | 應用程式執行全期 |
善用實作區引用打破循環依賴,將實作細節隱藏於 implementation 區,是建構低耦合、高內聚 Delphi 專案的核心原則。