CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

在DELPHI中动态生成菜单项,如何解决它的事件问题.

楼主bobit(迎着风)2002-05-19 13:52:18 在 Delphi / VCL组件开发及应用 提问

我在编程时遇到一个问题:   不能给每个动态生成的菜单分配一个有用事件处理过程(同一过程)  
      具体问题如下:   本人在一程序中采用了动态生成菜单项来管理备份的文件,既备份一次,增加一项,以后用菜单来调出备份的文件.  
        菜单项:  
                  Caption属性 用的是备份时间表示,  
                  Name属性 用"一字符(B)   +   intToStr(一整型变量(自动递增))",  
                  Hint属性 用的是"文件的备份路径及文件名表示"(用作传递给响应菜单单击     事件过程的参数)  
      OnClick属性 用的一个自定义过程.  
   问题来了:  
      如何在自定义过程中获得是那个菜单项的单击事件发生,并且要把它的Hint属性值取出,作为查询是的参数.  
     请各位朋友指教,谢谢 问题点数:100、回复次数:5Top

1 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2002-05-19 13:57:16 得分 0

暂时还没这样做过,今天有点烦想不了事,只好帮忙UP了……Top

2 楼xxmmmx(踢踏)回复于 2002-05-19 14:05:05 得分 0

/uuuuu..ppTop

3 楼lizhenjia(暴雪)回复于 2002-05-19 14:07:49 得分 100

很简单,判断事件的Sender参数就可以啊!如:  
  unit   Unit1;  
  interface  
  uses  
      Windows,   Messages,Menus,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls;  
  type  
      TForm1   =   class(TForm)  
          Button1:   TButton;  
          procedure   Button1Click(Sender:   TObject);  
          procedure   MyClick(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
  var  
      Form1:   TForm1;  
  implementation  
  {$R   *.dfm}  
  procedure   TForm1.MyClick(Sender:   TObject);  
    begin  
        showmessage((Sender   as   tmenuitem).Caption);  
    end;  
  procedure   TForm1.Button1Click(Sender:   TObject);  
    var  
        mymainmenu:tmainmenu;  
        myitem:array[0..2]   of   tmenuitem;  
        a,b:tmenuitem;  
        i:integer;  
    begin  
        mymainmenu:=tmainmenu.Create(self);  
        for   i:=0   to   2   do  
            myitem[i]:=tmenuitem.Create(self);  
        myitem[0].caption:='java'   ;  
        myitem[1].caption:='delphi'   ;  
        mymainmenu.Items.Add(myitem[0])   ;  
        mymainmenu.Items.Add(myitem[1])   ;  
        myitem[0].onclick:=MyClick;  
        myitem[1].onclick:=MyClick;  
    end;  
  end.  
  Top

4 楼lizhenjia(暴雪)回复于 2002-05-19 14:10:24 得分 0

忘了加hint了!  
  unit   Unit1;  
  interface  
  uses  
      Windows,   Messages,Menus,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls;  
  type  
      TForm1   =   class(TForm)  
          Button1:   TButton;  
          procedure   Button1Click(Sender:   TObject);  
          procedure   MyClick(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
  var  
      Form1:   TForm1;  
  implementation  
  {$R   *.dfm}  
  procedure   TForm1.MyClick(Sender:   TObject);  
    begin  
        showmessage((Sender   as   tmenuitem).Caption);  
        showmessage((Sender   as   tmenuitem).hint);  
    end;  
  procedure   TForm1.Button1Click(Sender:   TObject);  
    var  
        mymainmenu:tmainmenu;  
        myitem:array[0..2]   of   tmenuitem;  
        a,b:tmenuitem;  
        i:integer;  
    begin  
        mymainmenu:=tmainmenu.Create(self);  
        for   i:=0   to   2   do  
            myitem[i]:=tmenuitem.Create(self);  
        myitem[0].caption:='java'   ;  
        myitem[0].Hint:='j'   ;  
        myitem[1].caption:='delphi'   ;  
        myitem[1].Hint:='d'   ;  
        mymainmenu.Items.Add(myitem[0])   ;  
        mymainmenu.Items.Add(myitem[1])   ;  
        myitem[0].onclick:=MyClick;  
        myitem[1].onclick:=MyClick;  
    end;  
  end.  
  Top

5 楼zyq_123(我们愿意和各界朋友,相聚珠海,拥有成功,拥抱明天。)回复于 2003-01-24 22:20:47 得分 0

mrTop

相关问题

  • 如何动态生成菜单项?
  • 怎样在 pb 中动态生成菜单项??
  • 如何为动态生成的菜单项添加click事件
  • 动态建立菜单项
  • 动态添加菜单项
  • 如何动态生成菜单而且根据权限动态决定某菜单项是否可用呀?
  • 求救:使用菜单项目的ADD方法动态生成菜单后如何编写响应代码??
  • 如何动态创建菜单项?
  • 如何动态加入菜单项?
  • 如何动态添加子菜单项?

关键词

  • 属性
  • 文件
  • myitem
  • 菜单项
  • mymainmenu
  • myclick
  • tmenuitem
  • 动态生成
  • 事件
  • 备份

得分解答快速导航

  • 帖主:bobit
  • lizhenjia

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo