Как сделать начальный SplashScreen для большого приложения [сообщение #2667] |
Fri, 30 June 2023 00:14 |
GrigoryFomin
Сообщений: 91 Зарегистрирован: April 2023
|
Member |
|
|
Имеется Delphi приложение, где-то 60МБ, оно запускается по сети. Пользователь его запустил - и ждет несколько секунд, пока появится первая форма. Можно как-то обозначить, что приложение начало загружаться, показать какое-то окно, и спрятать его, как все приложение скачается по сети и запуститься? Понимаю, что можно лоадер написать, который покажет окно, дождется запуска приложения и окно скроет, но может есть более красивое решение?
|
|
|
|
|
Re: Как сделать начальный SplashScreen для большого приложения [сообщение #2684 является ответом на сообщение #2676] |
Fri, 30 June 2023 19:53 |
GrigoryFomin
Сообщений: 91 Зарегистрирован: April 2023
|
Member |
|
|
МП писал(а) Fri, 30 June 2023 14:43сильно подозреваю, что формы создаются автоматом.
покажи текст DPR.
{$R *.res}
begin
Application.Initialize;
// TfmSplashScreen.BeginLoading;
Application.CreateForm(TDM, DM);
Application.CreateForm(TdmRep, dmRep);
// Application.MainFormOnTaskbar := True;
if not DM.connect2DB then exit;
// TfmSplashScreen.EndLoading;
case dm.Login2system of
-1:exit;
0:MsgError('Неверный пароль');
1:begin
Application.CreateForm(TwhMainForm, whMainForm);
Application.Run;
end;
end;
end.
[Обновления: Fri, 30 June 2023 19:53] Известить модератора
|
|
|
|
Re: Как сделать начальный SplashScreen для большого приложения [сообщение #2697 является ответом на сообщение #2692] |
Tue, 04 July 2023 19:01 |
shalamyansky
Сообщений: 149 Зарегистрирован: August 2022
|
Senior Member |
|
|
Цикл выборки и обработки сообщений спрятан в Application.Run. Попытки отрисовки чего-либо до его запуска не то, чтобы невозможны, но требуют хорошего понимания происходящего. Тут либо принуждать окно силой делать Paint, либо обрабатывать сообщения посредством ProcessMessages, либо еще какой фокус. В приведенном коде ничего на экране до момента Application.Run появиться не может.
[Обновления: Tue, 04 July 2023 19:04] Известить модератора
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|