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

同类推荐
  • 微软360度

    微软360度

    本书是由微软总部华人协会组织编写的第二本书,是《微软360度——企业和文件》一书的姐妹篇,本书将着重向你呈现微软总部的华人专家是如何一步一步地走向成功的及在微软总部成功的心路历程,以及如何应对挑战,揭示了微软成功的最重要秘密之一——人才至上,读者读后收获更多的是这些成功人士的成功经验,从而为自己的成功做出更好的规划。就让我们一起通过此书来看看微软公司人才至上管理的方方面面,聆听微软的心声,感觉微软的脉动吧。
  • 我看电商

    我看电商

    本书是作者近30年从事零售及电子商务管理的总结和分享。近年来电商行业在中国迅猛发展,2012年网络零售市场规模达到13,000亿人民币,诞生了淘宝、天猫、京东、当当、凡客、唯品会……等一大批全新的网络公司,电子商务正在日益深入的影响着越来越多人的生活。如今这位自称跨界老兵的电商操盘手第一次全方位剖析电商风云,细说中美电子商务发展的不同路径,评点国内各大电商企业的是是非非,详解其中的融资、模式、运营、效率……个中经验,毫无保留的娓娓道来,笔触至深,让人不禁掩卷沉思。
  • 组建家庭局域网与无线网

    组建家庭局域网与无线网

    该书是“快乐驿站”丛书之一,是一本精心为初级家庭电脑用户打造的局域网与无线网组建入门与提高的图书,同时还涉及一些办公网络的组建内容。《组建家庭局域网与无线网》以局域网和无线网的功能、设置以及实际应用为导向,用生动的实例、形象的图解和幽默的语言循序渐进地介绍了局域网和无线网的概念、产品、设计、组建、调试与维护的相关内容。
  • 不懂PowerPoint就当不好经理

    不懂PowerPoint就当不好经理

    经理人如何用PowerPoint,来规划部门的发展,如何用PowerPoint来表达自己的经营主张?本书为各类经理人提供了从入门到提高,从原理到实战的一系列知识,相信本书将让演示文稿为经理人的管理效能加分!
  • FlashCS动画制作基础

    FlashCS动画制作基础

    适合爱好flash动画制作的初、中级读者作为入门学习的参考书,还可以供从事网页制作与动画设计的人员参考,同时也可以作为初、中级电脑短训班的培训教材,对有一定经验的flashcs5使用者也有很高的参考价值。
