登陆注册
36209800000018

第18章 菜单设计(1)

本章要点

菜单设计概述

用菜单设计器设计主菜单

用菜单模板设计主菜单

动态设计主菜单

快捷菜单的设计

菜单是Windows应用程序界面中最重要的元素之一,因此菜单设计是Windows应用程序设计必不可少的内容。Delphi提供的菜单设计手段为用户进行菜单设计提供了很大的方便。

本章将系统介绍这方面的内容。

7.1菜单设计概述

7.1.1菜单的种类与结构

Windows应用程序界面中的菜单有3种类型:主菜单、快捷菜单和控制菜单。

主菜单是Windows应用程序窗口中标题栏下边的菜单栏所包含的菜单系统,是大多数Windows应用程序都有的。

快捷菜单是当右击窗口中的对象时弹出的菜单,它为某些操作提供了很大的方便。

控制菜单是单击Windows应用程序窗口标题栏左端的图标时打开的、对窗口进行操作的菜单。

主菜单一般分为两级。窗口标题栏下边是菜单栏,里面包含若干个主菜单项,这是第一级;通常每一个主菜单项下有一个下拉菜单,里面排列着若干菜单项,有些菜单项还有子菜单(凡菜单项最右边有一黑色的向右的三角符号“?”者,表示该菜单项有子菜单),而且有的还不止一级子菜单,这些子菜单以级联方式显示在菜单项的右边,这是第二级。

设计应用程序的菜单系统时,最好不要把菜单命令直接放入菜单栏中,哪怕主菜单项的下拉菜单中只有一个菜单项。

另外,应尽量控制级联菜单的级数,一般不要超过4级,甚至可以不用级联菜单方式,而将主菜单项下的菜单项直接分组,组与组之间用分割条分隔。

按照菜单项的功能,可以将菜单项分为3种类型。

1.命令菜单项

用于执行某项操作的菜单项,也称菜单命令,是菜单项中数量最多、用户最常用的菜单项。这类菜单项没有特殊的指示标记。

2.状态设置菜单项

用于对系统、运行环境或菜单本身的某状态进行设置或取消的菜单项。通常这类菜单项的左边有一个对勾或复选框表示该设置是否处于有效状态,若当前有效,则单击变成无效,反之亦然。

3.打开对话框菜单项

用于打开对话框的菜单项,用户通过对话框完成系统要求的设置或选择,系统根据用户的设置或选择,实现相应的操作。这类菜单项右边有一个省略号标记。

7.1.2Delphi的菜单设计开发工具

Delphi为Windows应用程序菜单系统的设计提供了全面的设计开发工具。

Delphi组件模板中有两个用于菜单设计的组件:MainMenu和PopupMenu。通过MainMenu组件启动主菜单设计器(也称菜单编辑器),通过PopupMenu组件启动快捷菜单设计器,可以按自己的要求,方便快捷地进行主菜单、快捷菜单的设计。

另外,Delphi还提供了菜单模板。使用菜单模板,可以大大简化菜单系统的设计。

控制菜单是Delphi窗体自带的,不需要用户设计。

7.2用主菜单设计器设计主菜单

主菜单设计是应用程序菜单系统设计的主要任务。设计主菜单的主要工具是由MainMenu组件启动的主菜单设计器。

用主菜单设计器设计主菜单要经过如下的步骤。

7.2.1创建主菜单

创建主菜单是指用菜单设计器完成菜单系统菜单栏和每个菜单项的设计。

1.在窗体中放置MainMenu组件MainMenu组件位于组件模板的【Standard】选项卡上,其图标为。

在窗体中放置MainMenu组件的方法和放置其他组件的方法是一样的。

2.打开主菜单设计器

打开主菜单设计器的方法有如下几种:

用鼠标双击放置在窗体上的MainMenu组件;激活窗体上的MainMenu组件,单击对象检查器上Items属性值栏右端的【…】

按钮;

用鼠标右击MainMenu组件,在弹出的快捷菜单中执行【MenuDesigner】菜单命令。

