ich bastle gerade an einem Projekt herum, welches Text und Graphiken auf einen Drucker ausgibt.
So Zeichne ich z.B. ein Rechteck, welches auf A4 Ausgedruckt am Ende die Kantenlänge z.B. 2*4cm hat. In dieses Kästchen will ich einen Text schreiben, der Möglichst Groß sein soll.
Nun suche ich nach einer "Besseren" Möglichkeit als diese hier (die Breite des Textes kann ich in meinem Speziellen Fall vernachlässigen, es handelt sich immer um 1 Zeilige Strings:
Code: Alles auswählen
Procedure TrimFontToHeight(h: integer);
Var
s: String;
Begin
s := 'Hj';
canvas.Font.Size := 12; // Irgendwas, nur nicht die "0" die es im default ist.
While canvas.TextHeight(s) < h Do Begin
canvas.Font.Size := canvas.Font.Size + 1;
End;
While canvas.TextHeight(s) > h Do Begin
canvas.Font.Size := canvas.Font.Size - 1;
End;
End;