Ver Mensaje Individual
  #3  
Antiguo 28-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
No deberías cambiar el flujo del programa en otro archivo, yo al menos lo haría así:
En el dpr, se crea y se muestra la ventana de login en forma modal, así que se quedará en esa ventana pidiendo el login.

Desde la ventana devolvemos una de las constantes Modal Result, mrOk si el usuario y clave son válidos y mrCancel cuando se llegue a 3 intentos fallidos.

Justo al asignar un valor a la propiedad password.ModalResult, se vuelve al código del dpr, finalizando o continuando la aplicación.

Código Delphi [-]
program sistema;

uses
  Forms,
  main in 'main.pas' {Principal},
  hhija in 'hhija.pas' {Hija},
  data in 'data.pas' {Datos: TDataModule},
  splas in 'SPLAS.PAS' {Splash},
  acerca in 'ACERCA.PAS' {about},
  pasword in 'pasword.pas' {password};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(Tpassword, password); // Agregue esta linea
  
  if password.ShowModal <> mrOk then 
      Application.Terminate
//pon la propiedad visible de este form a false
// para que no de error alguno.
  else 
  begin
  password.Free; 
  Splash := TSplash.Create(nil);
  Splash.Show;
  Splash.Update;
  Application.Title := 'Sistema Protegido';
  Application.CreateForm(TPrincipal, Principal);//MdiForm
  Application.CreateForm(THija, Hija);//MDiChild
  Application.CreateForm(Tpassword, password);//FSStayontop
  Application.CreateForm(TDatos, Datos);//datamodule
  Splash.Free;
  end;
  Application.Run;
end. // <- aqui marca error (leer mas abajo)

He escrito de memoria, si alguien ve un error que lo comente.
Código Delphi [-]
Var
 clave : String; // contiene la clave de la BD
Begin
 if clave = edit1.Text then
  begin
   ModalResult := mrOk;
  end
else
 begin
  MessageDLG('Clave Incorrecta',MTError,[MbRetry],0);
  c := c +1;
    if c = 3 then ModalResult := mrCancel;
 end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita