Delphi动态添加菜单
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ComCtrls;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
Button1: TButton;
N0000000001: TMenuItem;
RichEdit1: TRichEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N0000000001Click(Sender: TObject);
private
procedure MyClick(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
subItemName:String;
implementation
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
var addSubItem:TMenuItem;
i:Integer;
N:Integer;
SubMenuItemSource:String;
begin
N:=5;
SubMenuItemSource:='动态-';
for i:=0 to N do //N等于要添加的动态菜单数目,需事先定义为数值型变量,并赋值
begin
addSubItem:= TMenuItem.Create(Self);
addSubItem.Name := 'A'+IntToStr(i);
addSubItem.Caption := SubMenuItemSource+IntToStr(i);// 步骤1的SubMenuItemSource应先赋值
//FileOpenItem.Add(addSubItem);//在名称为FileOpenItem的菜单项下添加子菜单
addSubItem.OnClick:=self.MyClick;//步骤2的MyClick(),自定义菜单要响应的事件
self.MainMenu1.Items.Add(addSubItem);
end
end;
procedure TMainForm.MyClick(Sender: TObject); //动态菜单OnClick事件响应
begin
ShowMessage(TMenuItem(Sender).Caption); //显示选中的动态菜单标题,
end;
procedure TMainForm.Button1Click(Sender: TObject);
var addSubItem:TMenuItem;
i:Integer;
N:Integer;
SubMenuItemSource:String;
begin
self.MainMenu1.Items[0].OnClick:=nil; //变为无事件
N:=5;
SubMenuItemSource:='KKKKK-';
subItemName:=subItemName+'T';
for i:=0 to N do //N等于要添加的动态菜单数目,需事先定义为数值型变量,并赋值
begin
addSubItem:= TMenuItem.Create(Self);
addSubItem.Name := subItemName+IntToStr(i);
addSubItem.Caption := SubMenuItemSource+IntToStr(i);// 步骤1的SubMenuItemSource应先赋值
//FileOpenItem.Add(addSubItem);//在名称为FileOpenItem的菜单项下添加子菜单
addSubItem.OnClick:=self.MyClick;//步骤2的MyClick(),自定义菜单要响应的事件
self.MainMenu1.Items[0].Add(addSubItem);
end
end;
procedure TMainForm.N0000000001Click(Sender: TObject);
begin
showmessage('aaa');
end;
end.
Delphi动态添加菜单的更多相关文章
- Delphi动态添加控件
{动态添加导航} var Panl:Tpanel; MainPage,Subpage:TPageControl; TabSheet1: TTabSheet; ToolBar2: TToolBar; S ...
- Delphi动态创建菜单
在程序运行中动态创建菜单,主要使用TMeunItem类,所有菜单的条目都是TMenuItem的一个实例. 打开Delphi7集成开发环境,在默认新建工程里,放置一个Button1按钮和MainMenu ...
- 【Android初级】如何动态添加菜单项(附源码+避坑)
我们平时在开发过程中,为了灵活多变,除了使用静态的菜单,还有动态添加菜单的需求.今天要分享的功能如下: 在界面的右上角有个更多选项,点开后,有两个子菜单:关于和退出 点击"关于", ...
- MFC 单文档中动态添加菜单项和响应菜单事件
新建一个单文档程序 在查看菜单项中增加两个子菜单,分别为隐藏工具栏(ID_HIDE),新建菜单(ID_NEWMENU) 在Resource.h中增加一个ID_NEWMENU宏 #define ID_N ...
- menuStrip1动态添加菜单及快捷键
public partial class FormMkTest : Form { public FormMkTest() { InitializeComponent(); } private void ...
- ObjectARX动态添加AutoCAD传统下拉菜单入门篇(一)
ObjectARX动态添加传统下拉菜单入门篇 图文by edata , 转载注明出处 http://www.cnblogs.com/edata AutoCAD 添加传统下拉菜单有很多种方式,比较典型 ...
- EasyUI创建异步树形菜单和动态添加标签页tab
创建异步树形菜单 创建树形菜单的ul标签 <ul class="easyui-tree" id="treeMenu"> </ul> 写j ...
- 通过源码了解ASP.NET MVC 几种Filter的执行过程 在Winform中菜单动态添加“最近使用文件”
通过源码了解ASP.NET MVC 几种Filter的执行过程 一.前言 之前也阅读过MVC的源码,并了解过各个模块的运行原理和执行过程,但都没有形成文章(所以也忘得特别快),总感觉分析源码是大神 ...
- ContextMenuStrip 动态添加多级子菜单
1.首先要实例化几个ToolStripItem(要为某一父菜单添加几个子菜单就实例化几个):方法如下: /*添加子菜单*/ ToolStripItem ts_1 = new ToolStripMenu ...
随机推荐
- Vue.js项目脚手架构建
vue.js文档:https://cn.vuejs.org/v2/guide/ 参考这个或者参考菜鸟教程也可以,不过还是那句话官网权威. 我这个主要是看相关的学习视频搭建的. 一.环境准备 环境准备( ...
- Linux上安装Oracle的辛酸史
下个礼拜就要开始学习Oracle了,得嘞先在我的CentOS7上装一个(貌似听说Oracle装在Oracle Linux能得到更好的性能,不过懒得下Oracle Linux镜像,在CentOS7上装个 ...
- warning: ISO C++ forbids converting a string constant to 'char*'
第1种字符串赋值方式: char * fileName="./2017-09-02-10-34-10.xml";//这一种字符串赋值方式已经被ISO禁止了 第2种字符串赋值方式: ...
- Python虚拟环境和包管理工具Pipenv的使用详解--看完这一篇就够了
前言 Python虚拟环境是一个虚拟化,从电脑独立开辟出来的环境.在这个虚拟环境中,我们可以pip安装各个项目不同的依赖包,从全局中隔离出来,利于管理. 传统的Python虚拟环境有virtualen ...
- PAT A1017 Queueing at Bank (25 分)——队列
Suppose a bank has K windows open for service. There is a yellow line in front of the windows which ...
- Python package和module
package,即包,可以把功能相近的module(模块)组织在一起,以便更好地管理.Java中也有包的概念,作用类似,是为了更好地管理类和接口.package,说白了就是个目录,不过这个目录下一定要 ...
- QT pri 文件的作用
i 是什么东西?包含(include)的首字母.类似于C.C++中的头文件吧,我们可以把 *.pro 文件内的一部分内容单独放到一个 *.pri 文件内,然后包含进来. 接前面的例子,我们将源文件的设 ...
- xml中的四则运算与时间爱格式
取值第一个 和最后一个<tr> <td height="28" colspan="2" style="font-size:14px& ...
- Luogu3613 睡觉困难综合征/BZOJ4811 Ynoi2017 由乃的OJ 树链剖分、贪心
传送门 题意:给出一个$N$个点的树,树上每个点有一个位运算符号和一个数值.需要支持以下操作:修改一个点的位运算符号和数值,或者给出两个点$x,y$并给出一个上界$a$,可以选取一个$[0,a]$内的 ...
- Luogu P3388 【模板】割点(割顶)
一道求割点的板子题.还是采用经典的Tarjan算法. 首先大致和Tarjan求强连通分量相似,都是用\(dfn_x\)表示访问到\(x\)的时间(时间戳),\(low_x\)表示通过\(x\)回边能走 ...