|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Сплеш-скрин и время появление формы
Есть стандартная конструкция сплешки: Пока запускается приложение, смотрим на сплешку
Код:
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; Код:
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); // некий не тяжелый код, который нельзя сделать в Oncreate end; |
#2
|
|||
|
|||
Решение в WM_After_Create
Код:
Show; Application.ProcessMessages; |
#3
|
||||
|
||||
Можно ещё вынести TSplash.Free из цикла и "грохать" её в OnShow формы, видимо, что-то тяжёлое идет при создании, вот и возникает задержка. Или, как раньше делали - посредством таймера там же, тогда сплешка наложится на основную форму и исчезнет только после её показа, просто на сплеш обычно отображается ход загрузки приложения, её предназначение, удержать юзера от хаотичных действий с устройствами ввода во время вынужденного какбе зависания при запуске
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |