Asi es sitrico, lo he resuelto con un registro y el form de validacion lo largo en el oncreate del form principal de la sig manera:
Código Delphi
[-]
procedure TFPrincipal.FormCreate(Sender: TObject);
var
usuario:TFValidaUsr;
begin
usuario:=TFValidaUsr.create(nil);
if usuario.showmodal<>mrOK then
begin
usuario.Free;
Application.Terminate;
end;
end;
esta bien hacerlo de esta manera, que ventajas tiene hacerlo de la otra manera?
y para validar al usuario definí un procedure en la base firebird y quedo asi
Código Delphi
[-]
with modulodatos.ibspvalidausr do
begin
parambyname('PELOGIN').asstring:=Elogin.Text;
parambyname('PECLAVE').asstring:=EClave.text;
execproc;
if parambyname('PSVALIDADO').asstring='si' then
begin
ModalResult:=mrOK;
FPrincipal.usuario_actual.login:=ELogin.text;
FPrincipal.usuario_actual.id_usuario:=parambyname('PSID_USUARIO').AsInteger;
FPrincipal.usuario_actual.administrador:=parambyname('PSPERMISO').asInteger;
end
else
begin
ModalResult:=mrCancel;
showmessage('Usuario inválido');
end;
end;
y al registro lo defino asi
Código Delphi
[-]current_usr=record
login:string;
administrador:integer;
id_usuario:integer;
end;
luego creo una instancia de este el la parte publica del form principal para accederlo desde cualquier form.
Es correcto hacerlo de esta manera, es la primera vez que hago una validación de usuarios y me gustaria escuchar alguna opinion. Gracias
Fede