![]() |
HTML Text anzeigen
Ich lese in einem Programm ein Stück HTML Text aus einer Datei und speicher diesen als String. Das HTML möchte ich aber (wie in einem Webbrowser) später anzeigen. Irgendwie kann TWebBrowser aber nur HTML über eine URL auslesen. Geht es auch, dass er den Code aus einem String bezieht? (also ohne, dass ich den Strin erst speichere und der Browser die Datei dann öffnet)
|
Re: HTML Text anzeigen
Hallo,
wie das geht, wird auf ![]() ![]() Gruß Hawkeye |
Re: HTML Text anzeigen
das müsste so aussehen
in die uses muss noch SHDocVw, MSHTML und ActiveX glaube ich
Delphi-Quellcode:
tempBodyStream:=TStringStream.Create(tempbody);
LoadFromStream(ieControl, tempBodyStream); tempBodyStream.Destroy; procedure LoadFromStream(Dest:TWebBrowser;const Stream: TStream); var Flags: OleVariant; i:integer; begin Flags:=navNoHistory or navNoReadFromCache or navNoWriteToCache; if not Assigned(Dest.Document) then Dest.Navigate('about:blank',Flags); i:=0; if Dest.Showing then while (Dest.ReadyState <> READYSTATE_COMPLETE) do begin Application.ProcessMessages; Sleep(1); inc(i); if i>2500 then break; end; try InternalLoadDocumentFromStream(Dest,Stream); except end; end; procedure InternalLoadDocumentFromStream(Dest:TWebBrowser;const Stream: TStream); var PS: IPersistStreamInit; StreamA: TStreamAdapter; //Doc:IHTMLDocument2; ret:HResult; begin if Dest=nil then exit; if not assigned(Dest.Document) then exit; //Doc:=Dest.Document as IHTMLDocument2; PS:= Dest.Document as IPersistStreamInit; // StreamA:=NIL; try try ret := PS.InitNew; if SUCCEEDED(ret) then begin StreamA := TStreamAdapter.Create(Stream); PS.Load(StreamA); end; finally //Stream.Free; //if StreamA <> nil then IUnknown(StreamA)._Release; end; finally //if PS <> nil then PS._Release; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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