Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda con delphi 7en windows 7 (https://www.clubdelphi.com/foros/showthread.php?t=74119)

jacb1976 31-05-2011 20:32:52

Ayuda con delphi 7en windows 7
 
Estoy desarrollando una aplicacion para explotar una base de datos, estoy empezando con frame para logearse y entrar a la primera pantalla donde mostrare el menu, deje de usar delphi por algun tiempo y regreso otra vez a programar, mi problema es el siguiente una vez que valido que el usuario este dado de alta muestro un frame, mi problema es que al mostrar el segundo frame parece como si se ciclara, es decir se traba la pantalla en ejecucion, no responde el frame como que se queda congelado, el codigo que tengo es el siguiente,
Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
    Modulo1.passwords.First;
    While not Modulo1.passwords.EOF Do
    begin
        if (modulo1.passwords.FieldByName('usuario').asstring =edit1.Text) and (modulo1.passwords.FieldByName('pass').asstring =MaskEdit1.Text )then
            Begin
               Fmenu.showmodal;
            end
        else
            begin
              modulo1.passwords.Next;
            end;
     end;
     if modulo1.passwords.Eof then
      begin
          Showmessage('La contraseña no es la correcta, intente de nuevo por Favor');
          edit1.Text:='';
          MaskEdit1.Text:='';
          edit1.SetFocus;
          modulo1.passwords.Next;
      end;
end;
Por Favor diganme que estoy haciendo mal, por que por mas que le busco no se que hacer. Gracias

Caral 31-05-2011 20:49:52

Hola
passwords parece que es una tabla que recorres con un ciclo while.
Usa un query y no hagas tantas cosas para validar el usuario.
Saludos

jacb1976 31-05-2011 21:10:25

cual es el error
 
Pero me gustaria saber por que la segunda forma se vuelve inestable

Chris 31-05-2011 21:15:17

Exactamente que es FMenu? es el segundo Frame o un formulario?
No es recomendado usar ShowModal en este caso. Además cuando el usuario está dado de alta, el bucle WHILE no se termina nunca. En este caso has una llamada a break depués de Fmenu.showmodal;

Por otro lado, ten en cuenta lo que ha comentado Caral. Aún así no quiero hacerte sentir presionado a hacerlo porque talvez no tengas los conocimientos necesarios para hacer un LogIn más acorde. Aún así si te interesa puedes utilizar esta versión mejorada de tu código:

Código Delphi [-]
with Modulo1.passwords do
begin
    {$ B+}
    if not (Locate('usuario', [Edit1.text], [loCaseInsensitive]) and (FieldByName('pass').AsString = MaskEdit1.text)) then
    begin
        ShowMessage('La contraseña no es correcta....');
        ...
        exit;
    end;
    {$ B-}
end;    
// hacer el inicio de sesión
FMenu.Show; 
...

Saludos,
Chris

Chris 31-05-2011 21:16:52

PD: A propósito, Bienvenido al Club :) !


La franja horaria es GMT +2. Ahora son las 17:20:01.

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