Ahi va el ultimo que estoy haciendo
Código Delphi
[-]begin
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
frmPresentacion := TfrmPresentacion.Create(Application);
try
frmPresentacion.Show;
frmPresentacion.Update;
Application.MainFormOnTaskbar := True;
Application.Title := '';
Application.CreateForm(TdmMain, dmMain);
if dmMain.TieneLicencia then
if dmMain.AbrirDB then
if frmMain.Login then
else
Application.Terminate
else
Application.Terminate
else
Application.Terminate;
finally
Application.ShowMainForm := not Application.Terminated;
frmMain.Visible := not Application.Terminated;
frmPresentacion.Free;
Application.Run;
end;
end.
Ok, El delphi sabe que frmMain es la ventana principal porque es la primera que se crea.
El splash no necesito mostrarlo Modal, porque en la funcion AbrirDB tarda un par de segundos en abrir la db y ves el splash.
Esta es la funcion Login:
Código Delphi
[-]function TfrmMain.Login: Boolean;
begin
frmLogin := TfrmLogin.Create(Application);
try
Result := IsPositiveResult(frmLogin.ShowModal);
finally
frmLogin.Free;
end;
end;
Asi que no hay nada de raro en lo que hago, solo no tengo un chorizo en la ventana principal y encapsulo donde debe estar las cosas.
Saludos