ブラウザのスクロール

解決


すけさん  2009-05-13 02:07:10  No: 34371

Delphi6でブラウザをスクロールするために、このサイト内の下記の所を
参考にしてテストしていますが上手く動作しません。
何が原因なのでしょうか。
https://www.petitmonte.com/bbs/answers?question_id=1451

koma2 [E-Mail] 2004/03/18(木) 15:15:47の分のソースです。
  :    :    :
function WebScroll( Web: TWebBrowser; X, Y: Integer ): Boolean;
var
  X0, Y0: Integer;
  XMax, YMax: Integer;
  WebDoc: IHTMLDocument2;
  Body: OleVariant;
  X1, Y1: Integer;
begin
  WebDoc := Web.Document as IHTMLDocument2;
  Body := OleVariant( WebDoc ).body;

  Result := True;

  X0 := body.ScrollLeft;
  Y0 := body.ScrollTop;
  XMax := body.ScrollHeight-body.ClientWidth;
  YMax := body.ScrollHeight-body.ClientHeight;
    :    :    :

  YMaxの値が「0」しか入ってこないのが原因みたいですが...


環境は?  2009-05-14 21:00:22  No: 34372

>YMax := body.ScrollHeight-body.ClientHeight;

>YMaxの値が「0」しか入ってこないのが原因みたいですが...

環境が不明だけど、OSやIEのバージョンによっては
body.ScrollHeight の値と body.ClientHeight の値が同じになるのかな…

このように変更して見たら?
function WebScroll(Web: TWebBrowser; X, Y: Integer): Boolean;
begin
  (Web.Document as IHTMLDocument2).ParentWindow.ScrollBy(X, Y);
end;


すけさん  2009-05-15 23:31:17  No: 34373

ありがとうございました。
スクロールするようになりました。

ちなみに、
OSはXPのSP3
IEはVer.6  SP3
です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加