Entwickler-Ecke
Multimedia / Grafik - TextWidth liefert falsche Werte
mwawra - Fr 15.07.05 22:39
Titel: TextWidth liefert falsche Werte
Ich spiele mich schon ewig mit dem Problem herum, daß die von TextWidth gelieferten Werte nicht der Realität entsprechen.
Konkret:
Delphi-Quelltext
1: 2: 3:
| Font.Name := 'Lucida Sans Unicode' ; Font.Height := 40 ; Font.Style := [] ; |
TextWidth liefert Ergebnisse welche grob (80%) danebenliegen.
Änderungen der Fontgröße ergeben in einem großen Bereich (Height = 40, Height = 50) den gleichen Wert.
Was läuft da falsch ?
Kann es sein, daß bestimmte Fonts nicht feiner skalierbar sind ?
Wer weiß was darüber ?
Danke für Tipps
Manfred
Moderiert von
Christian S.: Delphi-Tags hinzugefügt.
maxk - Fr 15.07.05 22:50
Hallo und :welcome: im DF!
Das kommt bei mir sehr genau hin :? Hast du evtl. versehentlich Font, statt Canvas.Font geändert?
Gruß,
maxk
mwawra - Sa 16.07.05 01:20
Hallo,
danke fürs Willkommen und für die Antwort.
Ich wollte nicht den ganzen Sermon hinschreiben. Natürlich habe ich vom relevanten Canvas den Font entsprechend gesetzt, und von diesem Canvas Textwidth aufgerufen. Bei manchen Fontgrößen kommt der Wert auch sehr genau, bei anderen eben wie gesagt total daneben. Ich muß noch probieren, ob es bei einem anderen Font (z.B. Arial) besser klappt.
maxk - Sa 16.07.05 10:20
Ich habe es gestern mit deiner Einstellung (oben) probiert und das hat wunderbar funktioniert - die meintest du doch als Beispiel, oder?
mwawra - Sa 16.07.05 17:36
Hallo maxk,
ich glaube das Problem besteht darin, daß ich für die Ausgabe das Canvas umsetze:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var ziel : TCanvas ; mypanel : TMyWinControl ;
setmapmode(ziel.handle, mm_anisotropic) ; SetWindowExtEX(ziel.handle, druckbreite, druckhoehe, nil) ; SetViewportExtEX(ziel.handle, MyPanel.width, MyPanel.height, nil) ; |
Wenn ich auf diesem transformierten Canvas TextWidth berechne kommen falsche Werte heraus.
Ich habe mir jetzt ein temporäres Bitmap erzeugt, auf dessen Canvas ich die TextWidth Berechnung mache. Diese Ergebnisse stimmen.
Danke fürs probieren und helfen
Manfred
Moderiert von
raziel: Delphi-Tags hinzugefügt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!