快捷菜单设计
所谓快捷菜单就是右击鼠标时,在鼠标当前位置弹出的菜单。快捷菜单可以更方便操 作和某些命令的选取,本节将介绍如何创建和使用快捷菜单。
创建快捷菜单与创建主菜单的过程基本相同,也是使用菜单设计器来完成,快捷菜单 组件——PopupMenu 位于组件板的 Standard 组件页上。
4.7.1 快捷菜单的设计
设计快捷菜单时,先在组件板的 Standard 组件页中选取 PopupMenu 组件,将其添加到 窗体中,然后双击 PopupMenu 组件,或右击组件从打开的快捷菜单中选择【Menu Designer】 命令,就可以打开菜单设计器。设计的过程与主菜单设计完全相同,这里不再重复。
注意:要在窗体上弹出快捷菜单,窗体的 PopupMenu 属性必须为要打开的快捷菜单名称
(PopupMenu 组件的 Name 属性)。如果空白,不能打开快捷菜单。
如果有多个快捷菜单,而且在不同的组件中打开,应该在要打开快捷菜单的组件的 PopupMenu 属性中指定要打开的快捷菜单名称。例如:要在组件 1(如 RichEdit)中使用快捷 菜单 1,应在组件 1 的 PopupMenu 属性中选择要打开的快捷菜单 1 的名称。在组件 2(如 Button)
中使用快捷菜单 2,应在组件 2 的 PopupMenu 属性中选择要打开的快捷菜单 2 的名称。
【例 4.5】 设计如表 4-3 所示的快捷菜单。
表 4-3 设计快捷菜单
设计完快捷菜单后,切记要在打开快捷菜单的窗体 (假定为 Form1)的 PopupMenu 属性中添加快捷菜单的名 称(假定为 PopupMenu1)。这样,运行时,在窗体中右击 才能打开快捷菜单。
运行后右击鼠标效果如图 4.18 所示。
4.7.2 快捷菜单的响应
快捷菜单有两种弹出位置的方式:一种是自动在鼠 标的指针位置弹出,称为自动方式;另一种是弹出位置 由用户自定义,称为手动方式。
如果采用自动方式,必须将 PopupMenu 组件的
AutoPopup 属性设置为 True,这也是默认方式。
图 4.18 右击鼠标后显示快捷菜单
如果采用手动方式,先将 AutoPopup 属性设为 False,通过函数 Popup(X,Y)来自定义 快捷菜单的弹出位置(X,Y)。然后给窗体添加 OnMouseDown 事件,并编写相应的代码, 下面给出了样本代码。
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then
PopupMenu1.Popup(Form1.Left,Form1.Top Form1.Height-100);
end;
上面的 Button=mbRight 表示右击鼠标。程序运行后,
在窗体上的任意一个位置单击右键,就会在窗体的左下角弹 出快捷菜单,如图 4.19 所示。
至于快捷菜单中菜单命令的响应,仍是通过给菜单命令 添加 OnClick 事件,通过事件响应过程来实现菜单命令的功 能。这一点与主菜单完全相同,这里不再重复。
将单元文件另存为“Unit4_5.pas”,将项目文件另存为 “Project4_5.dpr”。