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