登陆注册
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技术,如菜单项的命名、快捷键和热键的设置等,都采用约定俗成的形式。使用这些菜单模板设计菜单,可以使用户的设计更具有通用性。

同类推荐
  • 中文版3dsMax2010实例与操作

    中文版3dsMax2010实例与操作

    本书结合3dsMax2010的实际用途,按照系统、实用、易学、易用的原则,通过大量案例介绍了3dsMax2010的各项功能,内容涵盖3dsMax入门、创建和编辑二维图形、创建基本三维模型、使用修改器、网格建模、多边形建模、面片建模、复合建模、材质和贴图、灯光和摄影机、渲染、动画制作、粒子系统、空间扭曲和动力学等。
  • 数字博物馆研究与实践:2009

    数字博物馆研究与实践:2009

    本书汇集了“2009年北京数字博物馆研讨会”与会代表提交的60余篇论文和演讲报告、应用案例,分为数字博物馆(科技馆)发展研究探讨、数字博物馆(科技馆)多样性发展模式、数字技术在博物馆(科技馆)展陈中的应用、数字博物馆(科技馆)建设实践、数字博物馆(科技馆)实现技术和数字博物馆调研报告等六个部分。本书内容囊括了对数字博物馆(科技馆)建设宏观层面的全局思考以及微观层面的具体实践。在宏观层面,介绍了数字博物馆(科技馆)在国内外的发展现状与趋势,通过剖析典型案例,探讨数字博物馆(科技馆)建设的意义、目标、作用、建设原则、要素、特征及目前建设工作中存在的现实问题与对策。
  • 信息安全

    信息安全

    我们不得不看到,全球信息化发展,使信息安全成为维护国家安全的重要屏障,信息安全问题正在为国与国之间带来新的制约关系。当然,这只是我们强调信息安全极端重要性的一个原因。事实上,信息安全已经上升为国家安全的重要组成部分,这是信息时代国家安全的明显特征,也是很多国家的共识。但与其他国家安全元素不同,如果脱离信息化发展的环境,“信息安全”只是一个抽象的目标,它要通过对国家的政治、经济、文化等方面的影响体现其对国家安全的意义,并以保障信息化发展为目标取向。因此,我们说信息安全是信息时代国家安全的基石。
  • 一本书读懂24种互联网思维

    一本书读懂24种互联网思维

    本书整合的改变世界的24种互联网思维,让我们对互联网新思维的认识变得立体、系统起来;同时深入浅出、通俗易懂地从技术和实践分析互联网新思维与传统思维相比较的优势,医治互联网焦虑症。未来属于既能深刻理解传统商业的本质,同时又具备互联网思维的人。
  • Delphi程序设计教程

    Delphi程序设计教程

    本书为适应不同层次读者的需要,从Delphi的基本知识讲起,由浅入深,全面讲述了Delphi的集成开发环境、Delphi的编程语言——ObjectPascal、常用组件的使用、窗体的设计、菜单的设计、对话框的设计、多文档界面程序的设计、多媒体编程和数据库应用程序设计等内容。
热门推荐
  • 史记菁华

    史记菁华

    《史记》不但是我国历代正史的鼻祖,也是一部文学巨著。常读《史记》,可以训练欣赏文学的能力和写作文章的技巧。但《史记》的卷帙庞大,内容广泛,遍及天文、地理、术算各方面,一般人若要全读,分量实在太多,时间和精神往往不能应付。所以,删除赘文,撷取菁华,是个必要的工作,可以便利人们阅读和欣赏,《史记菁华》正是这部文史巨著的节本。
  • 斩命弦

    斩命弦

    斩断被命运所操纵的命弦,从一介傀儡,变成真正掌控自己人生的人。
  • 柠檬

    柠檬

    《柠檬》为与太宰治、中岛敦并称“三神器”的日本作家梶井基次郎的经典小说集,全新收录从未被翻译成中文的数篇作品,共计二十六篇中短篇小说。梶井基次郎的作品以《柠檬》为代表,投射出大正末年以来战争带给每一个人的阴影,如同长年病患心头的阴翳一般,即使一颗小小的柠檬也像是混沌世界里清新而光明的希望。他擅长以象征的手法及病态的幻想构织出病者忧郁的世界及理想,三岛由纪夫等作家都曾表明受其影响。
  • 轮回从斗罗大陆开始

    轮回从斗罗大陆开始

    做为广大穿越者大军的一员,方远觉得自己一定是最苦逼的那个,他的存在就是给穿越者这个牛逼到冲出宇宙的群体抹黑。“天啊!谁能告诉我一根草怎样在斗罗活成十万年魂兽。”
  • 天行

    天行

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

    宝贝,我不会再离开你

    三年前,她爱他,很爱他,而他却离开她,一声不吭地远走国外。她得知这个消息的时候,好像心要裂开了一般,她以为他不要她了。现在,好不容易要忘记当初她带来的疼痛了。而他却回来了,俨然一副成功者的姿态。
  • 至尊男保姆

    至尊男保姆

    二十一岁的基因战士莫问,临危受命,回到过去,阻止末日的降临。十八岁的方恒,是个处处受欺负的倒霉蛋,这就是那个毁了世界的大魔王?杀还是不杀?莫问很头疼。“莫大哥,救我。”(好!)“莫大哥,我喜欢她。”(好,我帮你追!)“莫大哥,家长会……”(行,我去!)在末日中受到铁血洗礼的基因战士,阴差阳错沦为大魔王的“男保姆”,开始了一段新的生活。
  • 瘸子国柱

    瘸子国柱

    60年代农村出生的一个瘸子,经历了承包到户、经历了下海经商、经历了社会主义新时代,他的人生是一个普通的农民的人生,他的人生又是一个新中国社会主义建设和发展的农村。
  • 慕道

    慕道

    天者,道也!人逝,而道不止!慕道者,与天窃道!
  • 明思录

    明思录

    有道是:满堂花醉三千客,一剑寒霜十四州。