PDA

Ver la Versión Completa : Acceso Limitado


Lorenzo07
27-06-2007, 20:34:09
:rolleyes:Hola a todos, cómo le hago para limitar mi ventana de acceso a una cantidad de veces determinadas por ejemplo si el usuario que accesara a la forma principal o menú ha ingresado su nombre de usuario y su clave de acceso 4 veces me despliegue un mensaje informadole que ha tenido 4 intentos fallidos y cierre la ventana?

Las gracias anticipadas...:confused:

eduarcol
27-06-2007, 20:43:44
Una variable que se puede llamar nIntentos y si cuando verificas el usuario nIntentos = 4 entonces cierras :D

Lorenzo07
27-06-2007, 21:58:26
Crees que podrias ponerme algún ejemplo de guía, no soy muy experto en delphi, me estoy iniciando...:)

eduarcol
27-06-2007, 22:09:18
Declaracion de variables

private
{ Private declarations }
nIntentos: Integer;



Evento click del boton

begin
if TablaUsuario.AsString = edusuario.Text then
Abrir La Aplicacion
else
begin
ShowMessage('Usuario no valido');
Inc(nIntentos)
end;
if nIntentos = 4 then
begin
ShowMessage('Ha excedido el limite');
Close;
end;
end;


No lo he podido probar pero eso deberia funcionar

jhonny
27-06-2007, 22:17:12
Para colocar una variable global a la unidad, en este caso podríamos usar la sección de declaraciones privadas, asi:
private
nIntentos :Integer;
Y en el procedimiento (Evento de botón o como quieras llamarle), colocarías la otra parte... para efectos del ejemplo, me imagino que debe haber algo en tu aplicación que verifique, si es o no la contraseña correcta, a esa parte la llamare "ClaveCorrecta":

procedure TForm1.clave;
begin
if not ClaveCorrecta then
begin
Inc(nIntentos);
end;
if (nIntentos = 4) then
begin
ShowMessage('Ha sobrepasado la cantidad de intentos permitidos');
Application.Terminate; //El terminate no es muy recomendado, pero si te sirve un Close usalo...
end;
end;

Y Listo :), espero haberme explicado con claridad y que te sirva de algo. ;)

jhonny
27-06-2007, 22:21:04
Y de nuevo yo, con mis lentitudes de la semana :D :D :D

Lorenzo07
27-06-2007, 22:24:36
Gracias a ambos por la ayuda... aún no he probado ya que estoy en el trabajo y no tengo delphi aquí, pero en cuanto llegue a casa os probaré...Gracias:)

eduarcol
27-06-2007, 22:40:59
Perdon a todos los que han leido este hilo pero me equivoque en el codigo enviado y ya lo he editado

jhonny
27-06-2007, 22:51:49
Perdon a todos los que han leido este hilo pero me equivoque en el codigo enviado y ya lo he editado

Bueno, no recuerdo exactamente como lo tenias, pero me parece que con ese while que tenias estaba bien... ya que indicaba que si dicha contraseña era incorrecta, tenia que salir de nuevo el cuadro que capturaba la misma hasta 4 veces... bueno, aunque repito que la verdad es que no recuerdo exactamente como tenias cuadrado el asunto.

eduarcol
27-06-2007, 23:14:20
Lo tenia asi

while nIntentos < 4 do
begin
if TablaUsuario.AsString = edusuario.Text then
Abrir La Aplicacion
else
begin
ShowMessage('Usuario no valido');
Inc(nIntentos)
end;
if nIntentos = 4 then
begin
ShowMessage('Ha excedido el limite');
Close;
end;
end;


Eso funciona en pascal, en Objetos basta con que se acumule la variable cada vez que el usuario presiona el boton y si ya llego a 4 que lo bote