Entwickler-Ecke

Sonstiges - ...die Höhe und Breite eins Zeichens (Höhe Font) ermitteln?


Popov - Di 10.02.04 00:59
Titel: ...die Höhe und Breite eins Zeichens (Höhe Font) ermitteln?
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:

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 user profile iconChristian S.: Meta-Tags und - Wörter eingefügt