您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > DELPHI开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

用Delphi制作动态菜单
2002-06-03· · ··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;
■ 相关内容
 用Delphi编写VxD设备驱动程序
 基于Delphi的图像漫游
 用Delphi进行OpenGL编程学习心得
 DELPHI编程实现3DS的动画播放
 DELPHI图形编辑技巧二则
 Delphi中多媒体组件使用解析
 LED数码管仿真显示程序
 DELPHI中自适应表单的实现
 Delphi中利用MSCOMM控件进行GPS数据采集
 巧用Delphi制作溅射屏幕
 Delphi中动态链接库两种调用方式的比较
 Object Treeview:Delphi6新功能介绍
 Delphi开发单机瘦数据库程序要点
 Delphi中票据凭证的精确打印
 Delphi中带缓存的数据更新技术
 在Delphi和VC中创建和调用动态链接库
 使用Delphi启动和关闭外部应用程序
 通过Delphi访问Oracle数据库
 Delphi利用Windows GDI实现文字倾斜
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!