在 C++Builder 中動態建立控制元件並繼承現有 VCL 類別,是開發靈活 UI 的關鍵技能。本文以繼承 TMemo 為例,示範標準流程與關鍵程式碼模式。
class TMemoEx : public TMemo {
// 新增屬性、方法、事件處理器
// ...
};
extern TMemoEx MemoEx; // 外部宣告 (如有需要)
class TForm1 : public TForm {
public:
TMemoEx* MemoEx; // 指標成員
// ...
};
void __fastcall TForm1::FormShow(TObject* Sender) {
MemoEx = new TMemoEx(this); // 建構函數傳入 Owner (this)
MemoEx->Parent = this; // 設定父視窗,自動顯示於表單
// 進一步設定位置、大小、屬性...
MemoEx->Left = 10;
MemoEx->Top = 10;
MemoEx->Width = 300;
MemoEx->Height = 200;
}
class TDerived : public TBaseVCLextern TDerived DerivedInstance; (視專案結構而定)TDerived* pDerived;pDerived = new TDerived(this); — this 為 Owner,負責釋放pDerived->Parent = this; — 掛載至視覺樹Owner (建構函數參數) 負責記憶體管理;Parent 負責視覺包含與座標系統deleteOnClick = ...),無法用 Object Inspector__published 區段以支援屬性編輯器與串流掌握此模式,即可在 C++Builder 中靈活構建動態、可擴充的使用者介面。