?? 004.htm
字號:
</font><p><font face="宋體" lang="ZH-CN"> 以上,我們介紹了</font>Delphi<font face="宋體" lang="ZH-CN">的基本可視部件。讀者可能會發現,在</font>Stardrad<fontface="宋體" lang="ZH-CN">頁最前面的兩個部件</font>MainMenu<font face="宋體"lang="ZH-CN">和</font>PopupMenu<font face="宋體" lang="ZH-CN">還沒有提及。因為這是建立菜單的重要、基本操作,我們將在下一節中做詳細的介紹。另外,在下文中,我們還將介紹比較重要的不可視部件。至于數據庫部件、動態數據交換</font>DDE<fontface="宋體" lang="ZH-CN">部件等,因為在后面章節中有詳盡的用法介紹,此處不贅述。 </p></font><p>1.4 <font face="宋體" lang="ZH-CN">使用非可視部件 </p></font><p><font face="宋體" lang="ZH-CN"> 上一節介紹的各種部件,在設計和運行時的形式是一樣的。本節所介紹的部件,在運行時被隱蔽地嵌入到窗口中,它們本身并不做任何事情,必須被用戶的程序所支持才能發生作用。因為部件的設計形狀和運行狀態并不相關,所以,這種部件在設計窗體中的位置無關緊要,可以放在窗體上不影響其它可視部件的任何位置。這種部件,稱之為非可視化部件。</font></p><p><font face="宋體" lang="ZH-CN">首先,介紹在</font>Standard<font face="宋體"lang="ZH-CN">頁上的重要部件主菜單</font>MainMenu<font face="宋體" lang="ZH-CN">和彈出式菜單</font>PopupMenu<fontface="宋體" lang="ZH-CN">的詳細用法。 </p></font><p>1.4.1 <font face="宋體" lang="ZH-CN">使用菜單部件 </p></font><p><font face="宋體" lang="ZH-CN"> 菜單部件含有內置的交互設計器。在設計菜單時,可以用菜單設計器</font>MenuDesigner<font face="宋體" lang="ZH-CN">進行工作。</font></p><p><font face="宋體" lang="ZH-CN"> 應用程序的菜單有兩種形式:</font>MainMenu<font face="宋體" lang="ZH-CN">是一般的</font>Windows<fontface="宋體" lang="ZH-CN">用戶界面必須的部件,它顯示在固定的位置,一般用鍵盤和鼠標左鍵來激活菜單的功能項;</font>PopupMenu<fontface="宋體" lang="ZH-CN">是彈出式菜單,例如,我們前文的小例程在對齊部件時用到的</font>Delphi<fontface="宋體" lang="ZH-CN">菜單,就是彈出式的。一般以鼠標的右鍵或其它快捷鍵來激活菜單;菜單的位置是在屏幕上“浮動”的,根據鼠標的當前位置決定。</font></p><p><font face="宋體" lang="ZH-CN">以下,我們將</font>MainMenu<font face="宋體"lang="ZH-CN">和</font>PopupMenu<font face="宋體" lang="ZH-CN">統稱為菜單。 </p></font><p>1.4.1.1 <font face="宋體" lang="ZH-CN">進入菜單設計器</font>MenuDesigner </p><p><font face="宋體" lang="ZH-CN"> 創建菜單時,首先要在窗體中放置一個菜單對象。然后調入</font>MenuDesigner<font face="宋體" lang="ZH-CN">進行菜單的詳細設定。用兩種方式可以進入</font>MenuDesigner<font face="宋體" lang="ZH-CN">:選中菜單部件,點動屬性中</font>Items<fontface="宋體" lang="ZH-CN">省略按鈕;或在菜單部件上雙擊左鍵,就會出現</font>MenuDesigner<font face="宋體" lang="ZH-CN">。</font></p><p>1.4.1.2 <font face="宋體" lang="ZH-CN">創建菜單的各個項目 </p></font><p><font face="宋體" lang="ZH-CN"> 進入</font>Menu Designer<font face="宋體" lang="ZH-CN">,會發現在菜單的第一項位置上有加亮顯示。輸入頂層菜單項</font>(<fontface="宋體" lang="ZH-CN">實際上是在設定頂層菜單項的</font>Caption<fontface="宋體" lang="ZH-CN">屬性</font>)<font face="宋體" lang="ZH-CN">并回車。一項菜單條設置完后,加亮顯示的位置被移至下拉菜單的下一項</font>,<fontface="宋體" lang="ZH-CN">同時,主菜單頂層上會出現虛線框,指示出下一個頂層菜單項的位置。要包含一個隔離條,可以鍵入短劃橫“</font>-<fontface="宋體" lang="ZH-CN">”即減號并回車。逐步輸入菜單的各項,用鼠標左鍵切換到下一個頂層菜單,直到菜單完成。 </p></font><p>1.4.1.3 <font face="宋體" lang="ZH-CN">設定加速鍵和熱鍵 </p></font><p><font face="宋體" lang="ZH-CN"> 您可以設定加速鍵,與前文的例程相同,只需在輸入時,將“</font>&<fontface="宋體" lang="ZH-CN">”放到需要指定為加速鍵的字母前面,該字母將被用下劃線顯示,運行時,按“</font>Alt+<fontface="宋體" lang="ZH-CN">加速鍵字母”可以激活該菜單條。設定熱鍵也是很方便的,只需在</font>ObjectInspector<font face="宋體" lang="ZH-CN">中該菜單條的</font>ShortCut<fontface="宋體" lang="ZH-CN">屬性值段的下拉菜單中,為它選定一個熱鍵組合即可。在運行時,通過“</font>Ctrl+<fontface="宋體" lang="ZH-CN">熱鍵字母”來激活菜單條。加速鍵和熱鍵并不矛盾,您可以同時指定它們。 </p></font><p>1.4.1.4 <font face="宋體" lang="ZH-CN">使用</font>Menu Designer<fontface="宋體" lang="ZH-CN">的彈出式菜單 </p></font><p> Menu Designer<font face="宋體"lang="ZH-CN">中還有一個彈出式菜單,它提供了高頻菜單創建命令,并可以對模板選項進行快速訪問。在菜單設計器窗口中單擊右鍵,或將光標停在菜單設計器上,按</font>Alt-F10<fontface="宋體" lang="ZH-CN">,可以調出</font>Menu Designer<font face="宋體"lang="ZH-CN">的彈出式菜單。使用</font>Menu Designer<font face="宋體"lang="ZH-CN">的彈出式菜單可以向菜單增加菜單項、刪除菜單項等操作,還可以對標準主菜單模板進行增加、刪除、插入等操作。</font></p><p><font face="宋體" lang="ZH-CN"> 為菜單編制功能,可以雙擊菜單條,或在特定菜單條的</font>Events<fontface="宋體" lang="ZH-CN">頁上,雙擊它響應的事件的值段,</font>Delphi<fontface="宋體" lang="ZH-CN">將回到代碼編輯器,光標停在事件對應的事件處理過程中,您可以為菜單編制實現任務的代碼。</font></p><p><font face="宋體" lang="ZH-CN"> 如果您已經為</font>Speed Bar<font face="宋體" lang="ZH-CN">上的加速按鈕編制了事件處理過程,而需要把相應的菜單項連接到事件處理過程上,則只需在該菜單項的</font>Events<fontface="宋體" lang="ZH-CN">頁的</font>OnClick<font face="宋體" lang="ZH-CN">事件后,輸入事件處理過程的名稱即可。這樣單擊菜單項便和按動加速按鈕便實現同樣的功能。 </p></font><p>1.4.1.5 <font face="宋體" lang="ZH-CN">創建嵌套菜單 </p></font><p><font face="宋體" lang="ZH-CN"> 創建嵌套菜單也是重要的手段。</font>Delphi<font face="宋體" lang="ZH-CN">的嵌套菜單風格是嵌套菜單列在它上層菜單的邊上,如圖</font>1.11<fontface="宋體" lang="ZH-CN">所示: </p></font><p><font face="宋體" lang="ZH-CN"> 創建嵌套菜單,把加亮條移到它的上層菜單條上,按</font>Ctrl+<fontface="宋體" lang="ZH-CN">右行鍵,將彈出子菜單,就可以按照同上所述的方法進行創建工作了。</font></p><p><font face="宋體" lang="ZH-CN"> 通過拖</font>--<font face="宋體" lang="ZH-CN">放操作,可以實現菜單條的重新定位。用鼠標左鍵按住某一菜單條,移動到菜單的某一位置,釋放左鍵,菜單條即得到重新定位。菜單設計器允許菜單條在頂層下移動位置,支持菜單條在嵌套菜單中移進、移出,甚至可以將菜單條在各個頂層菜單下屬的菜單間移動與定位。</font></p><p>1.4.1.6 <font face="宋體" lang="ZH-CN">給菜單加提示</font>(Hint)</p><p><font face="宋體" lang="ZH-CN"> 在菜單中加提示是很好的習慣。它使得您的用戶在運行菜單功能前,可以對菜單的任務有一個簡略的了解。在菜單條任一項的值段按</font>F1,<fontface="宋體" lang="ZH-CN">可以查閱在線幫助,在幫助的正文中找到</font>OnHint<fontface="宋體" lang="ZH-CN">并查閱它的例程,將</font>DisplayHint<fontface="宋體" lang="ZH-CN">等方法的例程</font>Copy<font face="宋體" lang="ZH-CN">到您的程序中。然后,在菜單條的</font>Hint<fontface="宋體" lang="ZH-CN">屬性中加入提示正文,運行時當用戶將鼠標移到菜單項時,在窗體的底部狀態行中會出現</font>Hint<fontface="宋體" lang="ZH-CN">屬性中的提示信息 </p></font><p>1.4.1.7 <font face="宋體" lang="ZH-CN">菜單的其它屬性簡介 </p></font><p><font face="宋體" lang="ZH-CN"> 菜單還有其它的一些屬性。</font>Enabled<font face="宋體" lang="ZH-CN">屬性決定菜單是否被禁用,這在編程中可以實現一定情況下不允許用戶使用某項菜單。</font>Checked<fontface="宋體" lang="ZH-CN">屬性表征了菜單項的開關情況,當</font>Checked<fontface="宋體" lang="ZH-CN">為</font>True<font face="宋體" lang="ZH-CN">時,菜單條的前面會出現選中標志。</font>Visible<fontface="宋體" lang="ZH-CN">屬性控制菜單隱藏與否。設置這一屬性可以實現多版本的菜單。被隱藏的菜單項以及它的子菜單都是不可見的,或是不可訪問的。</font></p><p> Popup Menu<font face="宋體" lang="ZH-CN">在用</font>MenuDesigner<font face="宋體" lang="ZH-CN">時是完全相同的。只不過它在運行時和主菜單的激活形式有所不同:它是用鼠標的右鍵激活的。彈出式菜單在一定的窗口范圍內激活,所以必須將窗口和彈出式菜單聯系起來。在設計完</font>PopupMenu<fontface="宋體" lang="ZH-CN">后,須在</font>Name<font face="宋體" lang="ZH-CN">屬性中為它命名,然后把這個名稱賦給窗體的</font>PopupMenu<fontface="宋體" lang="ZH-CN">屬性。這樣,窗口會接收右鍵輸入,并激活彈出式對話框。 </p></font><p>1.4.2 <font face="宋體" lang="ZH-CN">使用計時器部件</font>Timer </p><p><font face="宋體" lang="ZH-CN"> 在</font>System<fontface="宋體" lang="ZH-CN">頁上,還有一個</font>(Timer<font face="宋體"lang="ZH-CN">計時器</font>)<font face="宋體" lang="ZH-CN">部件,它能夠有規律地觸發</font>OnTimer<fontface="宋體" lang="ZH-CN">事件,發送信息給應用程序。它是編制應用程序時最為重要的部件之一。 </p></font><p>1.4.2.1 Timer<font face="宋體" lang="ZH-CN">的重要屬性 </p></font><p> Enabled<font face="宋體" lang="ZH-CN">屬性表示了計時器打開還是關閉;用</font>Interval<fontface="宋體" lang="ZH-CN">屬性設置兩個</font>OnTimer<font face="宋體"lang="ZH-CN">事件間的間隔,單位是毫秒,也即千分之一秒。將間隔置為</font>0<fontface="宋體" lang="ZH-CN">相當于關閉計時器,</font>Interval<font face="宋體"lang="ZH-CN">的最大允許值是</font>32767<font face="宋體" lang="ZH-CN">,也即</font>32.767<fontface="宋體" lang="ZH-CN">秒。 </p></font><p>1.4.2.2 <font face="宋體" lang="ZH-CN">使用</font>Timer<font face="宋體"lang="ZH-CN">對程序進行控制 </p></font><p><font face="宋體" lang="ZH-CN"> 計時器是獨立的對象,在啟動與</font>Windows<font face="宋體" lang="ZH-CN">無關的邏輯和應用事件時極其有用。如:用計時器可以模擬時鐘或計時器,可視地顯示經過的時間;可以用作系統延時,</font>Delphi<fontface="宋體" lang="ZH-CN">提示信息出現只需在該區域停頓幾秒,就是</font>Timer<fontface="宋體" lang="ZH-CN">應用的一個例子;可以檢查系統環境、事件,根據結果進行響應;也可以在窗口中閃爍一段正文或圖像,提示某種操作或處理正在進行等等。</font></p><p><font face="宋體" lang="ZH-CN"> 在窗體中放置一個計時器</font>Timer<font face="宋體" lang="ZH-CN">部件,將它的</font>Interval<fontface="宋體" lang="ZH-CN">屬性置為</font>100(<font face="宋體" lang="ZH-CN">每隔</font>10<fontface="宋體" lang="ZH-CN">毫秒觸發一次</font>)<font face="宋體" lang="ZH-CN">,雙擊部件進入代碼編輯器,在它的事件中加入這樣一句程序: </p></font><p>MessageBeep(0); </p><p><font face="宋體" lang="ZH-CN"> 運行它,會有規律地發出“叮”聲。它給您一個應用</font>Timer<fontface="宋體" lang="ZH-CN">部件的直觀印象。</font></p><p><font face="宋體" lang="ZH-CN"> 盡管</font>Delphi<fontface="宋體" lang="ZH-CN">的計時器每秒可以產生</font>1000<font face="宋體"lang="ZH-CN">次激發,在編程中還必須注意程序對計時器激發的響應。如果程序處理</font>OnTimer<fontface="宋體" lang="ZH-CN">事件的時間超過</font>Interval<font face="宋體"lang="ZH-CN">的設定值,就可能錯過事件,因為當下一次激發到來時,系統正忙于處理上一事件,則這次激發就會被忽略。同時要注意其它的</font>Windows<fontface="宋體" lang="ZH-CN">應用程序是否會影響計時器的觸發。如果后臺正運行著一個占用處理器的程序,就可能會導致</font>Timer<fontface="宋體" lang="ZH-CN">的觸發不準確,從而使前臺程序運行出現錯誤。 </p></font><p>1.4.3 <font face="宋體" lang="ZH-CN">使用公用對話框部件 </p></font><p> Delphi<font face="宋體" lang="ZH-CN">為您在</font>Dialogs<fontface="宋體" lang="ZH-CN">頁上提供了幾個標準對話框,它們是文件打開</font>OpenDialog<fontface="宋體" lang="ZH-CN">;文件保存</font>SaveDialog<font face="宋體"lang="ZH-CN">;字體</font>Fontdialog<font face="宋體" lang="ZH-CN">;顏色</font>ColorDialog<fontface="宋體" lang="ZH-CN">;打印</font>PrintDialog<font face="宋體" lang="ZH-CN">;打印設置</font>PrintsetupDialog;<fontface="宋體" lang="ZH-CN">查找</font>FindDialog<font face="宋體" lang="ZH-CN">;替換</font>ReplaceDialog<fontface="宋體" lang="ZH-CN">等部件。</font></p><hr width="94%"></TD><TD CLASS="tt3" VALIGN="bottom" width="8%" ><strong><A HREF="005.htm"><FONT style="FONT-SIZE: 9pt">后一頁</font></A><BR><A HREF="003.htm"><FONT style="FONT-SIZE: 9pt">前一頁</font></A><BR><A HREF="index.html"><FONT style="FONT-SIZE: 9pt">回目錄</font></A><BR></strong></TD></TR></table></BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -