Ver Mensaje Individual
  #3  
Antiguo 08-02-2006
Avatar de ebarbeito
ebarbeito ebarbeito is offline
Registrado
 
Registrado: sep 2005
Ubicación: Alicante (Spain)
Posts: 2
Reputación: 0
ebarbeito Va por buen camino
vtdeleon, gracias por tu respuesta :-) Aunque al final he modificado un poco la solución que pegué en mi primer mensaje.

Me he creado una variable (booleana) "allowed" dentro de la unidad flogin (unidad que alberga el formulario de inicio de sesión, frmLogin) que por defecto se encuentra a True. Con ella controlo en el fichero del proyecto el acceso, o no, al formulario principal. allowed cambiará a False en el comportamiento de frmLogin, cuando no se haya obtenido acceso legal a través del mismo (usr/pwd válidos). De este modo no tengo que llamar a Application.Terminate desde ninguna parte ni tampoco comprobar Application.Terminated (como puse en mi anterior mensaje)

Pego el fragmento de código del cuerpo modificado. Y, por supuesto, sigo abierto a sugerencias.

Código Delphi [-]
begin
  Application.Initialize;

  // comprobación de valores de configuración al iniciar
  With Config.Create(ChangeFileExt (Application.ExeName,'.ini')) Do
  Try
    // cuando se desea inicio de sesión
    If getUserSession Then
    Begin
        frmLogin := TfrmLogin.Create(Application);
        frmLogin.ShowModal
    End;

    // cuando el acceso es permitido
    If flogin.allowed Then
    Begin
        // cuando se desea ventana de bienvenida
        If getSplash Then
        Begin
            frmSplash := TfrmSplash.Create(Application);
            frmSplash.Update
        End;

        // instantiación de formularios, datos, etc.
        Application.CreateForm(TfrmMain, frmMain);
        { ... }

        If getSplash Then
            frmSplash.Free;
    End;

  Finally
    Free;
  End;

  // let's go!
  Application.Run;
end.
vtdeleon el código al que me has referenciado no me valía para cómo quería que se comportara el inicio de la aplicación. En caso de tener que lanzar el formulario frmLogin, solo me interesa crear la ventana de bienvenida (frmSplash) y el principal (frmMain) si se validan satisfactoriamente los datos de autenticación. En otro caso, no hace falta reservar memoria para más objetos pues la aplicación deberá entonces terminar.

Saludos
Responder Con Cita