Hallo liebe Programmiergemeinde,
mich plagt zur Zeit ein Problem, bei welchem ich bisher keine vernünftige Lösung finden konnte. Allerdings programmiere ich auch noch nicht lange
Ich brauche eine Anweisung, mit der ich bei einem Dokument, welches in der WebBrowser-Komponente geladen ist, ganz nach unten scrollen kann. Nun habe ich dieses Beispiel gefunden (
http://www.swissdelphicenter.ch/de/showcode.php?id=1186):
Code:
function WB_ScrollTo(WB: TWebBrowser; Position: TWBPosition): Boolean;
var
ParentW: OLEVariant;
begin
Result := WB.Document <> nil;
if Result then
begin
ParentW := WB.OleObject.Document.ParentWindow;
case Position of
wbPosBottom: ParentW.ScrollTo(0, ParentW.Screen.Height);
wbPosTop: ParentW.ScrollTo(0, 0);
wbPosRight: ParentW.ScrollTo(ParentW.Screen.Width, 0);
end;
end;
end;
// Example: Scroll to the bottom of the document:
procedure TForm1.Button1Click(Sender: TObject);
begin
WB_ScrollTo(WebBrowser1, wbPosBottom);
end;
Als ich dies nun probieren wollte, meckerte der Compiler bei dem Variablentyp "TWBPosition", weshalb ich diesen Typ durch Byte ersetzt und die function entsprechend geändert habe.
Nur funktioniert diese function zwar oftmals, aber leider nicht immer
Manchmal scrollt der WebBrowser nur ein kurzes Stück des Dokumentes.
Auf der Suche nach Alternativen bin ich dann auf diese Anweisung gestoßen (
http://www.delphipages.com/threads/t...14257&G=114227):
Code:
procedure TForm1.sbScrollToBottomClick(Sender: TObject);
var
scrollpos: Integer;
pw : IHTMLWindow2;
Doc: IHTMLDocument2;
script: WideString;
begin
Doc := WebBrowser1.Document as IHTMLDocument2;
pw := IHTMLWindow2(Doc.parentWindow);
scrollPos := pw.screen.height;
pw.scrollBy(0, scrollpos);
end;
Diese Anweisung testweise in eine ButtonClick-Procedure implementiert ergab wiederrum Compilerfehler bei "IHTMLWindow2" und "IHTMLDocument2" – beide Begriffe werden nicht erkannt.
An dieser Stelle bin ich mit meinem Latein am Ende, vielleicht wißt ihr ja einen Rat ?