Contributor: DANIEL J. WOJCIK


Why does everyone want to make things so difficult?  Doing it this
way, the Splash pops up and stays up until the rest of the app is
initialized (with a minimum time set in the Splash form's
CloseQueary).  No muss, no fuss, no bother.

In the Splash form's unit ->
{----------------------------------------------------------}
PROCEDURE TSplash.FormCloseQuery(Sender: TObject;
                                 VAR CanClose: Boolean);
Begin
  REPEAT UNTIL GetTickCount-Start > 5000; {minimum time 5 seconds}
  CanClose := True;
end;

PROCEDURE TSplash.FormShow(Sender: TObject);
Begin
  Start := GetTickCount;  {Start is a CARDINAL variable in the
                           Private section of the Splash form}
End;

{---------------------------------------------------}

And in the .DPR ->

begin
  Application.Initialize;
  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TSplash, Splash);
  Splash.Show;
  Splash.Refresh;
  {any other forms to be created and other initialization
   stuff goes here}
  Splash.Close;
  Application.Run;
end.
{--------------------------------------------------}

This is the way I do it, and it works just fine.  My Splash form is
also my About Box, so I like it to be available throughout the life
of the app.

HTH

--
Daniel J. Wojcik
It looked so nice out this morning...
...I decided to leave it out all day!
--