TMainMenu 类[三] - 手动建立菜单(5) : 给菜单项添加事件
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus; type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure Proc(Sender: TObject); {声明将要被调用的方法}
end; var
Form1: TForm1; implementation {$R *.dfm} var
MyMenu: TMainMenu;
Item: TMenuItem; {实现将要被调用的方法}
procedure TForm1.Proc(Sender: TObject);
begin
if Sender is TMenuItem then
ShowMessage(TMenuItem(Sender).Caption);
end; procedure TForm1.FormCreate(Sender: TObject);
var
Itemd: TMenuItem;
begin
MyMenu := TMainMenu.Create(Self);
MyMenu.AutoHotkeys := maManual;
Self.Menu := MyMenu; Item := TMenuItem.Create(MyMenu);
Item.Caption := 'AA';
MyMenu.Items.Add(Item); Itemd := TMenuItem.Create(MyMenu);
Itemd.Caption := 'A&1';
Itemd.OnClick := Proc; {调用方法}
Item.Add(Itemd); Itemd := TMenuItem.Create(Item);
Itemd.Caption := 'A&2';
Itemd.OnClick := Proc; {调用方法}
Item.Add(Itemd);
end; end.
效果图:

不过, 菜单事件一般是使用 ActionList 的, 添加一个 ActionList 同时添加一个方法, 实现和上面同样的功能:
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ActnList; type
TForm1 = class(TForm)
ActionList1: TActionList;
Action1: TAction;
procedure FormCreate(Sender: TObject);
procedure Action1Execute(Sender: TObject);
end; var
Form1: TForm1; implementation {$R *.dfm} var
MyMenu: TMainMenu;
Item: TMenuItem; procedure TForm1.Action1Execute(Sender: TObject);
begin
if Sender is TMenuItem then
ShowMessage(TMenuItem(Sender).Caption);
end; procedure TForm1.FormCreate(Sender: TObject);
var
Itemd: TMenuItem;
begin
MyMenu := TMainMenu.Create(Self);
MyMenu.AutoHotkeys := maManual;
Self.Menu := MyMenu; Item := TMenuItem.Create(MyMenu);
Item.Caption := 'AA';
MyMenu.Items.Add(Item); Itemd := TMenuItem.Create(MyMenu);
Itemd.Caption := 'A&1';
Itemd.OnClick := Action1Execute; {调用方法}
Item.Add(Itemd); Itemd := TMenuItem.Create(Item);
Itemd.Caption := 'A&2';
Itemd.OnClick := Action1Execute; {调用方法}
Item.Add(Itemd);
end; end.
TMainMenu 类[三] - 手动建立菜单(5) : 给菜单项添加事件的更多相关文章
- 第二百三十七节,Bootstrap图标菜单按钮组件
Bootstrap图标菜单按钮组件 学习要点: 1.小图标组件 2.下拉菜单组件 3.按钮组组件 4.按钮式下拉菜单 本节课我们主要学习一下 Bootstrap 的三个组件功能:小图标组件.下拉菜单组 ...
- .net core3.1 abp动态菜单和动态权限(动态菜单实现和动态权限添加) (三)
我们来创建动态菜单吧 首先,先对动态菜单的概念.操作.流程进行约束:1.Host和各个Tenant有自己的自定义菜单2.Host和各个Tenant的权限与自定义菜单相关联2.Tenant有一套默认的菜 ...
- 【转】Android 菜单(OptionMenu)大全 建立你自己的菜单--不错
原文网址:http://www.cnblogs.com/salam/archive/2011/04/04/2005329.html 菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中, ...
- Android 菜单(OptionMenu)大全 建立你自己的菜单
转自:http://www.cnblogs.com/salam/archive/2011/04/04/2005329.html 菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单 ...
- 阿里云服务器:IIS网站的架设(一、环境设置与安装IIS网站 二、网站的基本设置 三、建立新网站(未完待续))
Windows Server 2012 R2的Internet Information Services (IIS)网站的模块化设计,可以减少被攻击面并减轻管理负担,让系统管理员更容易架设安全的具备高 ...
- NeuChar 平台使用及开发教程(三):使用 NeuChar 的菜单服务
上一篇<NeuChar 平台使用及开发教程(二):设置平台账号>我们已经完成了平台账号的设置,下面就马上来体验一下自定义菜单的设置吧! 进入某个 Neural Cell 的设置界面,在右侧 ...
- File类三种得到路径的方法
转: File类三种得到路径的方法 2010年11月29日 20:37:00 ssyan 阅读数:27123 标签: filemicrosoftstringexceptionwindowsunix ...
- 手动建立mapping以及增加属性
只能创建index时手动建立mapping,或者新增field mapping,但是不能update field mapping 1.手动建立mappingPUT /website{ "ma ...
- 每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询
前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoi ...
随机推荐
- Java 类的重载/匿名类的使用/可变形参
/** *1.类的方法的重载 *2.匿名类对象的传递和引用 *3.可变个数的形参(格式:1/对于方法的形参: 数据类型...形参名 * 2/可变个数的形参与同名的方法之间构成重载 * 3/可变个数的形 ...
- python3:iterable, iterator, generator,抽象基类, itertools的使用。
目录: iterable对象 iterator对象, 数据类型Iterator类 数据类型Generator类. 生成器表达式 collections.abc:容器的抽象基类.用于判断具体类. ite ...
- CentOS7 内核优化 修改参数
一:内核简介 内核是操作系统最基本的部分.它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间. 内核的分类可分为单内核和 ...
- 04—mybatis的关联映射
mybatis的关联映射一对一一对多多对多 一.一对一(一个人只能有一个身份证号) 1.创建表创建表tb_card CREATE TABLE `tb_card` ( `id` int(11) NOT ...
- 2018-2019 ACM-ICPC Brazil Subregional Programming Contest B. Marbles(博弈)
题目链接:https://codeforc.es/gym/101908/problem/B 题意:两个人玩游戏,有 n 块石头,初始坐标为(x,y),一次操作可以将一块石头移动到(x - u,y),( ...
- Centos7 Memcached 安装
1.Linux系统安装memcached,首先要先安装libevent库. yum install libevent libevent-devel 2.安装memcached yum install ...
- ibatis查询列表跟总记录,都引用相同SQL
在查询记录集合跟查询记录总记录数的时候,我们需要所写的SQL要一样,那么可以都引用同一个SQL.写法如下: <sqlMap namespace="Server"> &l ...
- RestTemplate发送GET请求
import org.springframework.web.client.RestTemplate; @Component @Slf4j public class JsSdkUtil { /** * ...
- 通信网络(CCF)【图的遍历】
问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M条通路,每条通路只能单向传递信息,即一条从部门a到部门b的通路只能由a向b传递信息.信息可以通过中转的方式进行传递,即如果a能将信息 ...
- (十七)线程,connect的第五个参数
采用多线程,将需要处理的后台数据放入子线程,为了能够跨线程调用,一种方法是使用类似线程锁对线程进行保护,另外一种方法使用Qt的信号槽机制.Qt的信号槽机制采用connect函数进行连接,connect ...