每一个菜单都有NAME,用NAME就可以控制每一个别菜单
mnuFile.visible := true;

解决方案 »

  1.   

    to xzm2000(不是云)
    你知道用啥方法实现“根据不同的权限实现对不同菜单项的选择“最好??
    谢谢!
      

  2.   

    to xzm2000(不是云)
    如何控制某一菜单"file"全不可用,“tool2"不可用;
    指点!!
      

  3.   

    换句话说:如何得到submenu的名字??
      

  4.   

    窗口使用继承:
          TMyForm = class(TForm);
          TabcForm = class(TMyForm);动态增加菜单:
          Item := TMenuItem.Create(MainMenu);
          Item.Caption := FMenu.Items[i].Form.Caption;
          Item.Tag := Integer(TabcForm);
          Item.OnClick := OnChildMenu;在OnClick事件中:
          with Sender as TMenuItem do TMyForm(TMenuItem(Sender).Tag).Show;
      

  5.   

    SubMenu的名字可以使用
      MainMenu.Items[i].Name取得
      

  6.   

    实际上
    mainmenu.items[index]返回的是一个tmenuitem对象。第一层菜单
    因为每个菜单项都可能有子菜单。所以tmenuitem的items[index]又是一个
    tmenuitem对象。所以这样可以一直按照层次访问下去。
    而且如果父菜单项的visible如果是false,则子菜单也全为false。不可见。
    每个菜单项有许多属性,方法事件。
    tmenuitem.caption就是菜单项的标题。
      

  7.   

    to ch81(missile) 
    我用
    “showmessage(MainMenu1.Items[0].Items[1].Name);"
    想显示“cut"的名字,结果报错:
    list index out of bounds(2);
    why!!!!
      

  8.   

    to ch81(missile) 
    我在button_onclisk中用
    for I:=0 to MainMenu1.Items.Count-1 do
        MainMenu1.Items[I].Enabled:=False;
    看不到任何结果,why???
    请指点!!
      

  9.   

    morphia(吗啡):
    我用
    “showmessage(MainMenu1.Items[0].Items[1].Name);"
    想显示“cut"的名字,结果报错:
    list index out of bounds(2);
    why!!!!  
      

  10.   

    你的Items[0]有没有子菜单的??
      

  11.   

    smile_and_smile(smile):我试过两段代码是没错的,如果有错的话是你的菜单建的有问题
    你访问的那一级菜单是不存在的。
    for I:=0 to MainMenu1.Items.Count-1 do
        MainMenu1.Items[I].Enabled:=False;//这样是访问最上面那一排菜单项,
    执行过后,因为这些都是下面菜单的父菜单项。所以全部菜单变灰。而且无法访问
    下一级菜单。
    showmessage(MainMenu1.Items[0].Items[1].Name);
    所有的菜单项下标都是从0开始,你个提示是说你的item[0].item[1]是空的。
    已经超出了它的序列。
    所以你菜单项要建好。如:
    File         Edit
     Open          Cut
     Exit          
    这样items[0].items[1].caption为exit。
    caption是标题。
      

  12.   

    不好意思,很久没关注了
    如果你要使file的所有子菜单不可用,只要判断菜单的parent是否为file就可以了showmessage(cut.Parent.Name);  // 显示出来的是file
    假设你的file是第一项
      for i := 0 to mainmenu1.Items[0].Count - 1 do
        if mainmenu1.Items[0].Items[i].Parent.name = file.Name then
          mainmenu1.Items[0].Items[i].Enabled := false;
      

  13.   

    to xzm2000(不是云) 
    不知为啥,你的方法使用无法成功??
      

  14.   

    to xzm2000(不是云) 
    不知为啥,你的方法使用无法成功??
      

  15.   

    我试过可以通过的,file为菜单的caption,不是name