![]() |
TWebBrowser Inhalt aus TStringList laden
Huhu,
ich bin am verzweifeln. Irgendwie finde ich keinen Weg um den in einer TStringList gespeicherten Inhalt einer Webseite im TWebBrowser fehlerfrei anzuzeigen. Da es hier im Forum bereits einige Threads zu diesem Thema gibt und ich schon einiges probiert habe möchte ich kurz anreissen was ich bereits probiert habe:
Delphi-Quellcode:
Das funktioniert soweit zwar, aber wie
procedure TMyWB.LoadFromStrings(const aStrings: TStrings);
var ms: TMemoryStream; begin // AssignDocument erzeugt ein leeres Dokument mit den nötigen Flags // und wartet auf dessen Fertigstellung if not assigned(Document) then AssignDocument; ms:=TMemoryStream.Create; aStrings.SaveToStream(ms); (Document as IPersistStreamInit).Load(TStreamadapter.Create(ms)); ms.free; end; ![]()
Delphi-Quellcode:
setzt leider nur den Body, mein Dokument enhält jedoch Scripts die ausgeführt werden müssen. Ein dritter Weg:
procedure TMyWB.LoadFromStrings(const aStrings: TStrings);
var Range: IHTMLTxtRange; begin if not assigned(Document) then AssignDocument; Range:=((Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange; Range.pasteHTML(aStrings.Text); end;
Delphi-Quellcode:
bindet im Kopf des Dokuments angegebene scripts (<script src="..."></script>) nicht ein. Sicher habe ich da irgendwo einen Denkfehler oder schlicht zu wenig Ahnung von der Materie - vielleicht hat ja einer von Euch noch die eine oder andere Idee.
procedure TMyWB.LoadFromStrings(const aStrings: TStrings);
var v: OLEVariant; begin if not assigned(Document) then AssignDocument; v:=VarArrayCreate([0, 0], varVariant); v[0]:=AStrings.Text; (Document as IHTMLDocument2).Write(PSafeArray(TVarData(v).VArray)); (Document as IHTMLDocument2).Close; end; lg Torsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz