![]() |
Memoinhalt mit Tags auszeichnen und mit rtf darstellen
Hallo liebe DPler,
ich bin auf der Suche nach einer Methode, Text in einem Memofeld mit Tags auszeichnen und formatiert anzeigen zu lassen. Es soll fast genau das machen, was die Texteingabe in diesem Forum tut, nur nicht nacheinander, sondern parallel. Etwas konkreter: Ich möchte, dass wenn der Benutzer Text markiert und dann z.B. auf einen Button "fett" drückt, er dann 1. den Text fett im Memo angezeigt bekommt, gleichzeitig aber die entsprechenden Tags <fett> und </fett> hinterlegt (aber nicht angezeigt) werden. Wenn der Memo-Inhalt dann gespeichert wird, sind darin keine rtf-Infos, sondern nur die Tags vorhanden. Hintergrund ist, dass ich bei einer Datenbank die formatierten Memos durch neue XML-Memos ersetzen möchte, so dass der Benutzer nur noch eine bestimmte Auswahl an Auszeichnungen verwenden kann, und ich die Memo-Inhalte auch in XML-Dokumente exportieren kann. Es ist ja kein Problem, den Inhalt des Memos z.B. beim Auslesen aus der Datenbank zu parsen und in einem Richedit als rtf zu formatieren. Aber ich kann ja nicht bei jeder Änderung des Memos den kompletten Inhalt nochmal parsen (wegen Flackern und Verlangsamung). Aber ich stelle mir vor, dass es möglich sein müsste, den Inhalt des Memos von seiner Darstellung zu trennen. Bin ich auf dem ganz falschen Dampfer, wenn ich daran denke, den Memoinhalt zweimal zu verwalten: 1. den ASCII-Text mit den Tags (Inhalt) und 2. rtf-Text zur Darstellung im Memo? Ich hätte dabei keine Vorstellung, ob sich die Synchronisation beider Elemente bewerkstelligen lässt. Eigentlich ist das ja bei jedem Texteditor so, dass man Formatvorlagen zuweisen kann. In diesem Fall ist doch im Dokument nur der Name der Vorlage gespeichert, auf dem Bildschirm sieht man aber eine Reihe von Formatierungen. Kann mir jemand einen Tipp geben, wie das normalerweise realisiert wird. Herzlichen Dank im voraus Urs |
Re: Memoinhalt mit Tags auszeichnen und mit rtf darstellen
Moin Urs,
mit einem Memo wird das nicht gehen. Hier gelten die Einstellungen immer für den gesamten Inhalt. Bei einem RichEdit könntest Du Dir beim Speichern die Formatierungen auslesen, und mit eigenen Tags und deren Position separat speichern. Anschliessend kann dann der Text als PlainText gespeichert werden, also nach einem ähnlichen Prinzip, wie es bei RichEdit-Mails gemacht wird. Ansonsten könntest Du Dir noch die Mühe machen eine Kompo zu schreiben, die unabhängig von RichEdit und Memo funktioniert. Hier könnte SynEdit als Beispiel dienen. |
Re: Memoinhalt mit Tags auszeichnen und mit rtf darstellen
Zitat:
Das ist mir klar, vielleicht hätte ich deutlicher sagen sollen, dass ich nicht TMemo meine, sondern den Steuerelementtypus "Memo". Zitat:
Zitat:
Na ja, vielleicht schaue ich mir die Source zu Synedit mal an und sehe, wieviel ich davon verstehe... MFG Urs |
Re: Memoinhalt mit Tags auszeichnen und mit rtf darstellen
Moin Urs,
Zitat:
|
Re: Memoinhalt mit Tags auszeichnen und mit rtf darstellen
Eine Fläche, auf der man mehrzeiligen Text eingeben kann, wie etwa ein TMemo oder ein TRichedit oder ein TDBMemo etc...
|
Re: Memoinhalt mit Tags auszeichnen und mit rtf darstellen
Moin Urs,
ach so. Ich hatte da deshalb ein Verständnisproblem, da Windows, im Wesentlichen, Edit Controls (gekapselt durch z.B. TEdit), Multiline Edit Controls (TMemo), und Rich Edit Controls (TRichEdit) kennt. Memo gibt es unter diesem Begriff vermutlich (ich kenne jetzt die Bezeichnungen z.b. im Visual Studio nicht) nur bei Borland. |
Re: Memoinhalt mit Tags auszeichnen und mit rtf darstellen
Hallo Christian,
um noch mal auf meine ursprüngliche Frage zurückzukommen: Verstehe ich es richtig, dass Deine Empfehlung wäre, ein Richedit zu verwenden, darin nur klar definierte Formatierungen zuzulassen und am Ende (z.B. OnExit) die verwendeten Formatierungen zu interpretieren und in die entsprechenden Tags zu übersetzen? MFG Urs |
Re: Memoinhalt mit Tags auszeichnen und mit rtf darstellen
Moin Urs,
ja, das wäre meine Idee dazu. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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 by Thomas Breitkreuz