我需要在一个耗时的功能中更新我的应用程序中的几个可视组件,而我的应用程序似乎在此函数调用期间挂起,而不是更新屏幕上的可视组件。当函数退出时,我只看到组件的最后更改。
是否有一种简单的方法来进行更新,或者我是否需要创建一个并行流程并拥有一个'计时器'同时读取数据(使用信号量)并在定时器调用中显示它们?
有什么建议吗?
答案 0 :(得分:1)
昨天我问了同样的问题here。像mh taqia说的那样你可以使用Application-> ProcessMessages(),但你必须小心它。对于我的应用程序,它工作,但首先看一些关于该功能的帖子。
答案 1 :(得分:0)
我试过以下:
MainForm->Invalidate();
MyControlRoot->Repaint();
MyControlRoot是一个包含50-60种不同的其他控件的控件
但MyControlRoot不会用这种方法重绘。 ..
尽管雷米发出了警告,我还是尝试了Application->ProcessMessages();
......现在有效...
顺便说一句......我在Docwiki中看不到任何关于使用ProcessMessages的警告......我能期待什么?
RG