Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Quelltext filtern (https://www.delphipraxis.net/21543-quelltext-filtern.html)

SleepyMaster 4. Mai 2004 17:25

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!

a.vollmer 4. Mai 2004 17:25

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;

SleepyMaster 4. Mai 2004 17:28

Re: Quelltext filtern
 
Woahw! Super! :thuimb:

Vielen Dank!!!

SleepyMaster 4. Mai 2004 17:47

Re: Quelltext filtern
 
Habs jetzt so gemacht:

Delphi-Quellcode:
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;
Vielen Dank nochmal a.vollmer

Luckie 4. Mai 2004 18:06

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.

SleepyMaster 5. Mai 2004 19:58

Re: Quelltext filtern
 
War ja nur mal grade Quick'n'dirty hingeschmiert.

Aber hast ja recht:

Delphi-Quellcode:
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;
so ungefähr!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:32 Uhr.
Seite 2 von 2     12   

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