Einzelnen Beitrag anzeigen

blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Ermittlung der Schriftfamilie

  Alt 25. Apr 2009, 02:40
Hallo.

Ich würde nicht auf logFont.lfPitchAndFamily schreiben. Das könnte irgendwelche unerwünschten Effekte haben. Besser mal in eine Variable.

Am besten gibst du logFont.lfPitchAndFamily einmal zu Testzwecken aus und analysierst durch Umrechnung Dez -> 8'Bin, ob die Bytes 4..7 wie in der MSDN beschrieben wirklich den korrekten Wert haben (Vergleich mit den Konstanten).

Ich habe mit shr und shl noch nie gearbeitet. Bist du dir sicher, dass wenn du "shr 4" schreibst, auch auf die Bytes 4..7 kommt? Müsstest du nicht nach links schieben?

Außer: Wenn du an die Bytes 4..7, also die "zweite" Hälfte möchtest, kannst du doch gleich Lo() verwenden. Wäre einfacher.

Delphi-Quellcode:
if GetObject(Form3.Label7.Font.Handle, SizeOf(LogFont), @LogFont) <> 0 then
begin
  case Lo(logFont.lfPitchAndFamily) of
    FF_DONTCARE: neufamilie:='fnil';
    FF_ROMAN: neufamilie:='froman';
    FF_SWISS: neufamilie:='fswiss';
    FF_MODERN: neufamilie:='fmodern';
    FF_SCRIPT: neufamilie:='fscript';
    FF_DECORATIVE: neufamilie:='fdecor';
  end;
  neucharset:='\fcharset' + IntToStr(logFont.lfCharset) + ' ';
end;
Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat