e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 程序开发 >> Delphi教程 >> 用Delphi制作动态菜单 >> 教程正文
 
教程搜索
 
 
相关教程
  • 利用Delphi和金山词霸制作批量单词翻译
  • Delphi2005的使用感受
  • delphi2005启动加快
  • ShadowStarCodeFastV0.5支持HTML格式拷
  • Delphi组件编写--扑克牌组件
  • delphi7找不到TBDEClientDataSet控件的
  • 动态连接数据库及动态建立ODBC,DSN(ZT
  • DelphiINPUTHelperv1.5forDelphi2005
  • 如何显示子线程的当前状态
  • delphi调用sql-server2000存储过程
  • 对TMemoryStream的一些改进
  • ShadowStarCodeFast截图
  • 代码优化分析一例
  • Delphi中的属性property(适合初学del
  • 小知识:MPEG音频压缩规格一览
  • SQLServer注入工具1.0
 
 

图文教程


  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”

  • 综合运用Office 2007批量制作奖状

  • 没有系统盘如何才能修复受损系统?

  • 巧妙运用Excel中边界的附加功能!
 
 
赞 助 商
 
 
用Delphi制作动态菜单
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2006-9-8
  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编程实现3DS的动画播放
  • 下一篇教程: 利用Delphi编写Socket通信程序
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.