精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Delphi>>控件开发和使用>>菜单>>如何在Delphi中制作“动态选单”

主题:如何在Delphi中制作“动态选单”
发信人: chenjz@GZ()
整理人: teleme(2001-03-29 21:56:48), 站内信件

标  题: 如何在Delphi中制作“动态选单”
发信站: 网易虚拟社区 (Tue Aug 29 11:52:15 2000), 站内信件

            如何在Delphi中制作“动态选单”
(作者:李其 2000年06月01日 15:25)


  所谓动态选单是指选单项随着程序的操作变化而变化。现在,我们用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的SubMenuItemSour
ce应先赋值 

  FileOpenItem.Add(addSubItem); //在名称为FileOpenItem的选单项下添加
子选单 

  addSubItem.OnClick:=MyClick; // 步骤2的MyClick(),自定义选单要响应的
事件 

  end 

  end; 

--
我能翻译善写作熟电脑会说话可是为什么没工作?

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.104.221.250]

[关闭][返回]