Unsere Struktur sieht grob so aus:
Delphi-Quellcode:
if TXyz.ExecuteCommandline
then
Exit;
Application.Initialize;
try
TXyz.Startup;
try
Application.MainFormOnTaskbar := True;
Application.CreateForm(..., ...);
Application.Run;
finally
TXyz.Shutdown;
end;
except
on E:
Exception do
begin
...
end;
end;
Das Hauptformular registriert sich selbst mit einem interfacebasierten Wrapperobjekt als Anzeige. Ein Splashscreen wird bereits vorher durch eine der ersten eingebundenen Units angezeigt.
Das kann man natürlich auf viele Arten machen, aber das Grundprinzip ist, dass der Programmablauf nichts mit der Anzeige zu tun hat, sondern diese lediglich angesprochen wird (und umgekehrt die Anzeige lediglich Interfaces abruft um Events an die Businesslogik weiterzugeben usw.).