打开的主菜单设计器如图7-1所示。

3.创建主菜单项

菜单设计器左上角显示的空白框是等待设计的第一个主菜单项。

在对象检查器的【Caption】属性值栏中输入第一个主菜单项的标题,如“文件”,然后按回车键,标题“文件”显示在第一个主菜单项处,其右边显示被激活的第二个空白主菜单项,如图7-2所示。按如上方法依次输入其他各主菜单项的标题,直到所有主菜单项添加完毕,创建完主菜单项的主菜单设计器如图7-3所示。

4.为各主菜单项添加菜单项

主菜单项创建完毕后,就要为每个主菜单项添加菜单项了。

用鼠标激活一个主菜单项,该主菜单项的下方显示一个带虚线框的空白菜单项,如图7-4所示。激活该菜单项,在对象检查器的【Caption】属性值栏中输入第一个菜单项的标题,如“新建”,然后按回车键,标题“新建”显示在第一个菜单项处,其下边显示第二个空白菜单项,如图7-5所示。按如上方法依次输入其他各菜单项的标题,直到该主菜单项的所有菜单项添加完毕。然后再用同样方法为其他的主菜单项添加菜单项。

5.将菜单项分组

如果一个菜单下的菜单项过多,或为使菜单项分类排列,可将菜单项分组,这是应用程序菜单系统中常见的。

菜单项分组用分隔线。实际上分隔线也是一个菜单项,只是它的Caption属性为减号“?”,即在需要加分隔线的地方,添加Caption属性值为“?”的菜单项即可。一个将菜单项分组的菜单如图7-6所示。

6.定义菜单项的快捷键和热键

当要执行某个菜单项时,不必单击该菜单项,而在键盘上按下“Alt键+某个字母”也行,这里“Alt键+某个字母”被称为“快捷键”。当然这里的某个字母不是随便的字母,对英文标题的菜单项,是菜单项的首字母(用下划线表示,如File);而对中文标题的菜单项,是菜单项后面圆括号中带下划线的字母,如文件(F)。

有的菜单项的右侧,标有一个“F5”等或者一个“Ctrl+P”等组合键,当要执行该菜单项时,不必单击该菜单项,而在键盘上按下这些键也行,这些键被称为“热键”。

菜单中的菜单项都有快捷键,即使用户不定义,也有默认的快捷键,只是默认快捷键设计时不显示,运行时才显示。

英文标题菜单项,默认的快捷键字母为其Caption属性的首字母,通常就用默认值,不再另行定义。中文标题菜单项,则系统分配一个英文字母作为快捷键的默认字母,用户也可以自己定义。

定义菜单项的快捷键,只需在要设置的菜单项的Caption属性值后面加上“(快捷键字母)”即可,假如要定义“新建”菜单项的快捷键为N,则在添加“新建”菜单项时,在其Caption属性值栏中输入“新建(N)”。

热键都需要用户专门定义,激活需要定义热键的菜单项,找到其【ShortCut】属性,该属性为枚举型属性,单击右端的下拉箭头按钮,从下拉列表框中选择一组组合键,如“新建”

菜单项的热键定义为“Ctrl+N”,则选择的组合键显示在该菜单项的右边,成为该菜单项的热键。

定义了部分菜单项的快捷键和热键的主菜单设计器如图7-7所示。

7.插入和删除菜单项

菜单项基本设计完成后,还可以根据需要插入新的菜单项或删除已有的菜单项。

激活插入新菜单项位置的菜单项,单击鼠标右键,弹出如图7-8所示的快捷菜单,执行【Insert】菜单命令,则在选择的菜单项前面显示一个空白的菜单项,根据需要设置它的Caption属性、快捷键和热键,则一个新的菜单项插入到菜单中。

要删除一个已有的菜单项,激活这个菜单项,单击鼠标右键,弹出如图7-8所示的快捷菜单,执行【Delete】菜单命令,则这个菜单项被删除。

8.调整菜单项位置

