首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 7 純 VCL 打造 XP 風格可拖曳工具列:CoolBar + ActionBand 完整實作

     編輯:Delphi

前言

Delphi 7 引入 ActionBand 架構 (ActionManager、ActionMainMenuBar、ActionToolBar),配合 TCoolBar 即可在零第三方元件前提下,建構具備 XP 視覺風格、可拖曳排列、自動換行的現代化工具列。本文提供逐步建置指南。

元件架構總覽


TCoolBar (容器,支援條狀拖曳)
  ├─ TActionMainMenuBar (主選單列)
  └─ TPageScroller (工具列捲動容器)
       └─ TActionToolBar (工具按鈕列)
TActionManager (動作集中管理器,連結上述 UI 元件)

逐步建置教學 (9 步驟)

步驟 1~5:放置元件

  1. Win32 頁面 → 放置 TCoolBar 至表單 (命名 CoolBar1)
  2. Additional 頁面 → 放置 TActionMainMenuBar 至 CoolBar1 內部 (命名 ActionMainMenuBar1)
  3. Win32 頁面 → 放置 TPageScroller 至 CoolBar1 內部 (命名 PageScroller1)
  4. Additional 頁面 → 放置 TActionToolBar 至 PageScroller1 內部 (命名 ActionToolBar1)
  5. Additional 頁面 → 放置 TActionManager 至表單 (命名 ActionManager1)

步驟 6:CoolBar 關鍵屬性

  • CoolBar1.AutoSize := True — 自動調整高度容納所有條帶

步驟 7:設定 ActionManager 動作結構

雙擊 ActionManager1.ActionBars 屬性開啟編輯器:

  1. 新增兩個 TActionBarItem (分別對應主選單與工具列)
  2. 第一個 ActionBarItem (主選單):
    • 雙擊 Items 新增 ActionClientItem:Caption='檔案(&F)'
    • 再新增:Caption='編輯(&E)'
    • 在「檔案」下再新增子項目:Caption='新建(&N)'、Caption='開啟(&O)'
    • 可繼續巢狀建立多層選單
  3. 第二個 ActionBarItem (工具列):同理建立按鈕項目

步驟 8:連結 UI 元件與動作條目

  • 選取第一個 ActionBarItem → ActionBar := ActionMainMenuBar1
  • 選取第二個 ActionBarItem → ActionBar := ActionToolBar1

步驟 9:執行測試

按 F9 執行,即可看到:

  • XP 風格主選單與工具列
  • CoolBar 條帶可拖曳重新排序
  • 工具列過長時 PageScroller 自動顯示捲動按鈕
  • 動作事件集中在 ActionManager 撰寫,UI 與邏輯分離

進階客製化技巧

1. 為動作項目指定事件處理

在 ActionManager 編輯器中選取項目,於 Object Inspector Events 頁設定 OnExecute,或直接在程式碼:

procedure TForm1.ActFileNewExecute(Sender: TObject);
begin
  ShowMessage('新建檔案');
end;

2. 圖示與圖片列表

  • 放置 TImageList 連結 ActionManager.Images (小圖示)、LargeImages (大圖示)
  • 動作項目設定 ImageIndex 顯示圖示

3. 動態啟用/停用

ActionManager1.ActionByName('ActFileSave').Enabled := Document.Modified;

4. 捷徑鍵設定

動作項目 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 組合,提供了企業級應用所需的現代化工具列基礎設施:視覺風格一致、使用者可自訂配置、動作邏輯集中管理。無需購買第三方套件,即可交付專業級使用者體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved