第10章+菜单组件的使用.ppt
《第10章+菜单组件的使用.ppt》由会员分享,可在线阅读,更多相关《第10章+菜单组件的使用.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 上章回顾:与输入/输出有关的控件 使用对话框函数与对话框过程 使用焦点 用于分组的控件 按钮类控件 列表框与组合框 使用计时器控件第10章 菜单设计 本章要点:菜单 主菜单 快捷菜单10.1 循序渐进学理论 随着Windows操作系统风行世界,各种基于Windows的应用程序及各类娱乐软件也日益为人们所熟悉。这些软件的共同特点之一就是大量使用不同的菜单和工具栏,把用户从众多繁琐的命令和参数中解放了出来,使用和操作显得十分方便和直观。10.1.1菜单u在Delphi中可使用组件栏和菜单设计器快速建立自己的菜单。u实际应用中,菜单可分为两种基本类型:主菜单(mainmenu)和弹出式菜单(pop
2、menu)。u主菜单一般通过单击菜单栏中的菜单标题打开,如图9-1所示。弹出式菜单,则通过鼠标右键单击某一区域的方式打开,图 菜单结构一 1菜单的结构图 菜单结构二 2.一般菜单分为两级结构。u窗口标题栏下显示的是菜单栏,菜单栏包含若干主菜单选项,每一主菜单选项下有个下拉菜单,排列着各菜单命令项。u有些菜单命令项还有子菜单,则以级联的方式显示在该菜单命令项的右边,依次排列,直至最后一级子菜单。带有级联菜单的菜单命令项通常在命令项最右边有一个右向的三角符号。3.菜单命令项的作用 u 执行命令 用于执行某操作的菜单命令,它们没有特殊的指示符号。u 设置状态 用于设置或取消某设置的菜单命令项。通常用
3、来改变某特殊选顶的状态 这些命令项常用复选标记“”或单选标记“”来表明该选项是否处于有效状态。在有效状态情况下,再次执行该命令项则产生相反的效果。u 打开对话框 用于激活对话框 这些命令项通常在最右边有一个省略号作指示符号。4菜单设计器u主菜单设计器MainMenu设计器主菜单设计器用于设计下拉式主菜单。方便完成设计主菜单栏,菜单命令并创建级联菜单u快捷菜单设计器PopupMenu设计器快捷菜单设计器用于设计弹出式快捷菜单。方便完成设计快捷菜单栏,即单击鼠标右键打开的菜单5菜单项的常用属性uItems属性:菜单项数组属性,用来存放菜单中的菜单项。如果该菜单项还有下一级子菜单,可通过该属性来访问
4、子菜单中的菜单项,可看作是一个TMenuItem型的数组,下标从0开始。uName属性:该属性代表的是菜单项名称。uCaption属性:该属性用来设置或返回菜单项中显示的文字。uVisible属性:该属性用来确定菜单项是否可见。u Checked属性:该属性用来确定菜单项前是否显示选中标记。uEnabled属性:该属性用来确定菜单项是否可以使用uShortCut属性:该属性用来确定菜单项的快捷键。uCount属性:如果该菜单项有下一级子菜单,可通过该属性指示下一级子菜单的菜单项的数目。6Items属性的常用方法uAdd方法:该方法用于在Items的末尾再添加一个菜单项,语法格式如下:proce
5、dure Add(Item:TMenuItem);overload;uDelete方法:该方法用于在Items中删除指定的菜单项,语法格式如下:procedure Delete(Index:Integer);uInsert方法:该方法用来在Items的指定位置插入一个菜单项,语法格式如下:procedure Insert(Index:Integer;Item:TMenuItem);uRemove方法:删除指定的菜单项,这与 Delete方法不同,语法格式如下:procedure Remove(Item:TMenuItem);uClear方法:该方法用于删除Items属性中的所有菜单项。10.2
6、 主菜单设计u利用MainMenu组件可在窗体上生成菜单栏以及菜单栏下的菜单选项。u设计时的菜单具有所见即所得的效果,即设计时样式与运行时完全一样。u设计主菜单操作如下10.2.1 打开主菜单设计器u在组件板的Standard选项卡中选择MainMenu组件,把它添加到窗体上,此时窗体上将出现一个MainMenu图标。u执行如下操作之一,打开MainMenu Designer主菜单设计器:双击窗体中的MainMenu组件图标。右击MainMenu组件,打开一个快捷菜单,再从中选择Menu Designer命令。选定MainMenu组件,再在对象查看器中单击Items属性值编辑框右边的省略号按钮
7、。u主菜单设计器打开后,在主菜单设计器中有一个深色加亮的方块,即第一个空白菜单,用户可以输入菜单名。10.2.2 添加菜单命令项u首先添加菜单,选中主菜单设计器中的空白菜单,然后利用对象查看器设置菜单名。u同其他组件一样,“&”用于设置菜单的快捷键,“&”后的字符即为快捷键键名。可用“Alt+快捷键键名”来打开菜单或执行菜单命令项的键盘命令组合。u添加菜单后,将会发生两个变化。第一个变化是所添加的菜单的右边又出现空白菜单虚框,表示可继续添加菜单。第二个变化是所添加的菜单下面出现一个空白菜单命令项虚框,用于添加菜单命令项。u添加菜单命令项利用对象查看器设置菜单命令项名和快捷键注意:若不给菜单、菜
8、单命令项的Name属性赋值,Delphi会自动将为其赋值。建议按功能给菜单、菜单命令项的Name属性赋值。当觉得菜单命令项够了后,可以选取主菜单项右边的空白菜单虚框,开始添加第二个菜单,以及其下的菜单命令项。10.2.3 菜单命令项分组u如果一个菜单中的菜单命令项过多,可以按功能将菜单命令项分为若干组,组与组之间用分割线隔开。u在Delphi 中,菜单分割条也是一项菜单命令项,只不过该菜单命令项的Caption属性为“-”(减号)。u注意:菜单分割条的Caption属性只能为一个“-”(减号),多了反而不是分割条。10.2.4 菜单命令项热键u所谓热键,就是指在不打开菜单的情况下,直接使用预先
9、设置的组合键,就可以执行某个菜单命令项。u热键和快捷键不同,因为快捷键必须打开当前的菜单时才能打开。u菜单栏中的主菜单项只能有快捷键,而不能有热键。u如果要给菜单命令项设置热键,直接单击该菜单命令项的Shortcut属性,打开一下拉列表框,从中选择所需的热键名称即可。10.2.5 菜单命令项调整u创建完菜单后,经常会发生要在已有菜单、菜单命令项之间插入新的菜单或菜单命令项。u剔除不需要的菜单、菜单命令项,调整菜单、菜单命令项的排列等情况。u如果要在现有菜单、菜单命令项之前插入新的菜单、菜单命令项,可右击该菜单、菜单命令项,打开一个快捷菜单从中选择Insert命令。u如果要删除现有菜单、菜单命令
10、项,可右击该菜单、菜单命令项,打开一个快捷菜单,从中选择Delete命令项。u如果要调整现有菜单、菜单命令项的排列情况,可选择要调整的菜单、菜单命令项,按住并拖动鼠标,到所需位置再释放鼠标。10.2.6 创建级联菜单u级联菜单指的是菜单命令项包括的子菜单。u一个菜单可以有多级级联菜单。u从条理性级联菜单最好不要超过四级。u如果要为某菜单命令项创建级联菜单可以右击该菜单命令项,打开一个快捷菜单,然后从中选择Create Submenu命令(或直接按Ctrl+键)u此时,该菜单命令项就会出现一个右向三角形和一个空白的级联菜单。u往级联菜单的各菜单命令项的Caption属性中输入标题,并设置Name
11、属性和快捷键,就创建了一个级联菜单。10.3 菜单命令响应u主菜单对应于TMainMenu类,而每一项菜单和菜单命令项都对应于TMenuItem类。u这些TMenuItem都有自己的事件,用以响应各菜单命令项。10.4 运行时设置菜单 u在应用程序运行时,可以进行一系列的操作来调整菜单结构和外观。u如给菜单命令项添加单选或复选标记、将菜单命令项灰显、隐藏等。u通常,有五种属性可用于应用程序运行时设置菜单。10.4.1 菜单命令项灰显u当我们在进行菜单操作时,有时要求某项菜单或菜单命令项不能被用户操作。u就把该菜单或菜单命令项用灰色显示,用户对它的操作不会有任何响应。uEnabled属性:可用于
12、在运行时将菜单命令项灰显。u菜单命令项灰显可以通过设置菜单命令项的Enabled属性来实现,当该属性为True时,菜单命令项有响应;u当该属性为False时,菜单命令项灰显,不响应鼠标和键盘操作。10.4.2 菜单命令项隐藏u菜单或菜单命令项灰显是为了让用户不能对它操作。u但是由于它的可见性,总会吸引用户的注意,所以有时我们干脆让菜单或菜单命令项隐藏起来。uVisible属性:可用于在运行时隐藏菜单命令项。u当该属性为True时菜单命令项可见。u属性为False时,则该菜单命令项隐藏。10.4.2 改变菜单命令项文本u在运行程序时,可以让菜单命令项根据运行的情况来调整菜单命令项的文本内容。u这
13、主要通过菜单命令项的Caption属性来实现。10.4.3 菜单命令项单选标记u所谓单选菜单命令项就是一组相互排斥的菜单命令项,用户只能在该组命令项中选择一个。u设计单选菜单命令项,必须保证两个条件。首先这一组菜单命令项位于同一下拉菜单或同一级联菜单中,而且它们的GroupIndex属性必须相同;其次RadioItem属性都是True。这样,唯一被选中的菜单命令项前面就出现一个圆点标记,表示该菜单命令项被选中。菜单命令项的Checked属性为True时,就添加单选标记;为False时,取消单选标记。10.4.4 菜单命令项复选标记u复选标记是指当用户选中某个菜单命令项时,系统会在该菜单命令项前
14、加一个复选标记“”。u复选标记常用于一些状态设置的菜单命令项,如果取消选中,则“”标记消失。u设置复选标记很简单,只要把菜单命令项的Checked属性设置为True。10.5 创建动态菜单u主菜单对应于Delphi 中的TMainMenu类,主菜单项(常简称为菜单)对应于Delphi 中的TMenuItem类。u通常主菜单栏中的各菜单构成一个列表,存储在主菜单(TMainMenu)的Items属性中。u而每一菜单中的菜单命令数则存储在该菜单(TMenuItem)的Count属性中。u这样,往主菜单栏中添加一个菜单,就可以利用TMainMenu类的Items属性,通过Insert方法来实现。u而
15、从主菜单栏中删除一个菜单,同样是利用Items属性,不过是利用Remove方法。u在菜单中添加或删除一个菜单命令,则需利用TMenuItem类的count属性,同样也是利用Insert或Remove方法。u动态添加菜单时,必须为每一菜单命令指定OnClick事件的响应过程名称。10.6 创建图形菜单u菜单中应用图形主要有两种方式,第一种方式是在菜单命令项前加上图标。第二种方式是以图形代替菜单命令项的文本来表示菜单命令项。u在许多应用程序的菜单命令项前,通常都有菜单命令项图标,这些图标一般都和工具栏上快捷按钮的图标一致。u同时,菜单命令项前拥有图标也使菜单命令项的含义更加直接易懂。u在Delph
16、i中,可以很容易地向菜单命令添加图标,用户只需向窗体添加一个图像列表(ImageList)控件,向该控件添加一系列位图,u再用菜单组件的Images属性将ImageList组件与菜单相连,并为菜单命令项设置相应的ImageIndex属性。u 注意:给菜单命令添加图标后,使用菜单命令的Checked属性时,将不会开出现“”标记,而是菜单命令图标下凹。10.6.1 菜单命令项图标10.6.2 图形菜单命令项u所谓图形菜单,指的是用位图代替菜单命令的文本,来显示菜单命令。u有些时候,以图形方式显示菜单,将更加直观和有效。10.7 菜单模板u我们在菜单设计中,可以让Delphi 自动创建某些格式的菜单
17、项。u使用菜单模板可以给用户节省大量的时间,不必再重复一些简单的格式设计,而且由于菜单模板使用的是标准Windows技术。u如菜单命令的命名、热键的设置都非常的规范。u当然,在某些场合菜单模板创建的菜单不能满足用户的要求,还需要自己修改。10.7.1 插入菜单模板u使用菜单模板,执行如下操作在窗体中插入MainMenu组件。双击MainMenu组件,进入主菜单设计器窗口。右击要插入菜单模板的空白主菜单项或空白菜单命令,或按组合键Alt+Fl0,打开一快捷菜单。选择Insert From Template命令,打开Insert Template(插入模板)对话框。选择所需的菜单。单击OK按钮,完
18、成插入菜单模板。u插入所需菜单模板后,就可以用上几节中所学的主菜单设计方法来对菜单进行定制或修改。并为其中的各个菜单命令加入OnClick事件响应程序。uDelphi 缺省情况下提供了Edit(编辑)菜单。File(文件)菜单。File(文件,用于文本编辑器菜单)。Help(帮助)菜单。Help(帮助,扩展)菜单。MDI框架菜单。Window(窗口)菜单共7个菜单模板10.7.2 创建菜单模板u如果要创建菜单模板,执行如下操作。在窗体中插入MainMenu组件。双击MainMenu组件,进入主菜单设计器。在主菜单设计器中设计所需菜单。右击已经创建好的主菜单,或按组合键Alt+F10,打开一快捷
19、菜单。选择Save As Template(保存为模板)命令,打开Save Template(保存模板)对话框。在Template Description(模板描述)编辑框中输入要保存的模板名称。单击OK按钮。u打开对话框时,就会发现对话框中有用户自己创建的菜单模板。10.7.3 删除菜单模板uDelphi 也允许用户删除不需要的菜单模板。如果要删除菜单模板,执行如下操作。打开主菜单设计器。右击主菜单设计器,打开一快捷菜单。选择Delete Templates(删除模板)命令,打开Delete Templates(删除模板)对话框。选择要删除的菜单模板。单击OK按钮。u这样就可以将选定的菜单模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 菜单 组件 使用
限制150内