Du kannst auch das Ereignis OnActivate benutzen und nach der Anzeige dieses Ereignis löschen. Damit hast du doch praktisch schon alles fertig...
Delphi-Quellcode:
procedure TFormX.FormActivate(Sender: TObject);
begin
OnActivate := nil;
...
end;
// EDIT:
Nachteil bei einem solchen Vorgehen: Der Benutzer sieht schon das Formular und ärgert sich, dass es noch nicht reagiert. Deshalb nehme ich eher einen SplashScreen, wenn es wirklich zu lange dauert.
Und bei meinen besten Projekten benutze ich Threads, das ist zwar am aufwendigsten, aber für den Benutzer auch deutlich am besten.