文档介绍:4 菜单类组件和工具栏
第一部分 VCL Forms
大量的Windows应用程序都有主菜单,主菜单以界面直观而受到用户的欢迎,应用程序启动后显示给用户的第一界面就有主菜单,因此主菜单的设计非常重要。Delphi通过MainMenu组件来创建主菜单,MainMenu组件为非可视组件。在设计阶段,为窗体添加菜单后,MainMenu组件也显示在窗体上,而运行时主菜单将自动显示在菜单栏的位置。
MainMenu组件位于组件面板Standard选项卡上(图标为
)。
MainMenu组件
MainMenu组件的属性
创建主菜单时,将该组件拖放到当前窗体中(MainMenu组件不能改变大小),这时对象查看器中会显示出MainMenu的属性,。
1. AutoMerge属性
AutoMerge属性属性决定在多窗口的应用程序中。非主窗体的主菜单是否和主窗体中的主菜单合并。当AutoMerge的值False时,非主窗体的主菜单是不能和主窗体中的主菜单合并,否则能合并。
2. Images属性
Images属性是通过指定一组Bitmap或Icon的文件,在MenuItem中指定Images的索引,这样可以实现在菜单项中加入图标。
3. Items属性
Items属性用于存储主菜单中各菜单项的内容。在菜单编辑器中编辑菜单,编辑好后该项会自动设置。
双击窗体中的MainMenu组件或者在对象查看器中单击MainMenu组件的Items属性右侧的省略号将进入菜单编辑器,。在还没有编辑菜单时,菜单编辑器中的第一个空白菜单项高亮度显示。
用菜单编辑器编辑菜单
用鼠标单击菜单编辑器中的“文件”菜单,将在“文件”菜单下出现一个新的空白菜单,在Caption属性中输入“新建”,则该空白条上将出现“新建”的标题,。
菜单项(MemuItem)中几个重要的属性如下:
1. Caption属性
Caption属性决定了菜单的标题,一般是对要实现的菜单功能的描述。
2. Name属性
Name属性是菜单项对象的标志,在代码设计过程中通过Name对菜单进行引用。系统给Name属性的默认值是标题名后加1,如果输入的菜单属性为中文,则其Name属性将按N1,N2等进行编号。
3. Checked属性
Checked属性可以标记菜单项是否是选中状态。菜单项被选中后,将在左侧出现一个小“√”。程序设计中可以通过对该属性的判断来获取是否执行过某项操作。可以通过程序代码的方式莱设置菜单项为选中状态:
:=True; // DataInput1是菜单的名字
4. Enable属性
该属性确定菜单项是否有效。Enable属性为False时菜单项仍然出现在菜单中,但是将以灰色显示,并且不可选。可通过下面的代码可以设置菜单的Enable属性:
:=True;
5. ShortCut属性
该属性给菜单项定义快捷键,可以通过下拉列表选择。
6. Visible属性
该属性决定菜单项是否可见。如果Visible属性设置为False,则该菜单项将不出现在快捷菜单中。通过设置Visible属性就可以实现运行过程中动态地增加或减少菜单项。
7. Break属性
该属性可以把一个菜单分成几列来显示。它有下面3种设置方式:
●mbNone:在该菜单处不折行。
●mbBarBreak:在该菜单处折行,并且两列之间有一竖线分隔。 mbBreak:在该菜单处折行,两列之间没有竖线分隔。
如果确实有必要分成两列来显示,推荐使用mbBarBreak设置。下面的例子每当用户选择某一菜单时,窗体的颜色就作相应的改变:
procedure (Sender:Tobject);
begin
:=clBlue;
end;
在窗口的菜单栏上可以有多个菜单项。设计完一个菜单项后,单击右侧的虚框,将打开新菜单空白条,按照上面的步骤设计即可。
在一个菜单中如果有多个功能不太相同的菜单项组(如“新建”、“打开”、“保存”、“另存为”是一组,而“页面设置”、“打印”、“发送”是另外一组),可用分隔线进行分组。设计分隔线的方法是:在菜单栏的Caption属性中输入“一”即可,。
图4.