Hin und wieder muß man wissen wie hoch eine Font-Schrift ist. Da gibt es eine Formel dafür. Etwas einfacher geht es über die Canvas Methode. Da wird die Höhe des Fonts zwar nicht zurückgegeben, aber zumindest wieviel Platz in der Höhe sie benötigt.
Wobei die Höhe der Schrift nur eine Nebeninformation ist. Der Tipp sagt wie man die Höhe und Breite eines Zeichens[meta]Zeichenhöhe, Zeichenbreite, Zeichen[/meta] ermittel. Die Höhe gilt dann auch für für den Font:
Benötigt werden vier Parameter:
- Canvas auf der die Schrift ausgegeben werden soll
- ein Zeichen
- Variable für die Längenangabe als Rückgabewert
- Variable für die Höhenangabe als Rückgabewert
Eine Fontangabe braucht man nicht, da sie in der Canvas bereits steht.
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure CharWH(Canvas: TCanvas; Chr: Char; var Width, Height: Integer); begin Width := Canvas.TextWidth(Chr); Height := Canvas.TextHeight(Chr); end; |
Beispiel:
Die Länge und Höhe des Zeichens "W" ermitteln:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); var Buchstabe: Char; W, H: Integer; begin Buchstabe := 'W'; CharWH(Canvas, Buchstabe, W, H); ShowMessage(Format('Buchstabe: "%s"' + ^j^j + 'Breite: %d Pixel'+ ^j + 'Höhe: %d Pixel', [Buchstabe, W, H])); end; |
Apropos "W", oder wie die Amis sagen Double-U. Hab ihr gewusst, daß man in Indien einen BMW nicht einen Be-eM-We nennt, sondern einen Be-Em-Double-U?
Moderiert von Christian S.: Meta-Tags und - Wörter eingefügt