WebBrowser1.Navigate('http://yahoo.co.jp');
Application.ProcessMessages;
sleep(2000);
WebBrowser1.Navigate('http://google.co.jp');
Application.ProcessMessages;
sleep(2000);
WebBrowser1.Navigate('http://goo.ne.jp');
Application.ProcessMessages;
sleep(2000);;
うまくいかないです。
どうしたらスリープうまくいきますか?
質問の仕方から覚えましょう。
・開発環境
・コードの目的(具体的に何をしたいのか)
・何がどう上手くいかないのか
上手くいきません、では質問になってないです。
すいません。
WebBrowser1.Navigate('http://goo.ne.jp');
Application.ProcessMessages;
sleep(2000);
ebBrowser1.Navigate('http://goo.ne.jp');
sleep(2000);
Application.ProcessMessages;
どちらにしても、
ブラウザ移動更新→ウエイト→ブラウザ移動更新→ウエイト
とさせたいです。
何がどううまくいかないのですか?
まったく説明になっていませんが。
パっと見た感じ、Sleep時間を決め打ちすると通信が遅延した場合に
フォローできないと思うのですが。
複数のURLをスレッドで開いたほうがいいんじゃないかと。
WebBrowser1.Navigate('http://www.yahoo.co.jp');
WebBrowser1.Navigate('http://www.google.co.jp');
とするとわかるけど
だと Yahooを読み終えた後に google を読みにいっているわけじゃないので
>WebBrowser1.Navigate('http://yahoo.co.jp');
>Application.ProcessMessages;
>sleep(2000);
>WebBrowser1.Navigate('http://google.co.jp');
だと Yahooを読む
2秒後に Yahooを読み終えていなくても
google を読む
となってしまいます。
なので
読み終えてから2秒後に次のを読むようにするには
以下のようにします。
procedure TForm8.Button1Click(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.yahoo.co.jp');
Count := 1;
end;
procedure TForm8.WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
Application.ProcessMessages;
Sleep(2000);
if Count = 1 then WebBrowser1.Navigate('http://www.google.co.jp');
if Count = 2 then WebBrowser1.Navigate('http://www.goo.ne.jp');
Inc(Count);
end;
ツイート | ![]() |