![]() |
Re: Quelltext filtern
Ja! Schaffbar schon :mrgreen:
aber ich hatte gehofft, mir den aufwand ersparen zu können! :zwinker: Und außerdem fände ich es "schöner" wenn ich dafür nicht extra einen Datei auf der Festplatte temporär anlegen muss! |
Re: Quelltext filtern
quelltext laden, in stringlist laden und so im webbrowser aufrufen:
Delphi-Quellcode:
uses
ActiveX; procedure WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode: string); var sl: TStringList; ms: TMemoryStream; begin WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages; if Assigned(WebBrowser.Document) then begin sl := TStringList.Create; try ms := TMemoryStream.Create; try sl.Text := HTMLCode; sl.SaveToStream(ms); ms.Seek(0, 0); (WebBrowser.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)); finally ms.Free; end; finally sl.Free; end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin WB_LoadHTML(WebBrowser1,stringliste.text); end; |
Re: Quelltext filtern
Woahw! Super! :thuimb:
Vielen Dank!!! |
Re: Quelltext filtern
Habs jetzt so gemacht:
Delphi-Quellcode:
Vielen Dank nochmal a.vollmer
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant); var PersistStream: IPersistStreamInit; Stream: IStream; ms: TMemoryStream; s:string; begin ms:=TMemoryStream.Create; ms.Clear; PersistStream := Webbrowser1.Document as IPersistStreamInit; Stream := TStreamAdapter.Create(ms, soReference) as IStream; PersistStream.Save(Stream, True); MS.Position:=0; SetLength(S,MS.Size); Ms.Read(S[1],MS.Size); s:='Hallo'; Ms.Clear; MS.Write(s[1],Length(s)); MS.Position:=0; PersistStream.Load(Stream); end; |
Re: Quelltext filtern
Und wo wird der MemoryStream wieder freigegeben? Der Resourcenschutzblock (tyr-finally) fehlt auch in diesem Zusammenhang.
Sehe gerade der StreamAdapter wird auch nicht wieder freigegeben. |
Re: Quelltext filtern
War ja nur mal grade Quick'n'dirty hingeschmiert.
Aber hast ja recht:
Delphi-Quellcode:
so ungefähr!
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant); var PersistStream: IPersistStreamInit; Stream: IStream; ms: TMemoryStream; s:string; begin try ms:=TMemoryStream.Create; ms.Clear; PersistStream := Webbrowser1.Document as IPersistStreamInit; try Stream := TStreamAdapter.Create(ms, soReference) as IStream; PersistStream.Save(Stream, True); MS.Position:=0; SetLength(S,MS.Size); Ms.Read(S[1],MS.Size); s:='Hallo'; Ms.Clear; MS.Write(s[1],Length(s)); MS.Position:=0; PersistStream.Load(Stream); finally Stream.Free; finally MS:Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 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