热门推荐
  • 福妻满满:农家小王妃

    福妻满满:农家小王妃

    陆欢颜没有想到自己一朝穿越,竟能有如此奇遇?成为陆家最受宠爱的小女儿,和前世的孤苦冷清不同,这一世她获得了来自家人最纯粹的爱。可是这家也太穷了吧!穷的让她掩面长叹,不过对上疼爱自己的爷奶父母,她用百宝空间带他们过上好生活,绝不会让他们再受一点委屈。只不过,家人太良善也是个问题,莫名其妙地救回一个男人,他们就让他住下了?这还不算,竟还要让她嫁给他?她不是他们最疼爱的小乖乖--情节虚构,请勿模仿
  • 有你作伴

    有你作伴

    腹黑骚男VS甜蜜猫女能变成一只白猫的乔郁,在她14岁的暑假以猫身遇见了在公园喂狗的容肆。后来才知道他和已经上大学的哥哥在同一个学校。那之后她经常以猫身去找容肆玩,同时也在哥哥的关系下,与容肆认识。不久容肆知道她就是那只白猫的秘密,和乔郁达成保密协议。在和他的相处中,乔郁内心冒出隐隐的爱情萌芽。随着容肆大学毕业,乔郁也忙于学业,又得知容肆有女朋友之后,两人的联系渐渐变少。乔郁考上了他以前的大学,努力在他生活过的地方寻找他的痕迹。两人在心的年龄段重新认识,新的生活,新的开始。
  • 窃国为侯

    窃国为侯

    梦内赵楷自己刚刚穿越,就在汴京的城墙上被金军捅死,他爹徽宗被金兵当狗养着,受尽屈辱,他哥钦宗痛哭流涕,饱受折磨几近崩溃,大宋被蛮夷的铁蹄践踏,山河破碎,如同人间地狱。梦外,一切改写,赵楷他就要自己当了这个官家!天下收入毂中,权柄自己拿好!他爹徽宗可以收拾收拾去皇宫后院当个安乐公写写画画,他哥钦宗可以拾掇拾掇去全国各地当个得道真人行善积德,至于大宋....赵楷说,“丫的把辽国金国蒙古的公主,四品以上一家送一打!”~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~本书已A签,【起点第五编辑组签约作品】,请放心用推荐收藏养肥~!
  • 妃忆倾城

    妃忆倾城

    她,宁苡汐,曾是M国出色的特工,一朝穿越,她成为了前战神八王的王妃。“听说,那位八王是瘸子。”谁知,婚后八王却将她宠上天。“王爷,外界传言,说你一直娇惯王妃,现在的王妃无法无天。”某王挑眉:“本王的女人想干什么就干什么。”“外界还传闻,这一切都是因为,王爷是个妻管严,耙耳朵。”某王:“媳妇,外界传言我怕老婆,你要替我证明。”“首先,我说一你不准说二。”“好的相公,我说三。”“其次,我让你往东你不准往西。”“好的相公,我往北。”“最后,不准和隔壁六王偷偷约会。”“不可能!给你一点阳光你就灿烂,还蹬鼻子上脸了。”……
  • 娇妻重生:霍先生,你别跑

    娇妻重生:霍先生,你别跑

    前世被小人蒙蔽双眼,重生后的新婚少妇林潇第一目标是要报仇雪恨,二是要把她家的总裁大人——霍先生,死死的绑定在身边。人人都知景世集团的霍总对娇妻林潇包容度宽广,可是真的看过总裁和夫人相处模式后,才发现不尽其然。传闻中高冷的总裁夫人林潇捧着笑脸,“亲亲老公渴不渴呀,要不要喝水?”传闻中妻管严的霍总冷酷扬眉,“林!潇!我在工作,出去!”“哎呀老公~我摔了一跤~要老公亲亲才能起来”某人娇俏的躺在男人的怀里。一边工作一边感受女人讨好的霍总,嘴角不易察觉的上扬。总结来说,这是一个追夫火葬场的故事。
  • 杀戮血潮

    杀戮血潮

    一、不污辱读者智商。二、美女照杀不误。三、主角不色,但为了达到目的牺牲色相不是问题。四、主角狠辣杀伐果断,但也善良。五、世界很大很精彩,难以想象。六、热血激情、战斗天地。
  • TFBOYS之再说一遍我爱你

    TFBOYS之再说一遍我爱你

    童年的相遇,使他们的缘分紧紧的拴在了一起,可是命运,本是一样令人难以琢磨清楚的东西,在他们如胶似漆之时,他突然离开了。长大以后,她又一次遇到了他,她是否能够把握住这份易碎的感情,或者……
  • 生日礼物(千种豆瓣高分原创作品·世间态)

    生日礼物(千种豆瓣高分原创作品·世间态)

    华灯初上的城市,他与她的邂逅故事。故事很简单,也许,和爱情有关。她莞尔一笑:“刚开始我以为你是第一次搭讪,现在看来,应该经验丰富。”他:“你被搭讪的经验应该更丰富吧。”
  • 无恙的年华

    无恙的年华

    青春像春天的小草一缕青色把生命的画卷抹绿。这就是《春草青色》。本部小说是继第一部《梦回依约的童年》之后的第二部纪实性中篇小说。夏滕的青春期,正值十年动荡的末期,和改革开放的初期。在读书无用,宁可要草也不要苗的氛围里,夏滕保持一颗青涩的初心,始终勤奋学习。恢复考试后,他以无可争辩的成绩考上了高中。恢复高考以后,他成为班上唯一一位考上大学的学生。在大学期间,他再接再厉,以优异成绩毕业,并考上了著名科学家的研究生。夏滕经历了怎样的青春岁月,他是如何面对未谙世事的尴尬糗事。作者不遗笔力,为你讲述不会让你失望的那个时代的真实的故事。精雕细琢出一幅美丽的画卷,让您赏心悦目。
  • 深夜奶茶屋

    深夜奶茶屋

    一家平常无奇的奶茶店,因为刘泽父母的失踪而开始变得神秘,……深夜奶茶屋,欢迎光临!我是刘泽,这家奶茶屋的老板.