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;
With Config.Create(ChangeFileExt (Application.ExeName,'.ini')) Do
Try
If getUserSession Then
Begin
frmLogin := TfrmLogin.Create(Application);
frmLogin.ShowModal
End;
If flogin.allowed Then
Begin
If getSplash Then
Begin
frmSplash := TfrmSplash.Create(Application);
frmSplash.Update
End;
Application.CreateForm(TfrmMain, frmMain);
If getSplash Then
frmSplash.Free;
End;
Finally
Free;
End;
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