执行时,关闭不了窗口

lostmoon 2010-02-09 11:48:01
执行下面的语句的时候,无法关闭,form上的关闭按钮点了也关闭不了,必须等都执行完了,才能关,不知道错在哪里了?





while not adoquery1.eof do

begin
Application.ProcessMessages;
Edit3.Text := string(ADOQuery1.FieldByName('URL').value);
WebBrowser1.Navigate(Edit3.Text);
repeat
Application.ProcessMessages;
until (not webbrowser1.Busy);

//打开相应网站后,执行这里

adoquery1.next;
end;


...全文
89 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
starluck 2010-02-09
  • 打赏
  • 举报
回复
Application.ProcessMessages;
dd_zhouqian 2010-02-09
  • 打赏
  • 举报
回复
弄个标志位吧
m_closestatus:Boolean;


while not adoquery1.eof do

begin
if m_closestatus=True then
break;
Application.ProcessMessages;
Edit3.Text := string(ADOQuery1.FieldByName('URL').value);
WebBrowser1.Navigate(Edit3.Text);
repeat
Application.ProcessMessages;
until (not webbrowser1.Busy);

//打开相应网站后,执行这里

adoquery1.next;
end;
gyk120 2010-02-09
  • 打赏
  • 举报
回复
Application.ProcessMessages的问题,这个函数会暂时放弃CPU指令
建议换成sleep或者timer
buding79 2010-02-09
  • 打赏
  • 举报
回复
Application.ProcessMessages;
不建议用这个,会导致很多莫名其妙的问题。。。。。。
xingyongjian 2010-02-09
  • 打赏
  • 举报
回复
这个问题要自己解决; 问题就在下面的循环中,好好看看VCL的源码吧!

WebBrowser1.Navigate(Edit3.Text);
repeat
Application.ProcessMessages;
until (not webbrowser1.Busy);

相关推荐
发帖
Windows SDK/API

1177

社区成员

Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
帖子事件
创建了帖子
2010-02-09 11:48
社区公告
暂无公告