用Delphi制作动态菜单


======================================================
注:本文源代码点此下载
======================================================

所谓动态菜单是指菜单项随着程序的操作变化而变化。现在,我们用delphi来实现这一功能,具体步骤如下:

1.首先,确定动态菜单的数据来源,即要确定动态菜单标题是来自windows的系统注册表,还是来自一个数据库,或者是来自一个子目录,主要由程序的功能而定。这里假设主窗口名为mainform,上面已有主菜单,其动态菜单的数据源是一个string(字符串)类型的变量,名称为submenuitemsource。

2.确定生成的动态菜单的功能,即定义动态菜单的onclick()事件,例如,动态菜单标题来自一个磁盘文件名时,那么程序在响应onclick()事件时,可能的操作是要打开选中的文件。因此,对菜单所在的主窗口模块的单元程序的数,据我们需要定义type后添加一个自定义的事件myclick()。

然后,需要编写如下myclick()事件的具体内容:

procedure tmainform.myclick(sender: tobject);//动态菜单onclick事件响应

begin

show.message(tmenuitem(sender).caption);//显示选中的动态菜单标题,

end;

这里调用的showmessage标准例程(在dialogs.pas中)显示tmenuitem(sender).caption,它就是选择的菜单项的caption,类似用tmenuitem(sender).name则是选择菜单项的name。

3.编写程序将动态菜单标题添加到指定的菜单顶下,并将其与onclick()事件联系起来。将以下程序段添加到mainform的oncreate事件过程中,可在程序启动时完成动态菜单的动态生成:

procedure tmainform.formcreate(sender: tobject);

var

addsubitem:tmenuitem;

i:integer;

begin

for i:=0 to n do //n等于要添加的动态菜单数目,需事先定义为数值型变量,并赋值

begin

addsubitem:= tmenuitem.create(self);

addsubitem.name := ′a′+inttostr(i);

addsubitem.caption := submenuitemsource; // 步骤1的submenuitemsource应先赋值

fileopenitem.add(addsubitem); //在名称为fileopenitem的菜单项下添加子菜单

addsubitem.onclick:=myclick; // 步骤2的myclick(),自定义菜单要响应的事件

end

end;


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值