Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   loggin (https://www.clubdelphi.com/foros/showthread.php?t=22001)

pharaonhx 03-06-2005 06:39:18

loggin
 
rocedure TPasswordDlg.BtnEntrarClick(Sender: TObject);
var
Nombre, Password: String;
I: Integer;
begin
Nombre := 'Flaco';
Password := 'Flaco20999';
I:=1;

repeat
if (EdNombre.Text = Nombre) and (EdPassword.Text = Password) then
begin
frmPrincipal.ShowModal;
end
else
begin
EdNombre.Clear;
EdPassword.Clear;
EdNombre.SetFocus;
BtnEntrar.Enabled := False;
end;//fin del if
I:=I + 1;
until I > 4;
Close;
end;
tengo este procedimiento en el click de un boton estoy tratando de crear un loggin lo que quiero que haga el programa de loggin es que luego de tres intentos por entrar fallidos el programa se cierre y no se donde me falla la loggica si alguien me puede ayudar se lo agradesere

_fede 03-06-2005 11:05:10

Introducir Password
 
Hola.

Basándome en la estructura de tu código y la solución que propones para implementar la pantalla de password.

procedure TPasswordDlg.BtnEntrarClick(Sender: TObject);
var
Nombre, Password: String;
begin
Nombre := 'Flaco';
Password := 'Flaco20999';

if (EdNombre.Text = Nombre) and (EdPassword.Text = Password) then
frmPrincipal.ShowModal
else
begin
EdNombre.Clear;
EdPassword.Clear;
EdNombre.SetFocus;
BtnEntrar.Enabled := False;

// Usamos, por ejemplo, la propiedad Tag del formulario que INICIALIZAMOS a
// cero para almacenar el número de intentos.
PasswordDlg.Tag := PasswordDlg.Tag + 1;

// Tres intentos erroneos.
if PasswordDlg.Tag = 3 then
ShowMessage('Tres intentos erroneos.');
end;

Close;

end;

Un saludo.

paufra 03-06-2005 11:18:07

Yo haria una pequeña modificación a tu código:
Código Delphi [-]
// Tres intentos erroneos.
if PasswordDlg.Tag = 3 then
    ShowMessage('Tres intentos erroneos.');
    Close; //<< Añadido
end;

//Close;  << Eliminar
Se supone que se debe cerrar cuando lleve tres intentos, por eso el close debe ir dentro del if, sino se cierra al primer fallo y saca el mensage al 3º (que no saldria nunca)


La franja horaria es GMT +2. Ahora son las 01:08:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi