第 19 章 Delphi 自定義元件開發
Delphi 不僅支援可視化元件拖放建立應用,更提供開發專屬元件的完整框架。本章雙重目標:教導自定義元件開發,並使元件融入 Delphi 環境成為有機一環。
19.1 Delphi 元件原理
19.1.1 什麼是元件
從三個維度理解:
- 功能定義:調色盤選擇、表單設計器操作、代碼編輯器互動的元素。編寫者視角為代碼中的物件。
- 技術定義:繼承自
TComponent 的任何物件。TComponent 定義最基本行為(調色盤顯示、設計器編輯),具體功能由開發者實作。
- 編寫者定義:能插入 Delphi 環境的任何代碼元素。複雜度不限,只要符合元件框架即可。本章闡述框架與方法,不盡列所有元件類型。
19.1.2 編寫元件與使用元件的三大差異
- 非可視化開發:純代碼編寫,無拖放設計器。但可使用代碼編輯器、整合除錯、物件瀏覽等 IDE 功能。
- 需更深物件知識:建立新類型、繼承現有元件、增加屬性方法、存取
protected 介面、呼叫祖先方法。使用者僅設定屬性與撰寫事件處理程序。
- 遵循更多規範:命名慣例、使用者期望行為(隨時可做任何事)。熟練使用內建元件是前提,預先遵循規範非難事。
19.1.3 建立元件流程總覽
- 建立包含新元件的單元
- 從現有元件類型繼承得到新類型
- 增加屬性、方法、事件
- 向 Delphi 註冊元件
- 為屬性、方法、事件建立說明文件
完整元件包含四檔:編譯單元 (.DCU)、調色盤位圖 (.DCR)、說明檔 (.HLP)、關鍵字檔 (.KWF)。
19.2 Delphi 元件編程方法
19.2.1 Delphi 元件編程概述
19.2.1.1 Delphi 可視元件類別庫 (VCL)
所有元件屬 VCL 繼承樹一部分。TComponent 為根,提供基礎屬性事件。各分支提供專門功能。建立元件即從樹中現有節點繼承並加入 VCL。
19.2.1.2 建立元件的起點
(詳細分類見下一節)