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;

时间: 2024-10-27 15:42:34

Delphi制作动态菜单的相关文章

Flash8制作动态开门效果网页菜单

菜单|动态|网页 今天给大家讲解一个如何利用Flash制作动态网页菜单,如果好你就可以直接拿去用了!你也可以自己改进,改进好了别忘了去论坛告诉一声啊! 先看效果和源文件: 点击这里下载源文件 制作方法非常简单,在这里给大家简单的叙述一下!如果不明白就看源文件吧! 首先制作五个影片剪辑片段,说说方法,建立两个图层,下面这个图层绘制一个矩形,至于填充为什么颜色按你的喜好定就可以了!上面的图层输入要显示的文字.然后分别都在第15帧插入关键帧,下面的矩形稍微调整一下形状,上面的文字层稍微向上移动一点位置

jQuery结合CSS制作动态的下拉菜单_jquery

当要在一个有限的导航菜单空间放一个大的子菜单时,我们一般采用下拉菜单的形式来弥补空间的不足.本文将带大家用最少的时间,使用jQuery和CSS结合制作一个动态的下拉菜单. XHTML 首先是要在页面的head部分引入jquery库,这是必须的. <script type="text/javascript" src="js/jquery.js"></script> 接着我使用一个无序列表来构建菜单. <ul class="men

用NoahWeb表现层制作动态网站

web|动态 第一天开始之前先和大家介绍点NoahWeb概念吧:NoahWeb有两种可以互补的语法:表现层和逻辑层,其中表现层是专门用来控制表现效果的,指令非常少.一共13个指令,如果按功能来分的话就更少了!一共才9个,呵呵,很少.别小看这13个指令,学会使用这13个指令就已经做出各种漂亮的动态网站.别告诉我你不知道什么是动态网站!动态网站就是网页内显示的内容是来源数据库的,页面内容会根据数据库内容动态显示在网页里面. 如果需要了解更多NoahWeb的内容,请访问其主站:http://www.n

高手进阶:用FrontPage2000制作动态网页

frontpage|动态|网页 DHTML是动态网页的意思,它其实并不是一个标准的术语.事实上没有一种技术叫作DHTML.DHTML是利用CSS(层叠样式表),JavaScript,HTML等技术而建立的能与访问者产生互动的网页.比如在动态网页里,当访问者单击了某一张图片后,这张图片会自动的移动,这就是DHTML效果.也就是说,当网页下载完毕后,它无需再与服务器连接就能产生变化了.FrontPage2000提供了一套容易制作动态网页的方法,你可以建立起属于自己特色的动态网页. 使用DHTML的基

用Maya的粒子来制作动态的Logo

原始链接:http://cg.tutsplus.com/tutorials/3d--icles-in-Maya/ 原作者:Abed Ibrahim 使用软件:Maya 在本教程中,我将给大家讲解一下如何用Maya的粒子来制作动态的Logo. Step 1 首先点击Create菜单下的Text选项.(图01) 图01 Step 2 调整默认的参数,然后点"create".(图02) 图02 Step 3 在"Outliner".中找到文字的边缘线,按(Ctrl + h

如何在Flash制作动态网页?

  SWF动画文件中的图像.声音.文字和动画等都是固化在其中的,所以新的问题又出现了,就是如何在SWF文件中实现动态数据的显示?可用Flash中的FS Command来实现.以下,是如何在Flash制作动态网页 的具体操作步骤,希望对大家有所帮助! 进入 Flash 4.0,新建一个文件或打开一个已经做好的Flash页面.选择Insert/layer,新建一个层.确认新层为当前层后,用矩形工具画一无边框线的蓝色长方形(大小约为100px×120px)作为底色.再选择Text(文本)工具,设置字体

WPS演示制作动态幻灯片的方法

  WPS演示制作动态幻灯片的方法 1.运行WPS演示,系统会自动建立一个演示文稿.为了使幻灯片中的对象能够准确定位,我们还需进行如下设置:在屏幕上单击鼠标右键,在快捷菜单中单击"标尺"命令,使标尺显示;再次在屏幕上单击鼠标右键,在快捷菜单中单击"网格线和参考线"命令,弹出"网格线和参考线"对话框,勾选"屏幕上显示网格"和"屏幕上显示绘图参考线"选项,单击"确定"按钮保存设置,依次单击&

excel怎么制作动态图表?

excel怎么制作动态图表?   1.创建窗体 点击开发工具--点击插入--窗体控件. 右击--设置控件格式 数据源区域:如图所示,公司所在单元格区域 单元格链接:A9(不固定) 下拉显示项数:4,(即数据源区域所在个数). 效果如图所示,下拉菜单控件. 2.使用查找函数与窗体建立动态数据源 如图,输入公式,然后向右进行复制公式. 有关index函数,具体可以参看小编的经验 Excel中index函数的使用方法 如图所示,点击下拉菜单控件,选择不同的公司,通过公式引用的数据在变动,效果如图所示.

Photoshop制作动态下雨特效的3个简单实用方法

Photoshop制作动态下雨特效的3个简单实用方法   △ 这是原图 △ 方法一的效果 △ 方法二的效果 △ 方法三的效果 是的,你没看错,第三种方法是真的在"下"雨,是动态的,是动画的,而且悄悄剧透给小伙伴们,它还是最简单的,比第二种一键下雨的动作预设大法还要简单.那我们闲言少叙,马上开始"变身老龙王",让雨下起来喽. 方法一:滤镜大法 第一步,如下图操作所示,在PS中将原图打开,新建一个图层,命名为"雨". △ 新建雨图层 第二步,如下图所