開發自定義 VCL 組件能將重複 UI 邏輯封裝為可視化設計時元件,提升團隊開發效率。本文針對初學者易踩的「類名/單元命名」、「設計時圖標」、「包專案命名」三大痛點給出標準化流程。
| 項目 | 規則 | 範例 |
|---|---|---|
| 類名 | 以 T 開頭,駝峰式 | TMyComponent |
| 單元檔名 | 去掉 T 前綴 | MyComponent.pas / MyComponent.cpp |
| 包專案檔名 | 與類名一致,含 T | TMyComponent.bpk |
| .dcr 圖標資源檔 | 全大寫類名 | MYCOMPONENT.dcr |
| 資源內部位圖名 | 全大寫類名 | TMYCOMPONENT |
關鍵陷阱:若包專案命名為 MyComponent.bpk(缺 T),編譯輸出的 .bpl 會覆蓋同名單元源檔,導致源碼丟失。
File → New → Component Resource File (.dcr)。Resource → Bitmap,設定 24×24 像素、256 色。Bitmap1 重命名為 全大寫類名(如 TMYCOMPONENT)。MYCOMPONENT.dcr),置於單元同目錄。Component → Install Component 安裝,工具箱即顯示自定義圖標。Component → New Component,祖先類選 TComponent / TGraphicControl 等,類名填 TMyComponent,單元名自動生成 MyComponent。__published 發佈屬性/事件,protected 覆寫 Paint 等)。Component → Install Component → Into new package:MyComponent.cpp(含路徑)TMyComponent.bpk(含路徑,**必須含 T**)__published 區段,且型別為 VCL 支援型別(String, Color, Font 等)。Paint 中避免耗時操作;Constructor 僅初始化,複雜資源延遲至 Loaded 或運行時建立。遵循上述命名與圖標規範,可讓自定義組件在團隊專案中長期穩定複用,避免「找不到圖標、包名衝突、源碼被覆蓋」等低級錯誤。