Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#4

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 15:05
Vielleicht aus dem Fragment einfach mal eine vollständige HTML-Seite machen und dann TWebBrowser nutzen?

Also mindesten noch ein
Delphi-Quellcode:
<html>
<body>
davor und ein
Delphi-Quellcode:
</body>
</html>
dahinter.

Davon ausgehend, dass Dein Fragment in 'ner Stringliste vorliegt und Du dich für den TWebBrowser entscheidest, könnte eventuell sowas gehen:
Delphi-Quellcode:
procedure WBLoadHTML(wb: TWebBrowser; slHTMLCode: tStrings); overload;
var
  ms: TMemoryStream;
begin
  wb.Navigate('about:blank');
  while wb.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages;
  if Assigned(wb.Document) then begin
    ms := TMemoryStream.Create;
    try
      slHTMLCode.Insert(0,'<body>');
      // Hierzwischen könnte man auch noch 'nen Header reinbauen,
      // der ein Stylesheet aufruft ... und sonst alles,
      // was man für ein standardkonformes HTML braucht ...
      slHTMLCode.Insert(0,'<html>');
      slHTMLCode.Add('</body>');
      slHTMLCode.Add('</html>');
      slHTMLCode.SaveToStream(ms);
      ms.Seek(0, 0);
      (wb.Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms));
    finally
      ms.Free;
    end;
  end;
end;


// Aufruf:
 
... // Befüllen der Stringliste mit dem Fragment
  WBLoadHTML(DeineWebBrowserKomponente,StringlisteMitDemFragment);
...
SynEdit und Highlighter sind für die Farbhervorhebung des HTML-Quelltextes geeignet, aber nicht für die Darstellung als Webseite.
  Mit Zitat antworten Zitat