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」しか入ってこないのが原因みたいですが...
>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;
ありがとうございました。
スクロールするようになりました。
ちなみに、
OSはXPのSP3
IEはVer.6 SP3
です。
ツイート | ![]() |