performance - 显示初始图像几秒钟是空白的

标签 performance delphi splash-screen

在我的应用程序中,我在连接到数据库和其他初始化过程中有启动图像。它可以很好地显示启动图像,但它是空白的。 所以,

  1. 启动图像在几分之一秒内加载并显示。
  2. 初始图像空白 2-3 秒。
  3. 几秒钟后再次显示初始图像。
  4. Splash 已关闭。

有什么聪明的方法可以尽快显示图像并删除空白图像吗?

DPR 文件中的代码:

Application.Initialize;

SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
// Tried Splash.Update here but no difference.

SplashForm.SetPos(15);
// Init code
SplashForm.SetPos(30);

// More Init code
SplashForm.SetPos(100);

SplashForm.Close;

Application.Run;

还有飞溅单元:

procedure TSplashForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TSplashForm.FormCreate(Sender: TObject);
begin
  pbLoading.Properties.Text := 'Loading ' + TClientConfig.Instance.AppTitle + '...';
end;

procedure TSplashForm.SetPos(aPos: Integer);
begin
  pbLoading.Position := aPos;
  UpDate;
end;

问候 罗兰

最佳答案

您的 SplashForm 需要接收 WM_PAINT 消息才能显示自己,除非消息泵正常工作,否则不会发生这种情况。

Application.ProcessMessages 放在 SplashForm.Show 之后。

关于performance - 显示初始图像几秒钟是空白的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4860029/

相关文章:

java - Android 上 Java lib 和 C++ dll 之间的性能

xml - Delphi DeHL 在较新的类中反序列化 XML 文件?

java - 如何在 JavaFX 中创建具有透明背景的启动画面

javascript - 与直接设置 css 相比,jQuery 动画开销速度为 0

CSS 性能,#id vs .class vs [^regex$] vs 选择器

java - 将 python 与更快的语言混合以在 GAE 中进行优化

DELPHI:如何在循环或案例之外使用 "break"?

delphi - 德尔福图抛物线与分辨率

iphone - 在 iOS 应用程序中模拟启动视频

ios - 当我的应用程序在启动屏幕下启动时,如何运行代码?