Delphi动态创建MainMenu和PopupMenu菜单的方法
procedure TForm1.Button1Click(Sender: TObject);
var
MainMenu:TMainMenu;
MenuItem:TMenuItem;
begin
//创建主菜单对象,并设置主窗口的菜单为MainMenu对象
MainMenu:=TMainMenu.Create(Self);
Self.Menu:=MainMenu;
//创建MainMenu主菜单的第一级菜单对象 MainMenu.Items.Add
MenuItem:=TMenuItem.Create(MainMenu);
MenuItem.Caption:='一级菜单';
MainMenu.Items.Add(MenuItem);
//创建MainMenu主菜单的第二级子菜单对象 MainMenu.Items[0].Add
MenuItem:=TMenuItem.Create(MainMenu);
MenuItem.Caption:='二级菜单';
MainMenu.Items[0].Add(MenuItem);
//创建MainMenu主菜单的第三级子菜单对象 MainMenu.Items[0].Items[0].Add
MenuItem:=TMenuItem.Create(MainMenu);
MenuItem.Caption:='三级菜单';
MainMenu.Items[0].Items[0].Add(MenuItem);
// 用Items[0]...这种形式,可以创建 四级、五级直到N级菜单都可以
MenuItem:=TMenuItem.Create(MainMenu);
MenuItem.Caption:='四级菜单';
MainMenu.Items[0].Items[0].Items[0].Add(MenuItem);
end;
//弹出菜单事件
procedure TForm1.Button1Click(Sender: TObject);
var
pm: TPopupMenu;
mi: TMenuItem;
begin
pm := TPopupMenu.Create(self);
mi := TMenuItem.Create(self);
mi.Caption := '新建(&N)';
pm.Items.Add(mi);
mi := TMenuItem.Create(self);
mi.Caption := '打开(&O)';
pm.Items.Add(mi);
mi := TMenuItem.Create(self);
mi.Caption := '-';
pm.Items.Add(mi);
mi := TMenuItem.Create(self);
mi.Caption := '退出(&X)';
pm.Items.Add(mi);
mi.OnClick := miClick;
Button1.PopupMenu := pm;
end;
// 在类里定义
procedure TForm1.miClick(Sender: TObject);
begin
Close;
end;
在系统菜单中添加自新选项:
Append(GetSystemMenu(handle,false),MF_SEPARATOR,0,'');
Append(GetSystemMenu(handle,false),MF_STRING,200,'About(&A)');
WM_SysCommand消息处理函数
procedure SystemMenuCommand(var Msg:TWMMENUSELECT);message WM_SysCommand;
procedure TForm1.SystemMenuCommand(var Msg:TWMMENUSELECT);
begin
if Msg.IDItem=200 then
Form2:=TForm2.Create(Application);
Form2.Show;
Form2.Update;
end;
inherited;
end;
Delphi动态创建MainMenu和PopupMenu菜单的方法相关推荐
- html div 移除,js动态创建及移除div的方法
本文实例讲述了js动态创建及移除div的方法.分享给大家供大家参考.具体实现方法如下: //创建div function createDiv(){ if(document.getElementById ...
- c语言怎样响应右键弹出窗口,MFC创建右键弹出菜单的方法
本文实例讲述了MFC创建右键弹出菜单的方法.分享给大家供大家参考.具体实现方法如下: ①.添加一个菜单资源,ID为IDM_RIGHTMENU.因为在显示右键菜单时顶级菜单是不显示的,所以可以给它设置任 ...
- Delphi 动态创建类
昨天在看 Java Web 开发时有看到servlet 通过反射动态创建类,想到Delphi中能否实现. 环境 Win10 x64 , Delphi 10.4 需引用 System.Rtti : 发 ...
- 动态创建html元素的几种方法
可以通过以下几种方式动态创建html元素: 1.使用jQuery创建元素的语法 2.把动态内容存放到数组中,再遍历数组动态创建html元素 3.使用模版 □ 使用jQuery动态创建元素追加到jQue ...
- php动态创建属性,PHP使用方法重载实现动态创建属性的get和set方法
在PHP中,我们不能够直接通过方法名相同,签名不同的方法来@R_404_369@重载,因为PHP是弱数据类型,不能很好的区分签名.但是,可以在PHP的类中运用__call()方法来@R_404_369 ...
- Python+tkinter动态创建与销毁组件小案例
本文代码演示了如何在tkinter窗体上动态创建组件以及销毁组件的方法. import tkinter import tkinter.messagebox import tkinter.simpled ...
- ASP.NET AJAX Advance Tips Tricks (11) 三种方法动态创建Tooltip
前言 如何动态创建提示框(Tooltip)是ASP.NET Forum里的常见问题之一,在做技术支持时,我曾在英文博客上总结过ASP.NET和ASP.NET AJAX环境下如何动态创建提示框的三种常见 ...
- Unity换脸插件OpenCvForUnity动态创建面部特征点数据
因最近项目忙,暂停对此插件进行深一步的了解以及使用,最近有些小伙伴们私信我想看进一步的更新.这两天抽空进行针对性的问题进行了解,并解决动态创建面部特征点数据的方法整理一下,表达能力有限,代码来凑,尽量 ...
- VC++动态创建和删除菜单(转)
在应用程序中,往往要根据当前的操作来增加相应的菜单.动态增加菜单的方法有多 种,本文只讲述利用资源编辑器预创建菜单资源,然后在程序运行中动态加入(或删 除)到主菜单中去的方法. 一.用AppWizar ...
- delphi 自定义popupmenu_Delphi PopupMenu菜单为ListView的每个Items使用[原创]
马上注册,结交更多好友,享用更多功能^_^ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 『C.』Study... 于 2012-6-14 11:05 编辑 最近做一个Case就 ...
最新文章
- hdu 2602 Bone Collector
- 科学计数怎么转换成数字_手持式尘埃粒子计数器价格多少钱
- 程序员学好英语的方法(转)
- 2016/06/22 中色启动筹码分析作业
- 从武汉模式走向中国模式,打造人工智能产业发展的“中国样板”
- delphi xe3 mysql,delphi10.3安装使用mySQL
- 为什么Bert的三个Embedding可以进行相加?
- 数据结构笔记(参考王道考研系列)
- ubuntu18.04使用网易云音乐 ubuntu网易云音乐打不开怎么办? ubuntu安装网易云音乐
- 警惕“不续签劳动合同”式裁员
- 纽约客:变态连环杀手正在被算法迅速围剿
- 撰写合格的REST API
- edge浏览器如何设置始终在新标签页中打开?
- MM定理(Modigliani-Miller)证明与图解
- (三)Position Rank代码解读(一)
- 数值计算(三)-插值法(2)牛顿插值法
- Android中实现截图的几种方式
- java-线程的实现方式
- PFM与PWM的技术总结
- 苹果无线网服务器改什么速度快,苹果改dns提高网速(iphone国内最快的dns)