当前位置:  开发笔记 > 开发工具 > 正文

主线程繁忙时在Delphi中显示启动画面

如何解决《主线程繁忙时在Delphi中显示启动画面》经验,为你挑选了1个好方法。

我想在加载应用程序时显示启动画面.但是,某些第三方组件在启动期间会阻塞主线程几秒钟,这会导致所有表单都不更新.是否可以使用自己的线程启动屏幕,这样当主线程忙时它也会更新?

该应用程序是win32和Delphi 2007版.

编辑:我正在尝试避免"未绘制的启动画面"效果,如果某些其他窗口(来自其他应用程序)位于启动画面的顶部,例如alt-tabbing到另一个应用程序并返回,则会发生这种情况.



1> mghie..:

您可以在另一个线程中运行启动屏幕,但随后您将需要使用原始Windows API调用或实现类似VCL类的第三方库(如密钥对象库).但是,不要从启动线程访问VCL内容.

如果你走这条路线(我认为你不应该这样做,因为这是一项很少有收获的工作),请务必遵守多线程的Windows API访问规则.谷歌例如为"用户界面线程"提供更多信息.

编辑:

我以前没有意识到这一点,但实际上有一个组件在CodeCentral上为Delphi实现了Threaded Splashscreen.使用这个组件它可能(没有尝试过)实际上很容易将启动画面放在不同的线程中,但是对辅助线程的VCL访问的警告仍然存在.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有