`
jandroid
  • 浏览: 1898066 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Delphi弹出式菜单设计.5

 
阅读更多

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列表框用于显示当前类别中的动作。可以在该对话框中添加系统预置或自定义的动作。





分享到:
评论

相关推荐

    窗口中的弹出式右键菜单-delphi源码.rar

    窗口中的弹出式右键菜单-delphi PopupMenu源码,  procedure TForm1.Button1Click(Sender: TObject);  var  Poin:TPoint;  begin  Poin := Point(Button1.Left,Button1.Top Button1.Height);  Poin := ...

    Delphi 开发 Android 桌面图标长按快捷菜单

    这是使用Delphi 开发Android 程序需要桌面图标长按快捷菜单的功能实现程序 1. 包含全部源代码 2. 是在Delphi 11.1 下创建的工程,编译通过 3. 其他版本的Delphi 是没有问题的,但是可能需要重新创建工程

    Delphi 6集成开发环境

    3.9.2 鼠标右键弹出式菜单....................93 3.9.3 使用菜单模板................................93 3.10 工具栏和状态栏......................................94 3.10.1 ToolBar 组件........................

    Delphi 5编程实例与技巧

    4.1.2 鼠标右键弹出式菜单 99 4.1.3 使用菜单模板 99 4.2 工具栏 100 4.2.1 ToolBar 100 4.2.2 CoolBar 100 4.2.3 ControlBar 101 4.3 状态栏 101 4.4 方法与技巧 106 4.4.1 动态创建菜单 106 4.4.2 为菜单动态定义...

    Delphi 专业 界面 控件 Skin++ For Delphi(二)

    如:主菜单条、主弹出菜单、系统菜单、工具条、状态条、MDI客户区、MDI子窗口、MDI子窗口最大化后等各个部分的换肤细节。 Skin++ 3.0 可以对皮肤进行动态的色调设置 这个功能可以使您的程序可以瞬间拥有N套色调的...

    Delphi专业 界面 控件Skin++ For Delphi (一)

    如:主菜单条、主弹出菜单、系统菜单、工具条、状态条、MDI客户区、MDI子窗口、MDI子窗口最大化后等各个部分的换肤细节。 Skin++ 3.0 可以对皮肤进行动态的色调设置 这个功能可以使您的程序可以瞬间拥有N套色调的...

    DELPHI 5编程实例与技巧

    4.1.2 鼠标右键弹出式菜单 99 4.1.3 使用菜单模板 99 4.2 工具栏 100 4.2.1 ToolBar 100 4.2.2 CoolBar 100 4.2.3 ControlBar 101 4.3 状态栏 101 4.4 方法与技巧 106 4.4.1 动态创建菜单 106 4.4.2 为菜单动态定义...

    Delphi 深度探索(第二版)〖含随书光盘源代码〗

    4.3 阻断弹出式广告的bho 4.4 ie右键菜单扩展 4.5 ie下载扩展 4.6 创建3721样式的google搜索扩展 4.7 ie异步可插入协议扩展 4.8 创建可自动填表的ie面板插件 第5章 vcl深度探索 5.1 action开发之七种...

    DELPHI常用英文单词

    MainMenu 主菜单 PopupMenu 弹出式菜单 ImageList 图片列表组件 Toolbar 工具条 Statusbar 状态条 Opendialog 打开对话框 Savedialog 保存对话框 Fontdialog 字体对话框 Adoconnection 数据库连接组件 Adoquery 数据...

    delphi经典编程入门

    想使Object Inspector一直可见,可将鼠标移到Object Inspector上,按动右键,以启动Object Inspector的弹出式菜单,将其设置为Stay On Top。这对初学者常是一个很重要的设置方式。  1.2.2.3 窗体窗口  Forms...

    Delphi2010资源,delphi2010快捷键

    CTRL+J (弹出DELPHI语句提示窗口,选择所需语句将自动完成一条语句)代码模板 CTRL+K+E(F) 标识符变小(大)写 CTRL+K+O(N) 选中的变小(大)写 CTRL+O+U 切换选择块的大小写 SHIFT+鼠标左键 先选中任一控件,...

    一款超强的图形系统——Delphi源码Delphi-source-VG7.23

    可以制作对话盒、子窗口、弹出式窗口、菜单等窗口元素。 支持混合编程,不仅其他程序可以操控 Visual Graph 的技术,而且 Visual Graph 的脚本可以调用其他语言的程序,也可以调用 DLL,扩展功能。脚本语言的编程...

    delphi快捷键

    24.CTRL+J (弹出Delphi语句提示窗口,选择所需语句将自动完成一条语句)代码模板 25.Ctrl+M 同Enter键。 26.Ctrl+N 同Enter键,但光标位置保持不变 27.Ctrl+T 删除光标右边的一个单词 28.Ctrl+Y 删除光标所在行 29....

    共享软件“限时注册”控件Ver1.3-delphi版(含源码)

    ActiveMenuItem:TMenuItem 激活注册窗口的菜单项(点击此菜单项便能弹出“注册窗体”) ActiveButton:TButton 激活注册窗口的按钮(同上) Verion:string 控件版本号,只读的 OnGetMachineCode 事件,通过对...

    DCOM-Based Sharing Object between processes Demo In Delphi

    在弹出的菜单当中选择[属性],转到[标识]页,把运行该程序的用户配置为“交互式用户”(默认为“启动用户”) 单元补充: unit UnitManagedObject; interface uses Windows ; type TManagedObject = class(T...

    delphi 开发经验技巧宝典源码

    0223 怎样弹出ConnectionString设置页 148 0224 利用ADO获取DELETE后所影响的记录数 148 7.3 业务实现数据处理技术 149 0225 随机产生中奖号码 149 0226 使用快捷键保存数据 150 0227 密码只允许输入8位...

    TLCD99(液晶显示组件)

    TLCD99组件用来模拟液晶显示的。 在制作的时候一个弹出式菜单可以用在该控件上, 不需要任何BMP图 象的操作它可以简单的产生液晶显示的数字。 可以调整液晶显示数字的大小和范围

    delphi 开发经验技巧宝典源码06

    0223 怎样弹出ConnectionString设置页 148 0224 利用ADO获取DELETE后所影响的记录数 148 7.3 业务实现数据处理技术 149 0225 随机产生中奖号码 149 0226 使用快捷键保存数据 150 0227 密码只允许输入8位...

    IE WebBrowser编程技巧

    阻断弹出式广告的BHO 自动填表的IE面板插件 使用Delphi开发IE按钮扩展 使用Delphi开发IE右键菜单扩展 IE异步可插入协议扩展 Delphi开发IE下载扩展 创建3721样式的Google搜索扩展 HTML代码过滤技术 GetDefaultBrowser...

Global site tag (gtag.js) - Google Analytics