![]() |
Andorra 2D - FontHeight
Gibt es bei Andorra eine Möglichkeit die Höhe eines Textes genau zu bestimmen?
Ich versuche es folgend zu machen, damit der Text eine Höhe von 45 Pixeln hat.
Delphi-Quellcode:
tempMat := AdMatrix_Identity;
tempMat[1][1] := 45.0 / Font.TextHeight(Caption); Font.Color := Color; Font.TransformationMatrix := tempMat; Font.TextOut(ClientWidth-40-Font.TextWidth(Caption)-20, 0, Caption); |
AW: Andorra 2D - FontHeight
Schau mal hier:
![]() Damit kannst du dir dann die Transformationsmatrix sparen. Du solltest entsprechend mit
Delphi-Quellcode:
das Ganze setzen können.
TAdSimpleTypeSetter(Font.TypeSetter).CharHeight
|
AW: Andorra 2D - FontHeight
hab ich mit
Delphi-Quellcode:
probiert.
TAdSimpleTypeSetter(Font.TypeSetter).CharHeight := 45.0 / Font.TextHeight(Caption);
Aber es scheint so, als ob oben und unten noch extra platz reserviert wird ... kann man den auch irgendwie abstellen? Mein ziel ist es, ich habe eine Rechteck, das mal mit Gradient gefüllt werden soll siehe andere Frage ;) ) In dieses Rechteckt möchte ich genau in der Höhe des Rechteckes, ein schwarzes Rechteck drüber legen, und dann genau in der Höhe dieses Rechteck dann die Caption schreiben momentan mache ich es so
Delphi-Quellcode:
Allerdings finde ich es komisch, das wenn die Schrift 45 Pixel hoch sein soll, ich mit dem Faktor 70 und einem Offset von -14 arbeiten muß ... oder gehts nicht anders?
TAdSimpleTypeSetter(Font.TypeSetter).CharHeight := 70.0 / Font.TextHeight(Caption);
Font.Color := Color; Font.TextOut(ClientWidth-40-Font.TextWidth(Caption)-20, -14, Caption); |
AW: Andorra 2D - FontHeight
Leider weiß ich selbst nicht mehr genau wie ich das damals implementiert habe. Ich würde das an deiner Stelle mal durchdebuggen und schauen woher der Offset kommt - eventuell gibt es noch eine Variable "Lineheight" oder "Linespacing" oder so was ähnliches im TAdSimpleTypeSetter die das bewirkt.
|
AW: Andorra 2D - FontHeight
LineHeight gibts, das habe ich schon auf 0 gesetzt ...
Ist die Frage, kann es sein, das beim Berechnen davon ausgegangen wird, das alle Buchstaben berücksichtigt werden? Da ja ein y weiter runtergeht, und ich keins verwende, aber das system trotzdem davon ausgeht? Vermutlich, hab gerade den selben Text mit y ausgegeben, und die restlichen Buchstaben bleiben nun gleich groß, und das y ragt aus dem Bereich raus ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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-2025 by Thomas Breitkreuz