Hallo wie kann ich die LogFont-Struktur füllen? Die LogFont-Struktur enthält Informationen zu einer Schrift. Einge dieser Infos benötige ich. Wenn ich die LogFont-Struktur mit dem unteren Code fülle, sind lfHeight und lfWidth und auch andere Felder bei allen Fonts immer gleich, obwohl sie es nicht sein dürften.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
procedure TestLogFont(const FontName: string);
var
LogFont: TLogFont;
begin
Canvas.Font.Name := FontName;
FillChar(LogFont, SizeOf(LogFont), 0);
GetObject(Canvas.Font.Handle, SizeOf(TLogFont), @LogFont);
Memo1.Lines.Add('lfFaceName: ' + LogFont.lfFaceName);
Memo1.Lines.Add('lfHeight: ' + IntToStr(LogFont.lfHeight));
Memo1.Lines.Add('lfWidth: ' + IntToStr(LogFont.lfWidth));
end;
begin
Memo1.Lines.Clear;
TestLogFont('Arial');
TestLogFont('Comic Sans MS');
end;
Dieser Code gibt folgendes aus:
Delphi-Quellcode:
lfFaceName: Arial
lfHeight: -11 (richtig wäre 36)
lfWidth: 0 (richtig wäre 14)
lfFaceName: Comic Sans MS
lfHeight: -11 (richtig wäre 45)
lfWidth: 0 (richtig wäre 15)
Ich brauche auch einige andere Werte aus der LogFont-Struktur, deswegen jetzt bitte nicht schreiben, dass man auch auf andere Wege die Höhe/Breite ermitteln kann.
Vielen Dank im Voraus!