Wenn ich Form1.Show vor dem ControlForm.hide aufrufe, ist der Inhalt von Form1
unvollständig. Und das impliziert dein Ansatz doch, oder?
Da fällt mir spontan ein ...
...
Die showmessage() wird erst angezeigt, wenn Formular 2 komplett sichtbar ist.
In WMFormVisible kannst du jetzt den Begrüßungsbildschirm ausblenden, schließen oder was auch immer machen.