明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

定制Delphi應(yīng)用程序的系統(tǒ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)用程序中,...
我們使用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ù)。