Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#1

Wie LogFont-Struktur füllen?

  Alt 17. Apr 2008, 15:57
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!
  Mit Zitat antworten Zitat