菜单项基本设计完成后,还可以根据需要调整菜单项的位置。激活要移动位置的菜单项,将鼠标指针指向该菜单项,然后按住鼠标左键,拖动鼠标到指定位置,放开鼠标左键即可。

9.创建级联菜单

要创建某个菜单项的子菜单,激活这个菜单项,单击鼠标右键,弹出如图7-8所示的快捷菜单,执行【CreateSubmenu】菜单命令,则这个菜单项的右边出现一个黑色的右向三角,同时菜单右侧出现一个空白菜单项,即为子菜单的第一个子菜单项,如图7-9所示,用如on属性及快捷键、热键,完成后按回车键,该子菜单项的下方显示第二个等待设置的空白子菜单项,如图7-10所示,依此完成整个子菜单的创建。用同样的方法,可以创建其他菜单项的子菜单和再下一级子菜单,从而完成菜单的级联。

至于前面介绍的菜单项的分组、快捷键和热键的设置等方法,同样适用于子菜单项。

7.2.2主菜单组件和菜单项的事件

以上的设计工作,还只是完成了应用程序菜单系统的外观设计。要使菜单能工作,同其他组件类似,还必须设计菜单的事件处理代码。

1.主菜单组件的事件

主菜单组件有两个事件:Images和OnChange。但这两个事件用得很少,这里就不做介绍了。

2.菜单项的事件

菜单项共有6个事件。在这些事件中,常用的只有一个事件,即OnClick事件。用鼠标单击菜单项,即触发该事件。

菜单项要完成的功能就由OnClick事件的处理代码来实现。设计应用程序的菜单系统,就要对菜单中的每个菜单项编写OnClick事件处理代码。

7.2.3菜单项的属性

经过以上的工作,基本上完成了应用程序主菜单系统的设计工作。但是为了得到更满意的效果,还需对菜单项进行必要的属性设置。

菜单项的属性设置和组件的属性设置方法是一样的,但菜单项的属性设置也必须在菜单设计器中进行。

菜单项常用的属性有不少,但大多用于动态设置菜单,即在程序运行中改变菜单的状态,这样的属性留待后面介绍,这里只介绍设计时用到的两个属性。

1.Default属性

Default属性决定菜单项标题是否采用黑体字显示。该属性为布尔型属性,其默认值为False。

2.Name属性

菜单项的Name属性值是菜单项在程序中的标识。其默认的属性值为N1,N2,…,建议用户在进行菜单设计时,按自己的喜好为每个菜单项起一个简明的名字。

7.3使用菜单模板

在应用程序设计中,经常要设计样式和功能类似的菜单。为了节省用户程序开发设计的时间,Delphi提供了专门的菜单模板,其中包含两个不同的File(文件)菜单,一个Edit(编辑)菜单,一个Window(窗口)菜单,两个Help(帮助)菜单,一个MDIFrame(多文档框架)菜单共7个模板。

菜单模板中的这些菜单使用标准Windows技术,如菜单项的命名、快捷键和热键的设置等,都采用约定俗成的形式。使用这些菜单模板设计菜单,可以使用户的设计更具有通用性。

