![]() |
AW: QuoteText parsen?
Ok. Schau ich mir an. Vielleicht nochmal zu meinem Ansatz. Ich versteh ja wenn das mal 1 oder 2 Pixel Unterschied sind (ist bei Word ja auch) aber so ??? Ich splitte den String in eine Wortliste (übrigens mit deiner Splitspring) und drucke dann Wort für Wort. Das TextWidth jeweils dazu addiert zuzüglich der Länge Delta?
Code:
========== Bezugsbreite ==========
Test(__Delta__)Test(__Delta__)Test |
AW: QuoteText parsen?
Ich habe Deinen Code jetzt nicht bis ins Detail nachvollzogen, aber ein paar Gedanken dazu: aufzuteilende Breite = Anzeigebreite - Textbreite. Textbreite muss man aber erst einmal definieren, soll sie mit oder ohne die Leerzeichen sein? Ohne Leerzeichen könnte dazu führen, dass im ungünstigsten Fall der Zwischenraum kleiner als die Breite eines Leerzeichens wird, nicht so schön. Im anderen Fall muss man daran denken, außer beim letzten Wort bei der Anzeige noch ein Leerzeichen anzuhängen, wenn man die Stringliste abarbeitet.
|
AW: QuoteText parsen?
Zitat:
Gruß K-H |
AW: QuoteText parsen?
Zitat:
Zitat:
Zitat:
Edit: Stimmt übrigens. Mega Thanx!! Aber wieso?
Delphi-Quellcode:
MMX := MMX + Canvas.TextWidth(SL[I] + #32) / ppMM + DeltaMMX;
|
AW: QuoteText parsen?
![]()
HTML-Code:
hat beim Rendern ein feste Breite und an der Stelle wird nicht umgebrochen. Alle anderen Leerzeichen können in der Breite variieren um beim Blocksatz den Text bündig zu präsentieren.
<p>
Ich bin ein Text in einem kurzen nichtssagendem Absatz. </p>
Code:
|----------------------|
Ich...bin..ein_Text...in einem.............kurzen nichtssagendem.Absatz. |
AW: QuoteText parsen?
Zitat:
Code:
(die _ sollen die Leerzeichen darstellen). Angenommen, es ergibt eine Textbreite von 50 Pixeln, die Ausgabebreite beträgt 122 Pixel, dann ist der aufzuteilende Abstand 72 Pixel. 3 Wortabstände (Leerzeichen), das macht dann 24 Pixel zusätzlichen Abstand zwischen 2 Worten. Du hast jetzt den Satz gesplittet, das ergibt
Ich_bin_ein_Satz.
Code:
Gibst Du das nun mit jeweils 24 Pixeln Zwischenabstand wieder aus, kommt dabei
Ich
bin ein Satz.
Code:
(X = 24 Pixel Abstand) heraus. Das ist aber zu kurz, da die Breite der nun weggefallenen Leerzeichen fehlt, das muss wieder ergänzt werden:
IchXbinXeinXSatz.
Code:
Deswegen entweder Leerzeichen an die einzelnen Worte wieder anhängen oder gleich die Textbreite ohne Leerzeichen errechnen (oder die Textbreite eines Leerzeichens einmalig ermitteln und auf den Abstand aufschlagen) ;)
Ich_Xbin_Xein_XSatz.
|
AW: QuoteText parsen?
Achso. Die SplitString schmeißt ja den Delim (hier #32) raus. Dann isses klar. Danke! :oops: :thumb:
|
AW: QuoteText parsen?
Zitat:
Ist das gleiche aber IBM war ja schon immer ein wenig anders. Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 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