0
我有一个简单的VCL表单与TAnimate组件设置为使用aviCopyFiles。该表格包含ShellAnimations单元,因此它可以在Windows 7上运行。如何得到TAnimate重绘没有ProcessMessages
在窗体激活时,它使TAnimate处于活动状态,然后开始使用LZCopy作为更新过程的一部分复制文件。
我发现虽然是TAnimate图像只有当我调用Application.ProcessMessages,即使它应该是在它自己的线程(Timers属性为false)时才会改变。
如何在循环中使其平滑动画以复制更新的文件?
在进行此复制过程时,主线程没有其他任何操作。用户不能也不应该对应用程序做其他任何事情。窗体显示为模态。为什么要通过线程的所有麻烦,只是为了让一个愚蠢的TAnimate工作,当文档具体说“当定时器是假的,动画是在一个单独的线程中播放。”。这意味着即使主线程忙于循环,动画仍然应该发生。不是这种情况。 – SiBrit 2013-06-05 02:25:48
当然,这对主线程来说是另一回事,并且是为了保持应用程序对主机操作系统和UI的响应能力。也许你不喜欢它,但窗口编程应该完成的方式。 – jachguate 2013-06-10 23:55:24
只要在这里发表评论来说是的,我应该让主线程启动一个新线程来执行复制过程,而主线程只刷新图形并处理OS消息。不幸的是,我被困时间,需要一个简单的解决方案,主线程完成了复制过程,只需要一个视觉线索来取得进展。 – SiBrit 2016-09-19 04:00:15