Z zhzdl Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-12 #1 用Delphi设计的程序,如果程序正在进行复杂的运算时失去焦点(也就是切换任务), 就不能重新显示窗口了,只能看到一个白色的框框,请问如何才可以避免这个问题,谢 谢了!
W westboy2000 Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-12 #3 调用form.update就好了,可以重画窗口,不会再出现白框。
P pingbaoshi Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-12 #4 如果你的程序一切正常的话,窗口还不能正常显示吗?
X xeen Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-12 #5 运算循环中加入: application.processmessages
B Brave Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-12 #6 在你的处理过程中或循环中使用ProcessMessages;函数以处理其他消息。 procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin ; for i:=0 to 1000000 do ; begin ; ; edit1.text:=inttostr(i); ; ; application.ProcessMessages; ; end; end;
在你的处理过程中或循环中使用ProcessMessages;函数以处理其他消息。 procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin ; for i:=0 to 1000000 do ; begin ; ; edit1.text:=inttostr(i); ; ; application.ProcessMessages; ; end; end;
Z zhzdl Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-12 #7 我没用循环语句,我定义了5个过程,在一个事件中执行,因为是从网上获取资源,如果网 速慢可能会要延长程序的执行时间,我比较赞成第一位朋友的观点,建立一个新的线程,可 我对线程操作不太会:),转让CPU的控制权我也试过了,效果不是很好,调用Update就更 不是好方法哦:) 五个过程是:打开并检查数据库、从网上下载数据、分析下载的数据,对数据进行处理、 将处理后的数据写入数据库,其中有两个过程用了循环语句,都要加上ProcessMessages; 吗? 谢谢大家了!
我没用循环语句,我定义了5个过程,在一个事件中执行,因为是从网上获取资源,如果网 速慢可能会要延长程序的执行时间,我比较赞成第一位朋友的观点,建立一个新的线程,可 我对线程操作不太会:),转让CPU的控制权我也试过了,效果不是很好,调用Update就更 不是好方法哦:) 五个过程是:打开并检查数据库、从网上下载数据、分析下载的数据,对数据进行处理、 将处理后的数据写入数据库,其中有两个过程用了循环语句,都要加上ProcessMessages; 吗? 谢谢大家了!
Z zhzdl Unregistered / Unconfirmed GUEST, unregistred user! 2001-10-13 #8 好了,我用了application.ProcessMessages;,在每个循环都加上一个,效果就好多了, 谢谢大家了!