📄 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 + -