var
qxb:boolean;
qxs:string
begin
qxs:=query.fiedbyname('qxs').asstribf
with not eof do
menui.n1.enable:=qxb
menui.n2.enable:=qxb
^^^^^^代码不完整,希望各位师傅按照这个思路
写完整,规范

解决方案 »

  1.   

    这样做试试:
      权限表有两个字段,用户名,权限
      如果menu菜单有10个子菜单,可以设置一个长度为10的字符串,每个字符表示每个菜单是否可用如为't'时可用,为‘f'是不可用function aaaa(a:string;i:integer):boolean
    begin
       if copy(a,i,1)='t' then
         result:=true
       else
         result:=false
    end;在设置系统权限是可用上面函数来确定是当前菜单是否可用
      var
        qxs:string
        i:integer;
      begin
        query.close;
        query.sql.clear;
        query.sql.add('select * from 权限表 where 用户名='...'');
        query.open;
        qxs:=query.fiedbyname('qxs').asstring;
        
        for i:=1 to 10 do
          menu.items[i].enabled:=aaaa(qxs,i)
      end