![]() |
TRichEdit - Absatz umrahmen
Moin, Moin.
Ich bin verwirrt :roteyes: und hoffe auf eine Aufklärung hier im Forum Mir ist bekannt, dass das TRichEdit direkt nur einen begrenzten Funktionsumfang bietet. Schaut man bei MSDN hinein, ist zu erkennen, dass das RichEdit eigentlich viel mehr kann als die VCL zur Verfügung stellt. Unter anderem z.B. auch eine Umrahmung um Absätze oder einen Unterstrich unter einen Absatz. Bisher war ich davon ausgegangen, dass dieses dann über direkte Verwendung der RichEdit-API realisiert werden kann. Mit dem Versuch einen Absatzrahmen zu erzeugen scheitere ich aber kläglich. Bisher bin ich davon ausgegangen, dass der Fehler bei mir liegt. Nun bin ich aber so richtig irritiert: Mit WORD habe ich eine Mini-RTF-Datei erstellt. Der Text besteht lediglich aus einem kurzen umrahmten Absatz. Datei als *.rtf gespeichert, wieder geöffnet: WORD zeigt mir einen umrahmten Absatz - na logisch! Lese ich nun diese Datei in mein Delphi-RichEdit mit *.LoadFromFile() ein, sehe ich auch den Text - allerdings ohne den Rahmen. Offenbar kann ich also weder eine solche Formatierung erzeugen, noch kann TRichEdit eine derart (korrekt?) formatierte Datei anzeigen? Wieso nicht? Mein Weltbild ist bisher, dass die eigentlichen Funktionalitäten von DLL's bereitgestellt werden, die mit dem Betriebssystem ausgeliefert werden. Warum kann WORD den Text korrekt formatieren und darstellen und das TRichEdit nicht? Verwenden nicht beide die gleichen DLL's? |
Re: TRichEdit - Absatz umrahmen
1, Es gibt diverse DLL die unteschiedliche Versionen von RTF unterstützen. Delphi hat in (ältern?) Versionen nur die alte Version der DLL verwendet.
2, Mit ![]() |
Re: TRichEdit - Absatz umrahmen
Hallo Bernhard.
Vielen Dank für den Link, schaue ich mir an. Aber ... Zitat:
Muss denn nicht mein eigener API-Aufruf (automatisch) bei der "richtigen" DLL landen? Also, will damit sagen, ich verstehe das Prinzip der DLL-Nutzung nicht :pale: edit: upps....bin kein Mensch, der alles umsonst haben will - aber 189 € sind schon 'ne ganze Menge Geld :shock: |
Re: TRichEdit - Absatz umrahmen
Es gibt riched20.dll und riched32.dll und wie der Name nahe legt ist die riched20.dll die mächtige DLL. Und Delphi bindet nur die ältere riched32.dll ein.
AFAIK hat die Jedi in der JVCL einen moderneren Wrapper der z.B. auch Bilder kann. |
Re: TRichEdit - Absatz umrahmen
Ahhh, habe mir jetzt mal RichEdit.pas angesehen, da finde ich im Kopfteil folgendes:
Delphi-Quellcode:
Ich interpretiere diese Konstanten so, dass damit RichEdit 2.0 unterstützt werden sollte. Wenn ich nun in die RTF-Specifications der Version 1.5 hineinschaue, dann stellt bereits diese Version den gewünschten Absatzrahmen zur Verfügung - seltsam.
{$EXTERNALSYM RICHEDIT_CLASSA}
RICHEDIT_CLASSA = 'RichEdit20A'; { Richedit2.0 Window Class. } {$EXTERNALSYM RICHEDIT_CLASSW} RICHEDIT_CLASSW = 'RichEdit20W'; { Richedit2.0 Window Class. } {$EXTERNALSYM RICHEDIT_CLASS} RICHEDIT_CLASS = RICHEDIT_CLASSA; RICHEDIT_CLASS10A = 'RICHEDIT'; { Richedit 1.0 } Aber: Ich finde in RichEdit.pas keine Angabe, welche DLL eingebunden wird. Sorry, ist wohl 'ne naive Frage, aber wo findet sich denn diese Angabe? |
Re: TRichEdit - Absatz umrahmen
Moin, Moin.
Nach einer kurzen Recherche zum Thema "LineSpacing" kann ich mir heute die Antwort nun selber geben. Zum Thema Borders, BorderWidth etc. finde ich... Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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-2025 by Thomas Breitkreuz