Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   QuoteText parsen? (https://www.delphipraxis.net/182623-quotetext-parsen.html)

Bjoerk 12. Nov 2014 14:24

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

DeddyH 12. Nov 2014 15:19

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.

p80286 12. Nov 2014 15:48

AW: QuoteText parsen?
 
Zitat:

Zitat von DeddyH (Beitrag 1279493)
Textbreite muss man aber erst einmal definieren, soll sie mit oder ohne die Leerzeichen sein?

Textbreite ergibt sich aus den darstellbaren Zeichen, Ausnahme ist das "definierteLeerzeichen" (weis jetzt die genaue Bezeichnung nicht), daß muß mitgezählt/gemessen werden.

Gruß
K-H

Bjoerk 12. Nov 2014 15:58

AW: QuoteText parsen?
 
Zitat:

Ich habe Deinen Code jetzt nicht bis ins Detail nachvollzogen, aber ein paar Gedanken dazu: aufzuteilende Breite = Anzeigebreite - Textbreite.
Hab ich.
Zitat:

Textbreite muss man aber erst einmal definieren, soll sie mit oder ohne die Leerzeichen sein?
Ist mit Leerzeichen.
Zitat:

[..] man daran denken, außer beim letzten Wort bei der Anzeige noch ein Leerzeichen anzuhängen, wenn man die Stringliste abarbeitet.
Wieso dieses Leerzeichen? Kapier ich nich?

Edit:
Stimmt übrigens. Mega Thanx!! Aber wieso?
Delphi-Quellcode:
MMX := MMX + Canvas.TextWidth(SL[I] + #32) / ppMM + DeltaMMX;

Sir Rufo 12. Nov 2014 16:10

AW: QuoteText parsen?
 
Non Breaking SPace
HTML-Code:
<p>
  Ich bin ein&nbspText in einem kurzen nichtssagendem Absatz.
</p>
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.
Code:
|----------------------|
Ich...bin..ein_Text...in
einem.............kurzen
nichtssagendem.Absatz.

DeddyH 12. Nov 2014 16:47

AW: QuoteText parsen?
 
Zitat:

Zitat von Bjoerk (Beitrag 1279506)
Stimmt übrigens. Mega Thanx!! Aber wieso?

Nehmen wir doch mal das hier:
Code:
Ich_bin_ein_Satz.
(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
Code:
Ich
bin
ein
Satz.
Gibst Du das nun mit jeweils 24 Pixeln Zwischenabstand wieder aus, kommt dabei
Code:
IchXbinXeinXSatz.
(X = 24 Pixel Abstand) heraus. Das ist aber zu kurz, da die Breite der nun weggefallenen Leerzeichen fehlt, das muss wieder ergänzt werden:
Code:
Ich_Xbin_Xein_XSatz.
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) ;)

Bjoerk 12. Nov 2014 17:05

AW: QuoteText parsen?
 
Achso. Die SplitString schmeißt ja den Delim (hier #32) raus. Dann isses klar. Danke! :oops: :thumb:

p80286 12. Nov 2014 17:47

AW: QuoteText parsen?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1279511)

Ich habs gefunden..RequestedSPace (IBM /370 EBCDIC Character Set).
Ist das gleiche aber IBM war ja schon immer ein wenig anders.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:43 Uhr.
Seite 4 von 4   « Erste     234   

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