定制Delphi應(yīng)用程序的系統(tǒng)菜單
發(fā)表時間:2024-02-20 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]我們使用Delphi編制應(yīng)用程序,編譯運(yùn)行后,在主界面的左上角出現(xiàn)一小圖標(biāo),用鼠標(biāo)單擊此圖標(biāo),會 出現(xiàn)一下拉式菜單,這就是系統(tǒng)菜單。系統(tǒng)菜單包括[還原]、[移動]、[大小]、[最小化]、[最大化]和[關(guān) 閉]六項。系統(tǒng)菜單是Delphi自動給每個應(yīng)用程序加上的,不用特意設(shè)計。但在我們的應(yīng)用程序中,...
我們使用Delphi編制應(yīng)用程序,編譯運(yùn)行后,在主界面的左上角出現(xiàn)一小圖標(biāo),用鼠標(biāo)單擊此圖標(biāo),會
出現(xiàn)一下拉式菜單,這就是系統(tǒng)菜單。系統(tǒng)菜單包括[還原]、[移動]、[大小]、[最小化]、[最大化]和[關(guān)
閉]六項。系統(tǒng)菜單是Delphi自動給每個應(yīng)用程序加上的,不用特意設(shè)計。但在我們的應(yīng)用程序中,有時為達(dá)
到一定目的,不希望在主界面上有主菜單存在,這時就可以在系統(tǒng)菜單上做點文章,將自己的菜單選項加入
到系統(tǒng)菜單中,以實現(xiàn)主界面的整潔。
下面是具體的實現(xiàn)方法。例如,我們要將[新建]和[保存]兩選項加入到系統(tǒng)菜單中。先將一PopupMenu組
件加入表單,雙擊此組件進(jìn)入PopupMenu設(shè)計器,設(shè)置[新建]和[保存]菜單項,后單擊表單空白處,再選中
Objector Inspector的Event選項卡,雙擊OnCreate事件,進(jìn)入單元窗口,編寫如下代碼:
Procedure Tform1,FormCreate(Sender:TObject);
Begin
With PopupMenul do
For I:=1 do
AppendMenu(getsystemmenu(self,handle,false),mf-popup,items[I],handle,pchar(items[I],caption));
在變量中添加:Var I:Integer;
編譯運(yùn)行后就會看到系統(tǒng)菜單中多了[新建]和[保存]兩項。
下面我們來完成系統(tǒng)菜單項的響應(yīng)。在Tform1的類定義中的Public部分插入如下代碼:
Procedure WMSysCommand(var Msg:Tmessage);
message WM-SysCommand;
其中WMSysCommand為用戶定義的響應(yīng)函數(shù)。
Procedure WMSysCommand(var Msg:Tmessage);
Var
Item:Tmenuitem;
Begin
Inherited;
Item:=popupmenu1.Finditem(msg.wparam,fkcommand);
If not(item=nil) then
Item.click;
End
這樣,系統(tǒng)菜單項就可以調(diào)用原有菜單項的click函數(shù)。