Возможно, вы захотите, чтобы ваш Splash Screen отображался как можно раньше, поэтому в идеале это следует делать на этапе инициализации, тогда он должен исчезнуть только тогда, когда MainForm будет готова вступить во владение.
Это именно то, что мы делаем в нашем приложении, где мы снова используем диалоговое окно About в качестве заставки , а затем отпускаем его, когда MainForm крадет фокус.
В dpr как можно выше в пункте использования после необходимых блоков VCL / RTL:
f_adtDlgAbout in 'f_adtDlgAbout.pas' {frmDlgAbout}, // ASAP to be used as a Splash screen
Единица О (FYI, FormStyle
равно fsStayOnTop
и Position
равно poScreenCenter
):
unit f_adtDlgAbout;
[...]
type
TfrmDlgAbout = class(TForm)
[...]
procedure TfrmDlgAbout.SplashFormDeactivate(Sender: TObject);
begin
Release;
end;
initialization
// Use it as a Splash screen
with TfrmDlgAbout.Create(nil) do begin
AlphaBlend := True;
AlphaBlendValue := 208;
BorderStyle := bsNone;
btnOK.Visible := False;
OnDeactivate := SplashFormDeactivate;
Show;
Update;
end;
end.