C++Builder循环中如何更新主界面
比如说,我界面上有个button1,点击后,执行一个死循环,里面不断更新界面上的Edit1的内容。
但是现在主界面不更新。我知道用类似peekmessage可以解决,想知道有没有BCB原生的方式或函数呢?
[解决办法]
Application->ProcessMessages()
[解决办法]
Application->ProcessMessages()
[解决办法]
Application->ProcessMessages()
不过这样死循环里的工作将会暂停
如果希望主窗口不假死又能更新,就用多线程
[解决办法]
呵呵,就是它了
Application->ProcessMessages()
[解决办法]
死循环 、原生 ?
那就用TThread线程类吧:
// class TMyThread : public TThread
// Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall TMyThread::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
[解决办法]
点击按钮执行死循环?听上去就恐怖,从不敢这样设计软件,只敢用子线程执行死循环。
再说,为何一定要用死循环更新界面,没有别的办法吗?
[解决办法]
楼主的思路好怪。为什么不用Timer??
[解决办法]
Timer或者线程比较好,
[解决办法]
Timer用的是主线程,一样会阻塞造成界面假死。
[解决办法]
Application->ProcessMessages()或者使用多线程咯~timer也可以。不过还是建议使用多线程好些