Create a form, make it FormStyle = fsStayOnTop , set the border style to none and the title will be empty. This will create a form that does not have a top title bar. Drop a TImage in the form and load a bitmap into it.
Drop the TTimer in the form (this will be used to make sure the splash screen stays on for at least some period.
Here is the code that I have in my splash form:
TSplashForm = class (TForm) Image1: TImage; CloseTimer: TTimer; procedure CloseTimerTimer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); private FStartTicks: integer; FOKToClose: boolean; public property OKToClose: boolean read FOKToClose write FOKToClose; end; var SplashForm: TSplashForm;
In FormCreate:
procedure TSplashForm.FormCreate(Sender: TObject); begin FStartTicks := GetTickCount; end; procedure TSplashForm.CloseTimerTimer(Sender: TObject); const CTimeout = 3000; begin if (GetTickCount - FStartTicks > CTimeout) and OKToClose then Close; end; procedure TSplashForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TSplashForm.FormDestroy(Sender: TObject); begin SplashForm := nil; end;
In the project file, do the following:
begin SplashForm := TSplashForm.Create(nil) Application.Initialize; Application.Title := 'My Program'; //create your forms, initialise database connections etc here Application.CreateForm(TForm1, Form1); if Assigned(SplashForm) then SplashForm.OkToClose := True; Application.Run; end.
(most of this code has been written off from my head, it cannot be compiled right away)
Nat
source share