1.4 使用非可視部件
上一節(jié)介紹的各種部件,在設(shè)計和運行時的形式是一樣的。本節(jié)所介紹的部件,在運行時被隱蔽地嵌入到窗口中,它們本身并不做任何事情,必須被用戶的程序所支持才能發(fā)生作用。因為部件的設(shè)計形狀和運行狀態(tài)并不相關(guān),所以,這種部件在設(shè)計窗體中的位置無關(guān)緊要,可以放在窗體上不影響其它可視部件的任何位置。這種部件,稱之為非可視化部件。
首先,介紹在Standard頁上的重要部件主菜單MainMenu和彈出式菜單PopupMenu的詳細用法。
1.4.1 使用菜單部件
菜單部件含有內(nèi)置的交互設(shè)計器。在設(shè)計菜單時,可以用菜單設(shè)計器Menu Designer進行工作。
應用程序的菜單有兩種形式:MainMenu是一般的Windows用戶界面必須的部件,它顯示在固定的位置,一般用鍵盤和鼠標左鍵來激活菜單的功能項;PopupMenu是彈出式菜單,例如,我們前文的小例程在對齊部件時用到的Delphi菜單,就是彈出式的。一般以鼠標的右鍵或其它快捷鍵來激活菜單;菜單的位置是在屏幕上“浮動”的,根據(jù)鼠標的當前位置決定。
以下,我們將MainMenu和PopupMenu統(tǒng)稱為菜單。
1.4.1.1 進入菜單設(shè)計器Menu Designer
創(chuàng)建菜單時,首先要在窗體中放置一個菜單對象。然后調(diào)入Menu Designer進行菜單的詳細設(shè)定。用兩種方式可以進入Menu Designer:選中菜單部件,點動屬性中Items省略按鈕;或在菜單部件上雙擊左鍵,就會出現(xiàn)Menu Designer。
1.4.1.2 創(chuàng)建菜單的各個項目
進入Menu Designer,會發(fā)現(xiàn)在菜單的第一項位置上有加亮顯示。輸入頂層菜單項(實際上是在設(shè)定頂層菜單項的Caption屬性)并回車。一項菜單條設(shè)置完后,加亮顯示的位置被移至下拉菜單的下一項,同時,主菜單頂層上會出現(xiàn)虛線框,指示出下一個頂層菜單項的位置。要包含一個隔離條,可以鍵入短劃橫“-”即減號并回車。逐步輸入菜單的各項,用鼠標左鍵切換到下一個頂層菜單,直到菜單完成。
1.4.1.3 設(shè)定加速鍵和熱鍵
您可以設(shè)定加速鍵,與前文的例程相同,只需在輸入時,將“&”放到需要指定為加速鍵的字母前面,該字母將被用下劃線顯示,運行時,按“Alt+加速鍵字母”可以激活該菜單條。設(shè)定熱鍵也是很方便的,只需在Object Inspector中該菜單條的ShortCut屬性值段的下拉菜單中,為它選定一個熱鍵組合即可。在運行時,通過“Ctrl+熱鍵字母”來激活菜單條。加速鍵和熱鍵并不矛盾,您可以同時指定它們。
1.4.1.4 使用Menu Designer的彈出式菜單
Menu Designer中還有一個彈出式菜單,它提供了高頻菜單創(chuàng)建命令,并可以對模板選項進行快速訪問。在菜單設(shè)計器窗口中單擊右鍵,或?qū)⒐鈽送T诓藛卧O(shè)計器上,按Alt-F10,可以調(diào)出Menu Designer的彈出式菜單。使用Menu Designer的彈出式菜單可以向菜單增加菜單項、刪除菜單項等操作,還可以對標準主菜單模板進行增加、刪除、插入等操作。
為菜單編制功能,可以雙擊菜單條,或在特定菜單條的Events頁上,雙擊它響應的事件的值段,Delphi將回到代碼編輯器,光標停在事件對應的事件處理過程中,您可以為菜單編制實現(xiàn)任務的代碼。
如果您已經(jīng)為Speed Bar上的加速按鈕編制了事件處理過程,而需要把相應的菜單項連接到事件處理過程上,則只需在該菜單項的Events頁的OnClick事件后,輸入事件處理過程的名稱即可。這樣單擊菜單項便和按動加速按鈕便實現(xiàn)同樣的功能。
1.4.1.5 創(chuàng)建嵌套菜單
創(chuàng)建嵌套菜單也是重要的手段。Delphi的嵌套菜單風格是嵌套菜單列在它上層菜單的邊上,如圖1.11所示:
創(chuàng)建嵌套菜單,把加亮條移到它的上層菜單條上,按Ctrl+右行鍵,將彈出子菜單,就可以按照同上所述的方法進行創(chuàng)建工作了。
通過拖--放操作,可以實現(xiàn)菜單條的重新定位。用鼠標左鍵按住某一菜單條,移動到菜單的某一位置,釋放左鍵,菜單條即得到重新定位。菜單設(shè)計器允許菜單條在頂層下移動位置,支持菜單條在嵌套菜單中移進、移出,甚至可以將菜單條在各個頂層菜單下屬的菜單間移動與定位。
相關(guān)推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |