AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Einfaches Html in Memo (?) anzeigen

Ein Thema von hoika · begonnen am 27. Jul 2017 · letzter Beitrag vom 27. Jul 2017
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#1

Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 15:33
Hallo,
ich habe folgendes Html-Konstrukt

<langtext>
<div>
<b>Unvorhergesehene Inanspruchnahme</b>
durch Person X
</div>
<div>
<ul>
<li>zwischen 19:00 und 22:00 Uhr</li>
<li>an Samstagen, Sonntagen und gesetzlichen Feiertagen, am 24.12. und 31.12. zwischen 07:00 und 19:00 Uhr</li>
</ul>
</div>
</langtext>

Ergebnis müsste sein:
Unvorhergesehene Inanspruchnahme durch Person X
  • zwischen 19:00 und 22:00 Uhr
  • an Samstagen, Sonntagen und gesetzlichen Feiertagen, am 24.12. und 31.12. zwischen 07:00 und 19:00 Uhr
Nicht das es wieder heisset, "Forensuche benutzen!"
Das habe ich gefunden.
http://www.delphipraxis.net/184413-e...-woertern.html
http://www.delphipraxis.net/44580-ht...-anzeigen.html

Was würdet ihr benutzen?

PS: Html-Formatierung meines Beispiel-Codes habe ich nicht gefunden.
Heiko
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#2

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 15:42
Ich stand vor ein paar Jahren vor demselben Problem.
Erst hatte ich ein Memo, dann ein RichEdit. Beide grauenvoll was die Performance angeht.

Abhilfe schafft der THTMLViewer: https://github.com/BerndGabriel/HtmlViewer (jedenfalls kann ich damit leben).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 15:54
In TMemo erstmal garnicht.
Wenn, dann in TRichEdit, welches bereits Funktionen zur Textformatierung drin hat.
Eventuell auch ein TSynEdit oder TSynMemo.

Ich glaub für TSynEdit gibt es Highlighter/Importer für HTML.

Und auch für Richedit hatte ich mal irgendwo einen Code gesehn, der das HTML parst, den Text extrahiert, ihn in ein RichEdit einfügt und die Formatierungsbefehle des HTML auf den Text im RichEdit anwendet. Also quasi ein HTML-zu-RTF-Converter.

Es gibt ein grauenhaftes Delphi-Referenz durchsuchenTLinkLabel, aber außer einem <a href="...">...</a> kann das eigentlich garnichts.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (27. Jul 2017 um 15:56 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 16: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
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 17:54
Hallo,
OK, danke, ich schaue es mir an.

Zur Performance: Mehr als das was hier steht muss nicht angezeigt werden.
Ich könnte mir das sogar selber bauen, bin aber zu faul dazu

was gegen den THtmlViewer spricht, ist, dass es halt ähnlich wie ein TMemo aussehen soll,
damit der Nutzer z.B. den lesbaren Text in de Zwischenablage kopieren kann.


Ich habe ja TMS-Software, leider nicht die neuste Version mit TAdvRichedit,
im Moment probiere ich diveres THtml-Komponenten aus.
Am ehesten komme ich gerade mit THtmlListBox.
Heiko

Geändert von hoika (27. Jul 2017 um 18:07 Uhr)
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#6

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 17:57
Zitat:
Zur Performance: Mehr als das was hier steht muss nicht angezeigt werden.
Dann halte ich jegliche externe Komponente für viel zu übertrieben.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#7

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 18:10
Dann halte ich jegliche externe Komponente für viel zu übertrieben.
Drum nannte ich ja auch RichEdit.
Listen und Fett kann man auch in RTF.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 18:29
Wenn es nur um die Anzeige geht...
Wie wäre es mit TJvHTLabel aus den JEDIs, genauer der JVCL?

Wenn es etwas kosten darf:
https://www.tmssoftware.com/site/htmlcontrols.asp

Und es gibt in der Richtung noch sehr viele weitere Lösungen.

Kopieren könnte man ja per Klick, Kontextmenü usw. machen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von blondervolker
blondervolker

Registriert seit: 14. Sep 2010
Ort: Bei: Leeeiipzzhhh
381 Beiträge
 
Delphi XE2 Architect
 
#9

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 18:52
TMS geht. Wenn man seine Software verkaufen sollte, ist die Kohle gut angelegt...
www.bewerbungsmaker.de
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Einfaches Html in Memo (?) anzeigen

  Alt 27. Jul 2017, 19:15
Hallo,
aber was bei TMS, was dann wie ein TMemo aussieht,
das TAdvRichEdit hat meine Sammlung (noch) nicht.

Das THTMLCredit sieht aus wie ein Label.

Ein Update mache ich wegen sowas nicht.


So, ich habe jetzt das hier genommen
http://www.swissdelphicenter.com/de/...de.php?id=1823

Sieht etwas merkwürdig aus, aber das hilft.

RichEdit1.SelStart := 0;
RichEdit1.SelLength := 0;
Heiko

Geändert von hoika (27. Jul 2017 um 19:40 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz