Delphi Menu Designer(菜單設計器)之三


彈出菜單(快捷菜單)

繼續菜單的討論,在Delphi中,可以和主菜單一樣地建立彈出菜單。Delphi的優點是可通過組建的PopupMenu屬性把特殊彈出菜單賦給組建。當鼠標放在組件上時,點擊右鍵,就會自動彈出菜單。彈出菜單的事件處理程序和主菜單一樣。

文本編輯器的共同特點就是把Cut、Copy和Paste操作放到了快捷菜單上,下面將要為ScratchPad程序的Memo組建增加這樣的功能。要建立彈出菜單,復制部分主菜單,遵循以下步驟:

1、從組件面板中選擇PopupMenu組件,並放置到窗體上。

2、改變其Name屬性為MemoPopup

3、雙擊PopupMenu圖標運行Menu Designer。

4、點擊右鍵彈出Menu Designer的快捷菜單,從快捷菜單中選擇“Select Menu”。出現的對話框顯示出應用程序中可以獲得的菜單,選擇MainMenu點擊OK。如下圖:

0167

5、點擊Edit菜單,點擊Cut菜單項,按住Shift鍵點擊Paste菜單項。選中Cut、Copy和Paste三項。

6、復制選擇的項到剪貼板,從Delphi主菜單中選擇【Edit | Copy】或者Ctrl + C

7、在從Menu Designer的快捷菜單中選擇“Select Menu”,這次選擇MemoPopup並點擊OK。Menu Designer彈出空彈出菜單。

8、從Delphi主菜單選擇【Edit | Paste】或Ctrl + V,Cut、Copy和Paste菜單項都插入到彈出菜單中,如下:

0168

在做幾件事情就完成了,更改新的菜單項的Name屬性:

1、對於Cut菜單項,Name屬性改為PopupCut

2、對於Copy菜單項,Name屬性改為PopupCopy

3、對於Paste菜單項,Name屬性改為PopupPaste

最后步驟就是為彈出菜單寫事件處理程序,主菜單中Cut、Copy和Paste事件處理已經寫好了,重復寫是多余的,還記得以前建立多個組件共享同一個事件處理程序嗎?下面我來逐步實現:

1、在Cut菜單上點擊。

2、在Object Inspector中點擊Event標簽。

3、在OnClick事件的Value欄中點擊下列按鈕,顯示出當前已有事件處理程序清單。

4、從清單中選擇EditCutClick。當點擊彈出菜單的Cut時,Edit | Cut將被調用。

0169

5、對彈出菜單中的Copy菜單項的OnClick事件設置為EditCopyClick,Paste菜單項的OnClick事件設置為EditPasteClick

6、在主窗口上點擊Memo組件,改變其PopupMenu屬性為MemoPopup

image

現在程序已經完成了,再次運行測試效果,如下:

0170

 

創建並保存菜單模板

delphi提供了幾個菜單模板,可以插入到主菜單和彈出菜單中。也可以在程序創建和保存自己的模板為將來使用。首先啟動Menu Designer,建立菜單。

創建了菜單后,從Menu Designer的快捷菜單選擇“Save As Template…”,顯示Save Template對話框。給菜單起一個有意義的名稱,點擊OK按鈕,菜單作為模板保存。如下:

0171

要插入菜單,和以前一樣從Menu Designer中選擇“Insert From Template…”,在Insert Template對話框中選擇即可。如下:

0172

要刪除菜單模板,從Menu Designer中選擇“Delete Template…”,在Delete Template對話框選擇要刪除的模板名稱,點擊OK即可。如下:

0173

Menu Designer是強有力的工具,特別由於輸入菜單的能力,它使菜單的建立和編輯變得容易而有趣。

以上代碼均在Delphi 7中測試通過,本節示例代碼下載:ScratchPad(菜單設計器之三).rar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM