AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

DrawTextEx und "1"#13#10

Ein Thema von hoika · begonnen am 24. Aug 2016 · letzter Beitrag vom 27. Aug 2016
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.159 Beiträge
 
Delphi 10.4 Sydney
 
#1

DrawTextEx und "1"#13#10

  Alt 24. Aug 2016, 10:25
Hallo,
ich versuche, dem DrawTextEx beizubringen,
dass er die Höhe bei '1'+#13#10 genauso wie bei '1'#13#10+' ' errechnet.

Die Funktion ist aber zu schlau

Hintergrund
TAdvStringrid.AutoSizeRow benutzt DrawTextEx, um die Höhe der Zelle zu ermitteln.
Es handelt sich um fremde Daten, die ich darstellen muss,
und wenn da ein Umbruch ist, soll er auch dargestellt werden.

Im Moment behelfe ich mir mit einem künstlichen Leerzeichen vor dem AutoSizeRow,
wenn das letzte Zeichen des Textes ein #10 ist.

Geht das auch anders?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.509 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: DrawTextEx und "1"#13#10

  Alt 24. Aug 2016, 14:47
Bezüglich der eventuell breiteren Breite ist es egal? (durch das Leerzeichen)
Ansonsten gibt es auch Zero-Width Whitespaces / 0-breite Leerzeichen (https://de.wikipedia.org/wiki/Breitenloses_Leerzeichen).

Für DrawTextEx+DT_CALCRECT ist die letzte Zeile halt 0 hoch, wenn da keine Zeichen drin sind.
Das ist wohl einfach so.
PS: Beim Delphi-IDE-Property-Editor sind die Zeilen auch 0 hoch (ClientHeight + einen Offest/Abstand zu den Trennlinien), wenn das Ding keinen Namen und keinen Value zum Anzeigen findet.

Gibt es ein AutoLineBreak? (maximale Breite des CalcRects)
Wenn nicht, dann einfach (1 + CountLineBreaks(DeinText)) * TextHeight('X') .
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list

Geändert von himitsu (24. Aug 2016 um 14:56 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.159 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: DrawTextEx und "1"#13#10

  Alt 26. Aug 2016, 16:47
Halo,
ich muss DrawTextEx benutzen, weil das das TAdvStringGrid intern auch macht.
Ich habe mich so jetzt beholfen, dass ich vor der Berechnung prüfe,
ob #13#10 die vorletzte Position im String ist und das in diesem Fall entferne.
Heiko

Geändert von hoika (26. Aug 2016 um 16:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.509 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: DrawTextEx und "1"#13#10

  Alt 27. Aug 2016, 00:50
dass ich vor der Berechnung prüfe,
ob #13#10 die vorletzte Position im String ist
Einfach immer Delphi-Referenz durchsuchenTrimRight machen?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf