Hola, muy buenas tardes, necesito de su ayuda, porque yo no le puedo, no le puedo y no le puedo, ya estuve checando varios hilos y sigo sin encontrarle una solucion. mi problema es el siguiente tengo una aplicacion MDI y utilizo un password Dialog para usuario y contraseña, quiero que el password dialog sea el primero en aparecer y cuando la contraseña sea incorrecta que me permita capturarla hasta 3 veces, el codigo en el archivo DPR:
Código:
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TPrincipal, Principal);
Application.CreateForm(TPasswordDlg, PasswordDlg);
Application.CreateForm(TModulo, Modulo);
Application.CreateForm(TSplash, Splash);
Application.CreateForm(TFrSeleccionarArt, FrSeleccionarArt);
//Application.Run;
PasswordDLG.ShowModal;
en el boton aceptar del PasswordDLG tengo el siguiente codigo, a es una variable global:
Código:
procedure TPasswordDlg.OKBtnClick(Sender: TObject);
var
i:integer;
begin
if DBLookupComboBox1.Text=''then
begin
Showmessage('No ha seleccionado el usuario, favor de hacerlo');
DBLookupComboBox1.SetFocus;
end
else
begin
principal.Edit9.Text:=DBLookupComboBox1.Text;
modulo.ADOEmpleado.Filtered:=false;
modulo.ADOEmpleado.Filter:=('Nombre=')+ quotedstr(DBLookupComboBox1.Text);
modulo.ADOEmpleado.Filtered:=true;
Edit3.Text:=modulo.ADOEmpleadoId_empleado.AsString;
modulo.ADOEmpleado.Filtered:=false;
modulo.ADOPassword.Filtered:=false;
modulo.ADOPassword.Filter:=('Id_empleado=')+quotedstr(Edit3.Text);
modulo.ADOPassword.Filtered:=true;
if Password.Text=modulo.ADOPasswordPassword.AsString then
begin
Splash.Show;
Splash.Update;
for i:=1 to 100 do
begin
Splash.ProgressBar1.Position:=i;
sleep(20);
end;
Splash.Close;
application.Run;
end
else
begin
Password.Clear;Password.SetFocus;
showmessage(' La contraseña no es la correcta, intentelo de nuevo');
a:=a+1;
if a=3 then
begin
showmessage('Ya perdió usted las 3 oportunidades, Adios');
application.Terminate;
end;
end;
end;
end;
Espero su sugerencia, por su atencion y tiempo muchas gracias.