webbrowser或者EmbeddedWB动态创建和释放问题

22222bbb 2017-04-18 12:43:04
老师们,我用上面这两个控件之一是动态创建的
try
try
WB:=TEmbeddedWB.Create(self);
WB.Silent:=true;
WB.UserAgent:='Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko';
WB.ParentWindow:=self.Handle;
WB.Go(URL,10);
while WB.Busy do //这里经常会卡住,网页是不卡的很流畅,但有的时候就在这里一直等,导致不能free
begin
Application.ProcessMessages;
end;
s:=wb.Body.innerHTML;
result:=s;
except
end;
finally
WB.Free;
end;
哪位老师指点一下有没有更好的方法
...全文
179 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
santiaodahan 2017-04-18
  • 打赏
  • 举报
回复
如果网页不卡,很流畅的话不会一直循环的。可以设置超时时间,超时就break退出循环或不用消息循环的方式放到线程里。 可以换下面的语句试试:

while WB.ReadyState <> $00000004 do
Application.ProcessMessages;
$00000004是htmlReadyStatecomplete值。

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