Есть стандартная конструкция сплешки: Пока запускается приложение, смотрим на сплешку
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | with TSplash . Create( nil ) do
begin
try
Show;
Application . Initialize;
Update;
Application . CreateForm(TMForm, MForm);
Application . ShowMainForm := False ;
Hide;
Application . ProcessMessages;
finally
Release;
end ;
Free;
end ;
Application . Run;
|
Код:
1 2 3 4 5 6 7 8 9 10 | procedure TMForm . FormCreate(Sender: TObject);
begin
SomeForm:= TSomeForm . Create(Self);
Application . OnRestore := AppRestore;
Application . OnMinimize := AppHide;
...
SomeLongProc;
PostMessage(Self . Handle, WM_AFTER_CREATE, 0 , 0 );
end ;
|
В итоге мы видим Splash, отрабатывает Create, исчезает Splash, но форма отображается только спустя 2-3 секунды. почему так? больше никакие события типа OnShow, OnPaint не обрабатываются. Откуда эта задержка? Хотелось бы чтобы держался SpLash до появления формы. Не уничтожать же его в ONPaint?