EmbeddedWB仍在加载页面,无法停止

时间:2013-12-05 22:27:26

标签: 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
begin
  EmbeddedWB1.Stop;
  Application.ProcessMessages;
end;

EmbeddedWB1.Navigate2('http://www.google.com');

此代码卡在该循环中。

调试时,EmbeddedWB1.ReadyState = READYSTATE_LOADING

有人可以告诉我,如何定义停止加载页面,然后继续进行下一次导航?

非常感谢。

PS:没有那个循环,它可以正常加载另一个页面,f.e。 google.com。但是在加载另一个页面之前我真的需要在READYSTATE_COMPLETE中使用它。

1 个答案:

答案 0 :(得分:1)

它没有退出循环,因为你明确告诉它不要这样做,直到ReadyStateREADYSTATE_COMPLETE,然后调用Stop以便它永远不会达到{{1} }}。

遵循逻辑:

  • 我标记为ReadyState的行显示“保持循环直到ReadyState为READYSTATE_COMPLETE”。
  • 我标记为{ 1 }的行显示“停止加载页面”,这意味着{ 2 }可以从不成为ReadyState
    // This line says "Stay in loop until we reach READYSTATE_COMPLETE
    while EmbeddedWB1.ReadyState  READYSTATE_COMPLETE do   { 1 }
    begin
      EmbeddedWB1.Stop; { 2 }
      Application.ProcessMessages;
    end;

你故意阻止你的循环退出。

如果你想实际停止加载页面并退出循环,请输入一个计数器或计时器,并在循环中添加一个条件,以便在条件满足时退出:

READYSTATE_COMPLETE