//数据库字段是T时action的enabled := True;
Taction(action).Enabled:=loginado2.FieldByName('ACTIONENABLE').Asstring = 'T';

解决方案 »

  1.   

     你好,用了您的方法还是没用。我贴上我所有的代码
    procedure TForm2.FormShow(Sender: TObject);
    var b,n:string;
    i:integer;
    action:tcontainedaction;
    begin
    n:='select userid,passwords from SF_USERS where userid='+''''+trim(form1.yhl.Text)+''''  ;
    b:='select userid,actioncaption,actionenable from SF_USERRIGHTS where userid='+''''+trim(form1.yhl.Text)+'''' ;
    with loginado2 do
    begin
     close;
     sql.Clear ;
            sql.Add(b);
            open;
    end;
    with loginado1 do
    begin
     close;
           sql.Clear ;
            sql.Add(n);
            open;
     end;
    if loginado2.Locate('userid',form1.yhl.Text,[]) then
    begin
    //RzBitBtn1.Enabled:=true ;//  测试用
    for i:=0 to actionlist1.ActionCount-1 do
    begin
    action:=actionlist1.Actions[i];
    if trim(loginado2.fieldbyname('ACTIONCAPTION').AsString)=Taction(action).Caption then
    begin
    //RzBitBtn1.Enabled:=false; //测试用
    Taction(action).Enabled:=loginado2.FieldByName('ACTIONENABLE').AsString='T';
    loginado2.Next;
    end
    else
    loginado2.Next;
    end;
    end;
    end;