Hallo,
damit ich in meinem RTF-Konverter bei Änderung im RTF-Kopf die richtige Schriftart eintragen kann, benötige ich auch die Familie und den Zeichensatz, zu dem die Schrift gehört. Allerdings bekomme ich mit LogFont hier keine Ergebnisse.
Ich gehe so vor: In einer Combobox wird die Schriftart ausgewählt. Einem Label wird die neue Schriftart zugewiesen (damit man auch sehen kann, was man da gewählt hat).
Nun möchte ich Familie und Zeichensatz ermitteln:
Delphi-Quellcode:
if GetObject(Form3.Label7.Font.Handle, SizeOf(LogFont), @LogFont) <> 0 then
begin
logFont.lfPitchAndFamily:= logfont.lfPitchAndFamily shr 4;
case 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;
Allerdings enthält LogFont bei lfPitchAndFamily und bei lfCharset immer 0! Was muss ich anders machen, damit ich z.B. bei Times New Roman auch FF_ROMAN erhalte und bei Symbol z.B. SYMBOL_CHARSET, wie es doch eigentlich richtig sein sollte?
Anscheinend wird LogFont richtig gefüllt, denn die Eigenschaften von Label7.Font stimmen mit denen in Logfont überein: Charset ist bei der Schriftart Symbol z.B. 0.
Wieso ist das so? Werden nicht die "Standardwerte" geladen, wenn man einem Label eine Schriftart zuweist? Wie komme ich an die Standardwerte ran?