Fontsize korrekt berechnen

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
corpsman
Beiträge: 1102
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus SVN Trunk, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Fontsize korrekt berechnen

Beitrag von corpsman »

Servus miteinander,

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;
--
Just try it

Antworten