Ver Mensaje Individual
  #8  
Antiguo 30-07-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Reputación: 21
Chris Va por buen camino
Hola Compañero DOS!

Lo primero que debes hacer es declarar una variable en tu formulario. En esta variables almacenaras el número de intentos que ha hecho el usuario para iniciar sesión. Cuando esta variable llegue a 4, procedes a cerrar la aplicación. Puedes declarar la variable así:
Código Delphi [-]
type
    TForm1 = class(TForm)
    ...
    private
        Intentos: Integer; // la variable "Intentos" será para uso exclusivo del formulario
                           // por eso está en la sección "Private"
    ...
end;

Luego, en el botón para iniciar sesión, utiliza un código similar a este:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
    apellido, contrasena: String; // utiliza variables más descriptivas.
                                  // Es una buena practica de programación.
    ClaveCorrecta: Boolean;       // utilizada para indicar si el usuario
                                  // utilizó un usuario y contraseña correctos.
begin
    apellido := Edit1.Text;
    contrasena := Edit2.Text;
        
    edit1.Clear;
    edit2.Clear;
    edit1.SetFocus;
    
    while not Table1.Eof do // es lo mismo que "while table1.eof = false do"
    begin
        // comparar el usuario y contrasena
        if (Table1.FieldByName('apellido').AsString = apellido) and
           (Table1.FieldByName('clave').AsString = contrasena) then
        begin
            ClaveCorrecta := True;
            Form1.Hide;
            Form2.Show;
        end;
        
        // compararemos con el siguiente registro en la DB
        Next;
    end;
    
    // no se utilizó un usuario y contraseña correcta?
    if not ClaveCorrecta then
    begin
        ShowMessage('Clave Incorrecta');
        // aumentamos el número de intentos
        Inc(Intentos) // Inc(Intentos) = Intentos := Intentos + 1;
        
        // ya hizo los 4 intentos?
        if Intentos >= 4 then
        begin
            ShowMessage('Adios!');
            Application.Terminate; // cierra la aplicación
        end;
    end;
end;
Notarás que el código se hace un poco largo, pero es porque lleva notas explicativas. Además no es un código optimizado. Está basado en lo que tú ya has escrito. Aún así, espero que el código te sirva.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita