delphi6 で ブラウザ表示を下記のような内容でスクロールさせています。
function WebScroll(Web: TWebBrowser; X, Y: Integer): Boolean;
begin
(Web.Document as IHTMLDocument2).ParentWindow.ScrollBy(X, Y);
end;
スクロールが終了したことを判定させることは可能でしょうか。
やりたいことは、最後までスクロールしたら、最初から表示し直して
繰り返し表示させたいです。
ご教示いただければ幸いです。
>スクロールが終了したことを判定させることは可能でしょうか。
「スクロールが終了」の判定というのは分かりませんが,
こんなところが参考になるかも知れません.
[TWebBrowserのスクロール量の取得]
https://www.freeml.com/delphi-users/2486
https://www.freeml.com/delphi-users/2487
後は多分ページの「長さ (高さ ?)」が必要ですね.
こういった HTML 関係の操作は JavaScript のコードを参考にするといいです.
ネットを検索すると結構あります.
Delphi の TWebBrowser で使用可能なコードに変換するのは大変かも知れませんが,
そこは「根性」で乗り切ることになります.
イベントがなければイベントの自作か,
メッセージを自分自身に送って,それを受信ということになると思います.
全て JavaScript でやってしまうという手もあります.
ただし,HTML コードに埋め込む JavaScript のコードであれば制御しやすいですが,
実行時に JavaScript のコードをセットする方法は面倒かも知れません.
実行時にセットする方法は [更新] すると再度 JavaScript をセットする必要があります.
単発の HTML 操作であれば JavaScript コードの実行時セットは有効かも知れません.
Mr.XRAYさん有難うございます。
自己解決しました。
Web.OleObject.Document.documentElement.scrollTop
この値が同じであればスクロールが終了したと
判定するようにしました。
上記内容で自己解決しました。
編集 削除