Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Andorra 2D - FontHeight (https://www.delphipraxis.net/156361-andorra-2d-fontheight.html)

Gruber_Hans_12345 29. Nov 2010 15:45

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);

igel457 29. Nov 2010 15:57

AW: Andorra 2D - FontHeight
 
Schau mal hier:

http://andorracommons.sourceforge.ne...ter#CharHeight

Damit kannst du dir dann die Transformationsmatrix sparen. Du solltest entsprechend mit
Delphi-Quellcode:
TAdSimpleTypeSetter(Font.TypeSetter).CharHeight
das Ganze setzen können.

Gruber_Hans_12345 29. Nov 2010 16:08

AW: Andorra 2D - FontHeight
 
hab ich mit
Delphi-Quellcode:
TAdSimpleTypeSetter(Font.TypeSetter).CharHeight            := 45.0 / Font.TextHeight(Caption);
probiert.

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:
        TAdSimpleTypeSetter(Font.TypeSetter).CharHeight            := 70.0 / Font.TextHeight(Caption);
        Font.Color := Color;
        Font.TextOut(ClientWidth-40-Font.TextWidth(Caption)-20, -14, Caption);
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?

igel457 29. Nov 2010 16:14

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.

Gruber_Hans_12345 29. Nov 2010 16:17

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 18:49 Uhr.

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