之前提介紹過如何編寫一個菜單專家(Menu Wizard),但它有一個不足之處--就是我們所編寫的菜單項只能作為Delphi IDE環境中的“Help”菜單的子項出現。如果我們想在Delphi IDE主菜單中任一位置插入我們自己的菜單項又應該如何做呢?
其實辦法很簡單,只需要編寫一個插件專家(Add-in Wizard),在其構造函數中將菜單插入到Delphi IDE主菜單中,並在其析構函數中析構掉新插入的菜單項。
首先我們要在專家類中定義一些私有成員,用於保存Delphi IDE的主菜單,及我們新創建的菜單項。
FMainMenu: TMainMenu;
FNewMenuItem: TMenuItem;
接下來要做的就是在構造函數中獲得Delphi IDE主菜單對象的實例,創建新菜單項並插入。
//Find Delphi''s main menu
FMainMenu := (BorlandIDEServices as INTAServices) .MainMenu;
//Create new menu item
FNewItem := TMenuItem.Create(Nil);
FNewItem.Caption := ''Add-in Menu'';
FNewItem.OnClick := MenuItemClick;
//Insert new menu item
FMainMenu.Items.Insert(FMainMenu.Items.Count - 1, FNewItem);
最後要在析構函數中釋放掉我們插入的菜單項。
FMainMenu.Items.Remove(FNewItem);
FNewItem.Free;