同类推荐
  • 组态软件控制技术

    组态软件控制技术

    监控组态软件是完成数据采集与过程控制的专用软件,它以计算机为基本工具,为实施数据采集、过程监控、生产控制提供了基础平台和开发环境。本书从应用角度出发,详细介绍了组态软件应用程序的开发过程。对窗口界面编辑、动画链接、实时和历史趋势、安全机制、I/O设备连接,以及生产应用等内容都做了非常详细的介绍。MCGS是优秀的监控组态软件之一,它功能强大、使用方便,可以非常容易地实现监视、控制、管理的各项功能,并可提供软、硬件的全部接口,方便、快速地进行系统集成,构成不同需求的数据采集与监控系统。本书可作为高等学校计算机应用、自动控制、电子技术、机电技术专业的教材,同时还可作为相关专业工程技术人员的自学用书。
  • 学校计算机实用技术

    学校计算机实用技术

    本书由杭州市上城区教育学院编著,他们邀请了众多信息技术教育教学的一线专家,认真细致地筛选了学校计算机应用方面的常见问题,提出了解决问题的具体操作方案,旨在帮助一线教育工作者解决可能面临的种种问题,为广大教师提供便捷服务。
  • 图说电子计算机

    图说电子计算机

    今天人们谈到计算机常常会把它和网络联系起来。20世纪90年代兴起的因特网其影响之广、普及之快也是大家始料未及的,也从没有一种技术能像网络一样日新月异,并迅速地改变着我们的学习和生活方式。因特网大大缩小了时空界限,为我们提供了快捷方便的交流途径。在未来10年内,计算机又将会有怎样飞速的发展呢?在互联网上进行医疗诊断、远程教学、电子商务、视频会议等活动已经实现,未来的互联网的传输速率将会提高100倍,大家可以随时随地连接到因特网上,更方便地进行交流、沟通和开展商务活动。
  • 如何组装电脑

    如何组装电脑

    本书以问答的形式介绍了组装电脑的基本知识。内容包括:电脑硬件的部件组成、CPU的发展历程、CPU主频、内存的组成、内存的主要性能参数等。
  • 中文版AutoCAD2005辅助设计宝典

    中文版AutoCAD2005辅助设计宝典

    本书全面、详细地介绍了中文版AutoCAD2005的特点、功能以及使用方法和技巧。全书共分11章,前九章分别介绍了利用中文版AutoCAD2005进行辅助设计的方法和技巧,最后两章讲解了若干综合实例。
热门推荐
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 亲爱的杨医生

    亲爱的杨医生

    四年前,我认识你,你不认识我。四年后,无国界医生杨瀚诚和临床外科女医生云筱叶的你情我爱。某男:“云医生,我胸口疼”“小叶子,我需要有人呵护一下我”云筱叶表示,以前怎么没见过杨瀚诚这一面,要是知道,就不会和他走得太近了。某男:“怎么,后悔了?后悔也晚了,关灯睡觉。”
  • 左眼经理

    左眼经理

    白言一个陨落的足球天才.......他虽然无法再在绿茵场上奔驰,可他那颗热爱足球的心却没有逝去。一次奇遇,他的左眼拥有神奇的力量,他能探知出一个人的足球天赋,随着左眼之力的不断提升,他甚至可以看到球员今后的成长曲线。拥有了如此神奇的力量后,白言决定当一名足球经理,他要打造出最强的阵容。
  • 我的系统有点邪

    我的系统有点邪

    天降负能量系统,为了变强,只能不断的搞事情了……对不起了各位,我刘皓来了,啊嘎嘎嘎嘎嘎。此文以幽默为主,剧情不重要重要的是够骚!不喜勿喷……
  • 天行

    天行

    号称“北辰骑神”的天才玩家以自创的“牧马冲锋流”战术击败了国服第一弓手北冥雪,被誉为天纵战榜第一骑士的他,却受到小人排挤,最终离开了效力已久的银狐俱乐部。是沉沦,还是再次崛起?恰逢其时,月恒集团第四款游戏“天行”正式上线,虚拟世界再起风云!
  • 我提薪靠运动

    我提薪靠运动

    当你在困难的时候,是否希望散步都能有工资拿?『金钱详情:两分钟前,您开始散步,运动时长93秒,运动强度系数为0.1,则您获得收益9.3元』这是一个希望宿主能健康的系统。
  • 九尾猫妖本姑娘是猫不是狐

    九尾猫妖本姑娘是猫不是狐

    小野猫妖邢天灵,神人混血杨紫晶,赤炎九尾离落,七大主角身份各异,感情错综复杂!猫妖逆天修九尾,柔弱紫晶护苍穹,离落迦舍耽美虐恋.....你翻开了这页,觉得还放得下这个故事么?
  • 风的远方

    风的远方

    追寻他的脚步向你传述故事,我只是将故事向你描绘。