5.1弹出菜单
弹出菜单又称为快捷菜单,是在某个组件上右击时弹出的菜单。快捷菜单中提供了与该组件相关的命令,如下图所示。
与主菜单相比,弹出菜单具有更高的灵活性,它不但可以用于窗体本身,还可以用于窗体中的各种组件。
1.创建弹出菜单
在Delphi程序设计中,使用Standard面板中的PopupMenu组件来创建弹出菜单。将PopupMenu组件添加到Form窗体中后,双击窗体中的PopupMenu组件可以打开PopuMenu菜单设计器。
在PopupMenu菜单设计器中设计菜单项的方法与在MainMenu设计器中设计菜单项的方法类似。下面以创建下图所示的快捷菜单为例,介绍如何创建快捷菜单。
1)设计菜单项
在图中所示的PopupMenu菜单设计器中选中当前空菜单项,将Caption属性设为“撤销”,设置菜单名。然后依次添加分隔条、“剪切”、“复制”、“粘贴”、“删除”、分隔条和“全选”菜单项,即可得到如上图所示的快捷菜单。
2)设计菜单快捷键
快捷菜单也有快捷键。在默认情况下,系统会为快捷菜单中的每个菜单项自动关联一个快捷键,如上图所示,括号中的字母即为菜单项的快捷键。当快捷菜单弹出后,直接按菜单项右侧的字母键,即可执行该命令。
如果要自定义菜单的快捷键,需要将PopupMenu组件的AutoHotKeys属性设置为maManual。与设置主菜单快捷键一样,直接在Caption属性栏中输入快捷键即可。例如,选中“剪切”菜单项,将其Caption属性设置为“剪切(&X)”即可。以此类推,自定义快捷键如下图所示。
3)其他设置
在快捷菜单中,同样可以设置菜单项的子菜单,以及菜单项的选中状态和选择模式,方法与设置主菜单中相同。
2.设置弹出式菜单的位置
在应用程序中,主菜单的位置是固定不变的,而弹出菜单的弹出位置则由鼠标指针的位置决定,另外还可以通过设置PopUpMenu组件的Alignment属性来设置弹出菜单的弹出方式。该属性有3个值,分别为paLeft、paRight和paCenter。
3.建立弹出式菜单的关联组件
弹出菜单在使用时必须设置与其关联的组件,操作步骤如下:
(1)按前面介绍的方法建立一个弹出菜单,设置其名称为PopUpMenu1。
(2)选中要进行关联的组件,如Form窗体中的Memo1组件。
(3)将Memo组件的PopUpMenu属性设置为弹出菜单的名称PopUpMenu1即可。当在Memo组件上右击时,即可弹出快捷菜单。
4.弹出菜单的事件
主菜单最重要的事件是OnClick事件,弹出菜单最重要的事件是OnPopUp(弹出)事件。当与弹出菜单关联的组件上发生了右击动作时即触发OnPopUp事件。可在该事件中设置弹出菜单的属性。另外,还可以使用PopUp方法来设置弹出菜单出现的位置,该方法格式如下:
PopUpMenu.PopUp(X,Y);
其中,X和Y表示弹出菜单弹出位置的坐标。例如,PopUpMenu1.PopUp(100,100)表示在坐标(100,100)处弹出弹出菜单。下面通过一个实例来说明主菜单与弹出菜单的应用。
操作步骤如下:
1)设计界面
(1)在Form窗体添加一个Label组件,设置Caption属性设置为“测试内容”;再添加一个MainMenu组件和一个PopupMenu组件,它们的AutoHotKeys属性值均设置为False。
(2)双击MainMenu组件,打开主菜单设计器,选中首个空菜单项,将其Caption属性设置为“字体缩放”。
(3)选择“字体缩放”菜单项下的空菜单项,设置Caption属性为“放大”,ShortCut属性为Ctrl+B。使用同样的方法创建“缩小”菜单项,
并将其ShortCut属性设置为“Ctrl+S”。最后关闭菜单设计器。
(4)双击PopupMenu组件,在弹出的菜单设计器中创建“字体”和“色彩”菜单项。
(5)右击“字体”菜单项,选择快捷菜单中的CreateSubMenu命令,在弹出的菜单设计器中创建子菜单。选中第一个空菜单项,将Caption属性设置为“黑体”,用同样的方法再添加5个菜单,Caption属性分别设置为“宋体”、“隶书”、“-”、“加粗(&B)”、“倾斜(&I)”和“下划线(U)”。
(6)依次选择“黑体”、“宋体”和“隶书”菜单项,将它们的AutoCheck和RadioItem属性均设置为True,RadioItem属性设置为0。将“黑体”菜单项的Checked属性设置为True,“宋体”与“隶书”菜单项的Checked属性设置为False。
(7)依次选择“加粗”、“倾斜”和“下划线”菜单项,将它们的AutoCheck属性均设置为True,GroupIndex属性均设置为1。
(8)选中Label组件,将PopupMenu属性设置为PopupMenu1,设置于Label组件关联的弹出菜单。至此完成主菜单和弹出菜单的设计。
1.创建动作列表
动作列表组件位于Standard组件面板中,双击ActionList组件,即在Form窗体上添加一个动作列表。
添加动作列表
双击Form窗体中的动作列表,打开动作列表编辑对话框,如图下所示。该对话框有两个列表框,Categories列表框用于显示动作的类别,Actions列表框用于显示当前类别中的动作。可以在该对话框中添加系统预置或自定义的动作。