我的主菜单是固定的。
数据库中:
用户组      节点     确认
001          N1       否
001          N2       否
001          N3       否
001          N4       是
001          N5       是
001          N6       是002          N1       是
002          N2       是
请问如何设置权限?
我先根据用户组把这个组的情况选出来,其他的就不会了。

解决方案 »

  1.   

    你的 节点n1  的意思是说 MainMenu的还是 TreeView1 呢
      

  2.   

    取得用户权限,然后根据权限设置N1的Enable
      

  3.   

    with ADOQuery1,MainMenu1 do
      begin
        SQL.Clear;
        SQL.Text:='Select ''001'' 用户组,''N1'' 节点,''否'' 确认'
                  +' UNION ALL SELECT ''001'',          ''N2'',       ''否'''
                  +' UNION ALL SELECT ''001'',          ''N3'',       ''是''';
        Open;
        while not(eof) do
        begin
          if FieldByName('确认').AsString='否' then
            Items.Find(FieldByName('节点').AsString).Enabled := False;
          Next;
        end;
      end;
    在MainMenu1先建N1,N2,N3节点进行测试
    其实最好的是根据权限动态建立节点!
      

  4.   

    //在开始的时候你要得到用户登陆的名字属于哪个组,这个很简单吧,现在比如是001组
    //把菜单的条目都设置成可以用的
    with ADOQuery1 do
    begin
      sql.clear;
      sql.add('select * from table where 用户组=001 and 确认=否');
      open;
      while not eof do
      begin
        mainmenu1.items.find(FieldByName('节点').AsString).Enabled := False;//改变为不可用
        next;
      end;
    end;
      

  5.   

    items属性是tmenuitem类型,而在此类型中还有一个属性,是items”此句话的意思我们可以创建菜单项,代码如下:
    1:新建一个工程。
    2:添加一个tmainmenu控件。
    3:添加一个button控件,并在button的onclick事件中写入如下代码:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    files,edit:tmenuitem;
    new,copy:tmenuitem;
    begin
    files:=tmenuitem.Create(self);
    edit:=tmenuitem.create(self);
    files.Caption:=’文件’;
    edit.caption:=’编辑’;
    mainmenu1.AutoHotkeys:=mamanual;{此句代码为不让系统自动设置快捷键}
    form1.MainMenu1.Items.Add(files);
    form1.mainmenu1.items.add(edit);
    {上部代码为创建菜单头}
    new:=tmenuitem.create(self);
    copy:=tmenuitem.create(self);
    new.Caption:=’新建’;
    copy.caption:=’拷贝’;
    files.Add(new);
    edit.add(copy);
    {上部代码为创建菜单项}
    end;
      

  6.   

    mainmenu1.items.find(FieldByName('节点').AsString).Enabled := False;//改变为不可用
    这样赋值怎么不对啊