00 Stimmen

Lazarus: Standard-Schriftgröße von Programm und Controls ermitteln

Frage von Gast | 06.10.2015 um 20:25

Ich würde gerne irgendwie herausbekommen, welche Größe die Standard-Schrift von meinem Programm hat. Also die Schriftgröße, die für alle Controls wie Panel, Label, Edit-Felder oder Listboxen verwendet wird.

Um die Schriftgröße auslesen zu können, habe ich versucht den Wert von Form1.Font.Size oder Label1.Font.Size in einer Variable zu speichern. Leider ist das Ergebnis dabei stets 0 und das selbst während der Programmausführung, obwohl die Controls doch eine sichtbare Schriftgröße haben.

Was mache ich hier falsch? Und wie komme ich an den richtigen Wert?

AntwortenPositivNegativ
1Beste Antwort1 Stimme

Wenn Font.Size auf 0 steht, bedeutet dies, dass die Standard-Schriftgröße verwendet werden soll.

Die wahre Größe bekommst du folgendermaßen heraus:

function GetDefaultFontSize: integer;
var
  fd: TFontData;
begin
  fd := GetFontData(prog.Font.Handle); 
  result := round((fd.Height * 72 / Font.PixelsPerInch) * (-1));  
end;

Ich habe das ganze mal eine Funktion gepackt, dadurch sollte deutlich werden, worauf es ankommt.

Wir holen uns zunächst die FontData des Programms und müssen anschließend den daraus lesbaren Wert in unsere Schriftgröße umrechnen.
07.10.2015 um 20:23

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Delphi: Systemweiter HotKey

Tutorial | 3 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.