Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание собственного окна загрузки в Delphi 10 Seattle: пошаговая инструкция

Delphi , ОС и Железо , Монитор и Экран

Создание собственного окна загрузки в Delphi 10 Seattle

Вопрос пользователя заключается в том, как создать собственное окно загрузки (splash screen) в Delphi 10 Seattle, вместо использования стандартного изображения PNG через опции проекта. Это может быть полезно для создания более персонализированного и интерактивного приветственного экрана для вашего приложения.

Описание проблемы

Пользователь столкнулся с трудностями при попытке реализации собственного окна загрузки в Delphi 10 Seattle. Он нашел решение для предыдущей версии (XE2), но оно не работает в новой версии среды разработки. Пользователь предоставил несколько примеров кода, которые он пытался использовать в своем проекте, но они не привели к желаемому результату.

Контекст и решение проблемы

В контексте предоставленной информации важно отметить, что в FireMonkey, который используется в Delphi 10 Seattle, можно изменять основной формы приложения во время выполнения. Это означает, что окно загрузки должно быть показано сначала, затем выполнены все необходимые задачи, и только после этого происходит переход к основной форме приложения.

Подтвержденный ответ

Для создания собственного окна загрузки в Delphi 10 Seattle, следует использовать следующий подход:

  1. Создайте форму окна загрузки в среде разработки.
  2. В методе FormCreate формы окна загрузки, отключите таймер, который будет использоваться для переключения на основную форму.
  3. В методе SplashImagePaint включите таймер, который будет контролировать время показа окна загрузки.
  4. В обработчике события таймера, после завершения загрузки, отключите таймер и переключитесь на основную форму.
  5. В методе LoadMainForm создайте основную форму и сделайте ее основной формой приложения, после чего закройте окно загрузки.

Вот пример кода для формы окна загрузки:

procedure TFormSplash.FormCreate(Sender: TObject);
begin
  StartupTimer.Enabled := false;
  StartupTimer.Interval := 500; // Время показа окна загрузки можно изменить
end;

procedure TFormSplash.SplashImagePaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);
begin
  StartupTimer.Enabled := not FInitialized;
end;

procedure TFormSplash.StartupTimerTimer(Sender: TObject);
begin
  StartupTimer.Enabled := false;
  if not FInitialized then begin
    FInitialized := true;
    LoadMainForm;
  end;
end;

procedure TFormSplash.LoadMainForm;
var
  form: TForm;
begin
  form := TMainForm.Create(Application);
  form.Show;
  Application.MainForm := form;
  Close;
end;

Альтернативный ответ

В дополнение к вышеуказанному, важно помнить о следующих моментах:

  • Включите форму окна загрузки в обычный процесс загрузки основного приложения.
  • Используйте функцию Application.ProcessMessages для показа пользователю, что приложение создает форму.
  • Не запускайте процедуры в событии OnCreate основной формы, за исключением скинирования или инициализации скина. Вызовите их снова в файле DPR после создания основной формы.
  • Отключите основную форму после ее создания, чтобы пользователь не мог взаимодействовать с ней, пока не будет скрыто окно загрузки.

Пример кода файла DPR:

program xxxx;
uses
  Forms, MidasLib, ...;
{$R *.res}
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.Title := 'xxxxx';
  SplashFrm := TSplashFrm.Create(Application);
  try
    Application.CreateForm(TMain_Form, Main_Form);
    Main_Form.Skinning;
    Application.ProcessMessages;
    SplashFrm.FormStyle := TFormStyle.fsStayOnTop;
    Main_Form.Enabled := False;
    Main_Form.WindowState := TWindowState.wsMaximized;
    Application.ProcessMessages;
    SplashFrm.Show;
    // Дополнительный код...
  finally
    SplashFrm.Free;
    Main_Form.Check_Registration;
    Main_Form.Enabled := True;
    Main_Form.sStatusBar1.Panels[0].Text := 'Ready...';
    Application.ProcessMessages;
  end;
  Application.Run;
end.

Следуя этим инструкциям, вы сможете создать собственное окно загрузки, которое будет отображаться перед основной формой вашего приложения в Delphi 10 Seattle.

Создано по материалам из источника по ссылке.

Пользователь хочет научиться создавать собственное окно загрузки в среде разработки Delphi 10 Seattle, чтобы приложение имело персонализированный и интерактивный приветственный экран.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Монитор и Экран ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-13 22:51:46/0.0039198398590088/0