Delphi TEmbeddedWB仍在加载页面,无法停止
我一直在这里搜索,但没有成功,也没有任何可接受的答案 我有一个更大的应用程序,它使用TEmbeddedWB。假设我的代码如下所示:Delphi TEmbeddedWB仍在加载页面,无法停止,delphi,delphi-7,tembeddedwb,Delphi,Delphi 7,Tembeddedwb,我一直在这里搜索,但没有成功,也没有任何可接受的答案 我有一个更大的应用程序,它使用TEmbeddedWB。假设我的代码如下所示: // here is some other code where I am working with EmbeddedWB1 EmbeddedWB1.Navigate2('http://www.stackoverflow.com'); while EmbeddedWB1.ReadyState <> READYSTATE_COMPLETE do beg
// here is some other code where I am working with EmbeddedWB1
EmbeddedWB1.Navigate2('http://www.stackoverflow.com');
while EmbeddedWB1.ReadyState <> READYSTATE_COMPLETE do
begin
EmbeddedWB1.Stop;
Application.ProcessMessages;
end;
EmbeddedWB1.Navigate2('http://www.google.com');
//下面是我正在使用EmbeddedWB1的一些其他代码
EmbeddedWB1.Navigate2('http://www.stackoverflow.com');
而EmbeddedWB1.ReadyState ReadyState_完成
开始
嵌入式WB1.停止;
Application.ProcessMessages;
结束;
EmbeddedWB1.Navigate2('http://www.google.com');
而这个代码被卡在了这个循环中
调试时,EmbeddedWB1.ReadyState=ReadyState\u加载
有人能告诉我,如何最终停止加载页面,并转到下一个导航
非常感谢
PS:如果没有这个循环,它通常可以加载另一个页面,即google.com。但是我真的需要在加载另一个页面之前将它放入
READYSTATE\u COMPLETE
。它没有退出循环,因为你特别告诉它在READYSTATE
完成之前不要退出循环,然后调用Stop
,这样它就永远无法到达READYSTATE
按照逻辑:
- 我标记为
的那一行写着“在ReadyState完成之前一直保持循环”{1}
- 我标记为
的那行写着“停止加载页面”,这意味着{2}
可以永远是ReadyState
ReadyState\u COMPLETE
Counter := 1;
while (Counter < SomeValue) and (EmbeddedWB1.ReadyState <> READYSTATE_COMPLETE) do
begin
Inc(Counter);
Application.ProcessMessages;
end;
if Counter >= SomeValue then
EmbeddedWB1.Stop; // Had to break the loop above before complete.
// trying to load and move on.
计数器:=1;
而(计数器=SomeValue,则
EmbeddedWB1.Stop;//在完成之前必须中断上面的循环。
//尝试加载并继续。
请停止使用忙循环?有一个名为OnDocumentComplete的事件,使用该事件加载下一页…你不明白,它永远不会到达OnDocumentComplete,我想停止加载页,换句话说,我不想让READYSTATE\u加载。我理解你的逻辑,但这不是问题,只是TEmbeddedWB很奇怪在某种程度上,我重新编码了,现在它工作了。谢谢。
Counter := 1;
while (Counter < SomeValue) and (EmbeddedWB1.ReadyState <> READYSTATE_COMPLETE) do
begin
Inc(Counter);
Application.ProcessMessages;
end;
if Counter >= SomeValue then
EmbeddedWB1.Stop; // Had to break the loop above before complete.
// trying to load and move on.