Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-02-2010
valera valera is offline
Miembro
 
Registrado: abr 2005
Posts: 39
Poder: 0
valera Va por buen camino
Ayuda con Password dialog

Hola, muy buenas tardes, necesito de su ayuda, porque yo no le puedo, no le puedo y no le puedo, ya estuve checando varios hilos y sigo sin encontrarle una solucion. mi problema es el siguiente tengo una aplicacion MDI y utilizo un password Dialog para usuario y contraseña, quiero que el password dialog sea el primero en aparecer y cuando la contraseña sea incorrecta que me permita capturarla hasta 3 veces, el codigo en el archivo DPR:
Código:
{$R *.res}
begin
  Application.Initialize;
  Application.CreateForm(TPrincipal, Principal);
  Application.CreateForm(TPasswordDlg, PasswordDlg);
  Application.CreateForm(TModulo, Modulo);
  Application.CreateForm(TSplash, Splash);
  Application.CreateForm(TFrSeleccionarArt, FrSeleccionarArt);
  //Application.Run;
  PasswordDLG.ShowModal;
en el boton aceptar del PasswordDLG tengo el siguiente codigo, a es una variable global:

Código:
procedure TPasswordDlg.OKBtnClick(Sender: TObject);
var
i:integer;
begin
 if DBLookupComboBox1.Text=''then
   begin
     Showmessage('No ha seleccionado el usuario, favor de hacerlo');
     DBLookupComboBox1.SetFocus;
   end
else
   begin
     principal.Edit9.Text:=DBLookupComboBox1.Text;
     modulo.ADOEmpleado.Filtered:=false;
     modulo.ADOEmpleado.Filter:=('Nombre=')+ quotedstr(DBLookupComboBox1.Text);
     modulo.ADOEmpleado.Filtered:=true;
     Edit3.Text:=modulo.ADOEmpleadoId_empleado.AsString;
     modulo.ADOEmpleado.Filtered:=false;
     modulo.ADOPassword.Filtered:=false;
     modulo.ADOPassword.Filter:=('Id_empleado=')+quotedstr(Edit3.Text);
     modulo.ADOPassword.Filtered:=true;
     if Password.Text=modulo.ADOPasswordPassword.AsString then
       begin
         Splash.Show;
         Splash.Update;
         for i:=1 to 100 do
           begin
             Splash.ProgressBar1.Position:=i;
             sleep(20);
           end;
           Splash.Close;
           application.Run;
       end
     else
       begin
         Password.Clear;Password.SetFocus;
         showmessage(' La contraseña no es la correcta, intentelo de nuevo');
         a:=a+1;
         if a=3 then
           begin
             showmessage('Ya perdió usted las 3 oportunidades, Adios');
             application.Terminate;
           end;
       end;
   end;
end;
Espero su sugerencia, por su atencion y tiempo muchas gracias.
Responder Con Cita
  #2  
Antiguo 17-02-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Sería útil que nos contaras qué es lo que no funciona de tu código.

// Saludos
Responder Con Cita
  #3  
Antiguo 17-02-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Así de rapidez se me ocurre que podrias hacer del mismo splash el formulario del password.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #4  
Antiguo 19-02-2010
valera valera is offline
Miembro
 
Registrado: abr 2005
Posts: 39
Poder: 0
valera Va por buen camino
Creo que no me explique bien

Gracias por contestar, El codigo que les puse cuando la contraseña es correcta entra, eso esta bien, lo que no me funciona del codigo es que cuando la contraseña sea incorrecta quiero que me permita volver a capturar la contraseña hasta 3 veces y despues de las 3 veces sino le atino que me cierre la aplicacion.
Responder Con Cita
  #5  
Antiguo 20-02-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Para qué complicarse tanto,tan sólo has esto en el evento OnCreate de tu Formulario principal:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm:=False;//Esto hace que el formulario principal sea no visible.
end;
Luego en tiempo de Diseño pones la propiedad Visible=True y su propiedad FormStyle=fsNormal de tu formulario que es donde el usuario se Loguea, de esa manera cuando corra tu aplicacion lo primero que se va mostrar es el formulario donde se loguea.
Para el caso de sólo permitir 3 intentos pues te es suficiente tener una variable que cuente las veces que el usuario intentó, ésto sería en el boton de Aceptar de tu formulario de Logueo mas o menos así:
Código Delphi [-]
procedure TFormDeLogueo.ButtonAceptarClick(Sender: TObject);
begin
  if El_Logueo_EsValido then  //si el usuario a introducido el login y contraseña valida
       begin
         Self.Hide;//encondo el formulario de Logueo
         Application.MainForm.Show;// Recien muestro el formulario Principal
      end
  else
     begin
     Cantidad_de_Intentos:=Cantidad_de_Intentos+1;
       If Cantidad_de_Intentos=3 then
         begin
           ShowMessage('Intentos Agotados');
           Application.Terminate;//Termina la aplicacion ya intentó 3 veces
         end
       else
         ShowMessage('Usuario desconocido..');
     end;
end;
Desde luego debes inicializar la variable Cantidad_de_Intentos con cero, ésto lo puedes hacer en el evento OnCreate de tu formualrio de Logueo.
Espero te sea de Utilidad..
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 20-02-2010 a las 00:09:16.
Responder Con Cita
  #6  
Antiguo 20-02-2010
valera valera is offline
Miembro
 
Registrado: abr 2005
Posts: 39
Poder: 0
valera Va por buen camino
Gracias, ya solucione el problema

Hola rgstuamigo muchas gracias por la ayuda, apliqué tu idea en el programa y sí funcionó, y tambien gracias a todos los que me respondieron.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con código para password radenf Varios 7 29-10-2007 23:02:18
open dialog y memo Lucass Varios 1 07-08-2007 16:59:39
problemas con el cuadro Color.Dialog quake2420 Gráficos 6 20-05-2007 18:35:53
ayuda para ingresar password santoto C++ Builder 2 21-03-2007 02:21:10
dialog ilcapo C++ Builder 1 13-02-2006 08:27:04


La franja horaria es GMT +2. Ahora son las 09:07:27.


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
Copyright 1996-2007 Club Delphi