Einzelnen Beitrag anzeigen

SittingDuck

Registriert seit: 11. Jan 2006
Ort: Leverkusen
159 Beiträge
 
Delphi 2010 Professional
 
#1

WordBreak innerhalb eines Wortes

  Alt 14. Nov 2012, 15:50
Moin Moin ...

Man kann ja mit DrawText einen Text z.B. auf dem Canvas eines Bitmaps ausgeben. Wenn man eine fixe Rect-Größe hat und DT_WORDBREAK benutzt, dann wird der Text auch entsprechend an Hand der Leerzeichen bzw. CR/LF umgebrochen. Durch den Parameter DT_CALCRECT bekomme ich ja u.a. die Rect-Höhe zurück und falls ein besonders langes Wort über die maximal vorgegebene Rect-Breite hinaus gehen würde, wird auch diese entsprechend vergrößert.

Und genau um diese langen Worte geht es mir. Beispielsweise ein Link, der ja keine Leerzeichen enthält und auch recht lang werden kann. Meiner Recherche zufolge, könnte ich zwar mit TRichEdit und einer festen Breite incl. dem richtigen Zeichensatz, die Komponente den Umbruch erledigen lassen und danach mit Lines[] die Zeilen abfragen. Nur wegen dieser Funktion möchte ich aber ungern die gesammte Komponente meinem Projekt hinzufügen.

Da würde ich lieber eine eigene Funktion schreiben, wahrscheinlich eine Kombination aus WordWrap und GetTextExtentExPoint, welche mir das zu lange Wort entsprehend umbricht. Erste Ansätze wurden schon mal hier besprochen. Wahrscheinlich brauche ich das Rad gar nicht neu zu erfinden, deshalb möchte ich mal Fragen, ob schon jemand einen ersten Ansatz vorweisen kann ... nur um nicht komplett bei Null anfangen zu müssen.

Danke schon mal für Eure Hilfe.
Ciao ... SittingDuck
iPhone Backup und mehr: iTwin v3.9 Beta ... Alternative Startleiste: Launcher v3.8 !
  Mit Zitat antworten Zitat