原来的代码偶忘记了
只记得这不准确的一部分代码
var
qxb:boolean;
qxs:string
begin
qxs:=query.fiedbyname('qxs').asstring//把权限字符串读入qxs中
with not eof do
menui.n1.enable:=qxb
menui.n2.enable:=qxb
^^^^^^//用0,1确定menu的子菜单(n1,n2...)是否可用

解决方案 »

  1.   

    chechy师傅,我又想起来一点,修改一下
    var
    qxb:boolean;
    qxs:string;
    i:integer;
    begin
    qxs:=query.fiedbyname('qxs').asstring//把权限字符串读入qxs中
    for i:=1 to length(qxs) do
       if i=1 then  qxb:=true
          else qxb:=false;
    menui.n1.enable:=qxb
    menui.n2.enable:=qxb
    ^^^^^^//用0,1确定menu的子菜单(n1,n2...)是否可用
      

  2.   

    呵呵,你看这样好不好?
    qxb:=query.fiedbyname('qxs').asstring = "1";
    n1.enabled:=qxb
    n2.enabled:=qxb
      

  3.   

    呵呵,我可能最近C#程序写多了,有些符号不对。
    query.fiedbyname('qxs').asstring = '1'如果是True,那么qxb就是True,如果是False那么全选把就是False。这是我在C中经常干的。
    n1,n2应该是菜单吧,所以修改它们的Enabled属性就可以了。
      

  4.   

    是不是应该这样:
    if query.fiedbyname('qxs').asstring = '1'
    then qxb:=true
    else qxb:=false
      

  5.   

    这个:query.fiedbyname('qxs').asstring 
    具有读出字符串qxs的作用吗
      

  6.   

    楼主的这个
    query.fiedbyname('qxs').asstring 
    好象是很长的一个串。
    100010101111010101010101011011110101010110然后每位对应一个权限设置。for i:=1 to length(str) do
      begin
           T_F:=str[i]=1;  //这样写对吗?没试过。刚才看专家的这么写的。
           //下面是不是应该根据i的值,来写一个case,,来设置对应的菜单
          ///
       end;
      

  7.   


           T_F:=str[i]=1;  //这样写对吗?没试过。刚才看专家的这么写的。
           //写错了。应该加上'1'