Rol*_*son 2 delphi performance splash-screen
在我的应用程序中,我在连接数据库和其他初始化期间有一个启动图像.它可以很好地显示启动图像,但它是一段时间的空白.所以,
是否有一个聪明的事情是尽可能快地显示图像并删除空白图像?
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;
Run Code Online (Sandbox Code Playgroud)
和飞溅单位:
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;
Run Code Online (Sandbox Code Playgroud)
关心罗兰
您的SplashForm需要接收WM_PAINT消息才能显示自己,除非消息泵正在工作,否则不会发生这种情况.
放Application.ProcessMessages后SplashForm.Show.