Ver Mensaje Individual
  #18  
Antiguo 31-07-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 27
Caral Va por buen camino
Hola
Ya que entiendes mejor el codigo del amigo Chris veamos en lo que falla.
1- la variable que va sumando los intentos hay que declararla global, osea en donde se declara el form, aqui:
Código Delphi [-]
var
  Form1: TForm1;
  Intentos: Integer;

implementation
Por que?, por que si se declara en el mismo procedimiento no suma, aquí el valor se suma.
2- Cuando la clave y el usuario son correctos el form 2 se abre, PERO al cerrarse el programa se cuelga, no se cierra, queda el form 1 ahi, pero no se ve, hay que eliminar el form 2 y cerrar el programa.
Aqui te dejo el codigo, copialo y pegalo, ya esta probado.
Código Delphi [-]
var
    apellido, contrasena: String;
    ClaveCorrecta: Boolean;
begin
    apellido := Edit1.Text;
    contrasena := Edit2.Text;
    ClaveCorrecta := False;
    edit1.Clear;
    edit2.Clear;
    Table1.First;
    edit1.SetFocus;
    
    while Table1.eof = false do
    begin
        if (Table1.FieldByName('Usuario').AsString = apellido) and
           (Table1.FieldByName('Clave').AsString = contrasena) then
        begin
        try
        Form1.Visible:= False; // aqui se esconde el form 1
        Form2.ShowModal;  // aqui se muestra el form 2
        finally
        Form2.Free;  // aqui se elimina el form 2
        Application.Terminate;  // aqui termina el programa
        end;
        end;
        Table1.Next;
    end;
    if not ClaveCorrecta then
    begin
        ShowMessage('Clave o Nombre Incorrectos');
        Inc(Intentos);
        if Intentos >= 4 then
        begin
        ShowMessage('Adios!');
        Application.Terminate;
        end;
    end;

end;
Saludos
__________________
Siempre Novato
Responder Con Cita