Hola
Te voy a explicar como lo hago yo:
Creo un campo (permiso) este campo es numerico, defino los permisos en base a la numeracion, 1, 2, 3
1= acceso a todo
2= acceso a x parte o botones
3= acceso a otros botones
asi se pueden tener tantos accesos o permisos como se quiera.
Agrego el campo a la tabla, esta quedara en tercer lugar, 0-1-2-3
el codigo que uso es este:
Lo reconoceras, facilmente:
Código Delphi
[-]
LoginOK :=False;
AdoQuery1.Parameters.ParamByName('Cod').Value:= Edit1.Text;
AdoQuery1.Active:= True;
If AdoQuery1.Fields[3].AsString = '1' then
begin
end;
If AdoQuery1.Fields[3].AsString = '2' then
begin
FmainForm.BitBtn3.Enabled := False;
FmainForm.BitBtn17.Enabled := False;
FmainForm.BitBtn18.Enabled := False;
FmainForm.BitBtn19.Enabled := False;
FmainForm.BitBtn6.Enabled := False;
FmainForm.BitBtn1.Enabled := False;
FmainForm.BitBtn2.Enabled := False;
FmainForm.BitBtn15.Enabled := False;
FmainForm.BitBtn14.Enabled := True;
FmainForm.BitBtn8.Enabled := True;
FmainForm.BitBtn23.Enabled := False;
FmainForm.BitBtn24.Enabled := False;
FmainForm.Timer2.Enabled := False;
FmainForm.PopupMenu7.Items[3].Enabled:= False;
FmainForm.PopupMenu7.Items[4].Enabled:= False;
FmainForm.PopupMenu7.Items[5].Enabled:= False;
FmainForm.PopupMenu7.Items[6].Enabled:= False;
FmainForm.PopupMenu7.Items[7].Enabled:= False;
FmainForm.PopupMenu7.Items[8].Enabled:= False;
FmainForm.PopupMenu7.Items[20].Enabled:= False;
FmainForm.PopupMenu7.Items[21].Enabled:= False;
FmainForm.PopupMenu7.Items[23].Enabled:= False;
FmainForm.PopupMenu7.Items[24].Enabled:= False;
end;
If AdoQuery1.Fields[3].AsString = '3' then
begin
FmainForm.BitBtn2.Enabled := False;
FmainForm.BitBtn3.Enabled := False;
FmainForm.BitBtn17.Enabled := False;
FmainForm.BitBtn18.Enabled := False;
FmainForm.BitBtn19.Enabled := False;
FmainForm.BitBtn16.Enabled := False;
FmainForm.BitBtn5.Enabled := False;
FmainForm.BitBtn6.Enabled := False;
FmainForm.BitBtn7.Enabled := False;
FmainForm.BitBtn1.Enabled := False;
FmainForm.BitBtn15.Enabled := False;
FmainForm.BitBtn13.Enabled := False;
FmainForm.BitBtn4.Enabled := False;
FmainForm.BitBtn14.Enabled := False;
FmainForm.BitBtn8.Enabled := False;
FmainForm.BitBtn27.Enabled := False;
FmainForm.BitBtn21.Enabled := False;
FmainForm.BitBtn22.Enabled := False;
FmainForm.BitBtn23.Enabled := False;
FmainForm.BitBtn24.Enabled := False;
FmainForm.BitBtn25.Enabled := False;
FmainForm.Timer2.Enabled := False;
FmainForm.PopupMenu7.Items[1].Enabled:= False;
FmainForm.PopupMenu7.Items[2].Enabled:= False;
FmainForm.PopupMenu7.Items[3].Enabled:= False;
FmainForm.PopupMenu7.Items[4].Enabled:= False;
end;
If AdoQuery1.RecordCount < 1 then
Begin
Cuenta := Cuenta + 1;
MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
Edit1.Text := '';
Edit2.Text := '';
AdoQuery1.Active := False;
If Cuenta = 3 then Close;
end
else
If AdoQuery1Clave.AsString = Edit2.Text then
Begin
LoginOk := True;
Usuario := AdoQuery1CodUsuario.AsString;
Nombre := AdoQuery1Nombre.AsString;
AdoQuery1.Active := False;
Close;
end
else
Begin
Cuenta := Cuenta + 1;
MessageDlg('Clave Inválida',mtError, [mbOK], 0);
Edit2.Text := '';
AdoQuery1.Active := False;
If Cuenta = 3 then Close;
end;
espero te sirva.
Saludos