Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Acceso Limitado (https://www.clubdelphi.com/foros/showthread.php?t=45271)

Lorenzo07 27-06-2007 20:34:09

Acceso Limitado
 
: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

Acceso
 
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
Código Delphi [-]
private
    { Private declarations }
    nIntentos: Integer;


Evento click del boton
Código Delphi [-]
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:
Código Delphi [-]
  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":
Código Delphi [-]
 
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

Acceso
 
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

Cita:

Empezado por eduarcol
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
Código Delphi [-]
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


La franja horaria es GMT +2. Ahora son las 21:37:15.

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