Delphi 7 引入 ActionBand 架構 (ActionManager、ActionMainMenuBar、ActionToolBar),配合 TCoolBar 即可在零第三方元件前提下,建構具備 XP 視覺風格、可拖曳排列、自動換行的現代化工具列。本文提供逐步建置指南。
TCoolBar (容器,支援條狀拖曳)
├─ TActionMainMenuBar (主選單列)
└─ TPageScroller (工具列捲動容器)
└─ TActionToolBar (工具按鈕列)
TActionManager (動作集中管理器,連結上述 UI 元件)
CoolBar1)ActionMainMenuBar1)PageScroller1)ActionToolBar1)ActionManager1)CoolBar1.AutoSize := True — 自動調整高度容納所有條帶雙擊 ActionManager1.ActionBars 屬性開啟編輯器:
TActionBarItem (分別對應主選單與工具列)Items 新增 ActionClientItem:Caption='檔案(&F)'Caption='編輯(&E)'Caption='新建(&N)'、Caption='開啟(&O)'ActionBarItem → ActionBar := ActionMainMenuBar1ActionBarItem → ActionBar := ActionToolBar1按 F9 執行,即可看到:
在 ActionManager 編輯器中選取項目,於 Object Inspector Events 頁設定 OnExecute,或直接在程式碼:
procedure TForm1.ActFileNewExecute(Sender: TObject);
begin
ShowMessage('新建檔案');
end;
TImageList 連結 ActionManager.Images (小圖示)、LargeImages (大圖示)ImageIndex 顯示圖示ActionManager1.ActionByName('ActFileSave').Enabled := Document.Modified;
動作項目 ShortCut 屬性可設定如 Ctrl+N,自動顯示於選單右側。
| 現象 | 原因 | 解決 |
|---|---|---|
| 工具列不顯示 | ActionToolBar 未放入 PageScroller | 確認父層級:CoolBar → PageScroller → ActionToolBar |
| 選單項目無反應 | ActionBarItem 未連結 ActionBar | 步驟 8 確認 ActionBar 屬性指向正確 UI 元件 |
| 拖曳無效 | CoolBar.AutoSize = False | 設定 AutoSize := True |
| 樣式非 XP 風格 | 專案未啟用主題 | 專案選項 → Application → 勾選 "Enable runtime themes" |
Delphi 7 內建的 ActionBand + CoolBar 組合,提供了企業級應用所需的現代化工具列基礎設施:視覺風格一致、使用者可自訂配置、動作邏輯集中管理。無需購買第三方套件,即可交付專業級使用者體驗。