如何动态生成菜单,并且在单击菜单项时获得每一个菜单的caption,name????
谢谢了

解决方案 »

  1.   

    procedure tform1.myclick(sender:Tobject);
    var
        Name,Caption:string;
    begin
        Name:=TItemmenu(Sender).Name;
        Caption:=TItemmenu(Sender).Catpion;
    end;
    procedure tform1.create(sender:Tobject);
    var
      Item:TMenuItem;
    begin
      Item:=TMemuItem.create;
      Item.Menu:=MainMenu1;
      Item.caption:='hello';
      Item.onclick=MyClick;
    end;
    end;
      

  2.   

    菜单的自动创建上面已经说了,我再补充一些
    菜单的动态生成有几种情况的
    1、自己意向创建菜单
    2、根据菜单的数据源来创建菜单
       这种情况有几种可能性,比如读取数据库取菜单信息、读取文件如XML文件取菜单信息
    菜单生成过程的要点:
    1、菜单的属性信息赋值,即取到数据时就给菜单的caption,Name赋值
    2、对菜单的单击事件进行赋值这个需要定义一些东东。
    1、根据你的需要进行配置菜单的单击事件
    2、菜单事件的编写,一般都是统一去做的,但是如果你是玩玩的可能会单独赋值。
    3、菜单单击事件的赋值。这一步很重要的,意味着系统菜单项单击的同时会触发你所赋值的那个事件。这些是理论。代码可以这样写:读取文件方式1、读取文件
    这个我就不给了
    2、根据文件的节点信息进行生成菜单项,并对相关属性信息赋值,]
    这个我也不写了
    3、菜单事件的定义定义一个菜单事件类
    TMenuClickEvent = Class
     ....function TMenuClickEvent.DoClick(Sender: TObject): NotifyEvent;
    begin
      //定义菜单操作
      //可以返回你需要的Caption和Name,上面的也给出了
    end;4、对菜单项的事件进行赋值,赋值是上上面的DoClick
      

  3.   

    非常感谢各位的帮忙
    czx0514(自己创业) 特别感谢你提供的设计思想