AGB  ·  Datenschutz  ·  Impressum  







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

TRichEdit - Absatz umrahmen

Ein Thema von taaktaak · begonnen am 6. Okt 2008 · letzter Beitrag vom 26. Okt 2008
Antwort Antwort
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#1

TRichEdit - Absatz umrahmen

  Alt 6. Okt 2008, 21:36
Moin, Moin.

Ich bin verwirrt 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?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TRichEdit - Absatz umrahmen

  Alt 6. Okt 2008, 21:40
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 TRichview eine 100% Delphi RTF-Implementierung die keine Probleme mit einer DLL-Hölle hat.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#3

Re: TRichEdit - Absatz umrahmen

  Alt 6. Okt 2008, 21:49
Hallo Bernhard.

Vielen Dank für den Link, schaue ich mir an. Aber ...

Zitat:
Delphi hat in (ältern?) Versionen nur die alte Version der DLL verwendet.
Das verstehe ich leider nicht. Wird denn nicht automatisch die aktuelle DLL, die durch Windows bereitgestellt wird, verwendet? Delphi hat doch hierfür keine eigene DLL "mitgebracht" - oder? (Kann da nix entdecken)

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

edit:
upps....bin kein Mensch, der alles umsonst haben will - aber 189 € sind schon 'ne ganze Menge Geld
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: TRichEdit - Absatz umrahmen

  Alt 6. Okt 2008, 22:16
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#5

Re: TRichEdit - Absatz umrahmen

  Alt 6. Okt 2008, 22:41
Ahhh, habe mir jetzt mal RichEdit.pas angesehen, da finde ich im Kopfteil folgendes:
Delphi-Quellcode:
 {$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 }
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.

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?
Ralph
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#6

Re: TRichEdit - Absatz umrahmen

  Alt 26. Okt 2008, 13:39
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:
This item is only included for compatibility, and may not have any visible effect.
oder
This item is included for compatibility with Word; the rich edit control stores the values but does not use them to display text.
Tja, Pech gehabt. Nix mit Borders&Co. im Standard-RichEdit.
Ralph
  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 22:13 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