zoukankan      html  css  js  c++  java
  • Delphi Menu Designer(菜单设计器)之三

    弹出菜单(快捷菜单)

    继续菜单的讨论,在Delphi中,可以和主菜单一样地建立弹出菜单。Delphi的优点是可通过组建的PopupMenu属性把特殊弹出菜单赋给组建。当鼠标放在组件上时,点击右键,就会自动弹出菜单。弹出菜单的事件处理程序和主菜单一样。

    文本编辑器的共同特点就是把Cut、Copy和Paste操作放到了快捷菜单上,下面将要为ScratchPad程序的Memo组建增加这样的功能。要建立弹出菜单,复制部分主菜单,遵循以下步骤:

    1、从组件面板中选择PopupMenu组件,并放置到窗体上。

    2、改变其Name属性为MemoPopup

    3、双击PopupMenu图标运行Menu Designer。

    4、点击右键弹出Menu Designer的快捷菜单,从快捷菜单中选择“Select Menu”。出现的对话框显示出应用程序中可以获得的菜单,选择MainMenu点击OK。如下图:

    0167

    5、点击Edit菜单,点击Cut菜单项,按住Shift键点击Paste菜单项。选中Cut、Copy和Paste三项。

    6、复制选择的项到剪贴板,从Delphi主菜单中选择【Edit | Copy】或者Ctrl + C

    7、在从Menu Designer的快捷菜单中选择“Select Menu”,这次选择MemoPopup并点击OK。Menu Designer弹出空弹出菜单。

    8、从Delphi主菜单选择【Edit | Paste】或Ctrl + V,Cut、Copy和Paste菜单项都插入到弹出菜单中,如下:

    0168

    在做几件事情就完成了,更改新的菜单项的Name属性:

    1、对于Cut菜单项,Name属性改为PopupCut

    2、对于Copy菜单项,Name属性改为PopupCopy

    3、对于Paste菜单项,Name属性改为PopupPaste

    最后步骤就是为弹出菜单写事件处理程序,主菜单中Cut、Copy和Paste事件处理已经写好了,重复写是多余的,还记得以前建立多个组件共享同一个事件处理程序吗?下面我来逐步实现:

    1、在Cut菜单上点击。

    2、在Object Inspector中点击Event标签。

    3、在OnClick事件的Value栏中点击下列按钮,显示出当前已有事件处理程序清单。

    4、从清单中选择EditCutClick。当点击弹出菜单的Cut时,Edit | Cut将被调用。

    0169

    5、对弹出菜单中的Copy菜单项的OnClick事件设置为EditCopyClick,Paste菜单项的OnClick事件设置为EditPasteClick

    6、在主窗口上点击Memo组件,改变其PopupMenu属性为MemoPopup

    image

    现在程序已经完成了,再次运行测试效果,如下:

    0170

    创建并保存菜单模板

    delphi提供了几个菜单模板,可以插入到主菜单和弹出菜单中。也可以在程序创建和保存自己的模板为将来使用。首先启动Menu Designer,建立菜单。

    创建了菜单后,从Menu Designer的快捷菜单选择“Save As Template…”,显示Save Template对话框。给菜单起一个有意义的名称,点击OK按钮,菜单作为模板保存。如下:

    0171

    要插入菜单,和以前一样从Menu Designer中选择“Insert From Template…”,在Insert Template对话框中选择即可。如下:

    0172

    要删除菜单模板,从Menu Designer中选择“Delete Template…”,在Delete Template对话框选择要删除的模板名称,点击OK即可。如下:

    0173

    Menu Designer是强有力的工具,特别由于输入菜单的能力,它使菜单的建立和编辑变得容易而有趣。

    以上代码均在Delphi 7中测试通过,本节示例代码下载:ScratchPad(菜单设计器之三).rar

  • 相关阅读:
    JavaScriptCore框架介绍
    可执行程序加载到内存的过程
    阿里云服务器怎么更换系统盘
    什么是A记录  域名
    宝塔服务器管理助手Linux面版-使用教程
    虚拟主机、VPS以及云主机的区别和对比
    怎样选择一个好的虚拟主机
    解Linux SSH命令大全,新手必看SSH命令
    虚拟主机,VPS,云主机之间的区别?
    云服务器和虚拟主机的区别:
  • 原文地址:https://www.cnblogs.com/pchmonster/p/2325030.html
Copyright © 2011-2022 走看看