Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16504120
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:21:08

下载本文示例代码
  所谓动态菜单是指菜单项随着程序的操作变化而变化。现在,我们用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来实现这一功能,具体步骤如下:  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制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单用Delphi制作动态菜单
阅读(195) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~