你好,用了您的方法还是没用。我贴上我所有的代码 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;
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;