Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Text kurzzeitig formatieren (https://www.delphipraxis.net/127315-text-kurzzeitig-formatieren.html)

BackOrifice 11. Jan 2009 06:17


Text kurzzeitig formatieren
 
Hallo,

ich habe einen String, der ungefähr wie folgt aussieht:
str := 'Dies ist ein kursiver Text'
Die HTML Klammern sollen genau das bewirken: Das Wort 'kursiver' soll kursiv dargestellt werden. Der Teil, der nicht eingeschlossen ist, bleibt unformatiert.
Der Benutzer bekommt den String in einem Memofeld zusehen, dort leg ich den String rein.

Wahrscheinlich funktioniert das Vorhaben nicht mit einem Memofeld. Zumindest habe ich bis jetzt keine Möglichkeit gefunden, den Text im Memofeld kurzzeitig zu formatieren.

Hat jemand von euch eine Idee oder alternative VCL Komponente?

Matze 11. Jan 2009 07:47

Re: Text kurzzeitig formatieren
 
Guten Morgen Henning,

mit einem TMemo ist es ohne weiteres nicht möglich, dafür eignet sich jedoch ein TRichEdit sehr gut.

Im SDC gibt's dazu einen entsprechenden Source: HTML in RTF umwandeln oder du schaust dir einmal Codewalkers BBCode-Parser für TRichEdit an und änderst diesen so ab, dass er mit HTML-Tags funktioniert.

Grüße, Matze

SirThornberry 11. Jan 2009 08:09

Re: Text kurzzeitig formatieren
 
Wenn es nicht editierbar sein soll ist selbst zeichnen wohl die schnellste Lösung.

BackOrifice 11. Jan 2009 08:53

Re: Text kurzzeitig formatieren
 
Zitat:

Zitat von Matze
Guten Morgen Henning,
mit einem TMemo ist es ohne weiteres nicht möglich, dafür eignet sich jedoch ein TRichEdit sehr gut.

Perfekt, genau das was ich gesucht hab! :-D

Danke euch beiden.

Hawkeye219 11. Jan 2009 09:27

Re: Text kurzzeitig formatieren
 
Hallo,

wenn es nicht ausschließlich mit Bordmitteln gehen muss, kann ich den HTML-Viewer von Dave Baldwin empfehlen. Dann reicht eine Zeile, um das Problem zu lösen:

Delphi-Quellcode:
HTMLViewer.LoadFromString('Dies ist ein [i]kursiver[/i] Text');
Falls der Text auch bearbeitet werden soll, würde ich ein TMemo (alternativ: TSynMemo) und einen HTML-Viewer so aufeinander legen, dass immer nur eines der beiden Controls sichtbar ist. Mit einer Tastenkombination könnte man dann zwischen Bearbeitungs- und Anzeigemodus umschalten.

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:49 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