Einzelnen Beitrag anzeigen

mani64

Registriert seit: 8. Apr 2009
49 Beiträge
 
Delphi 5 Professional
 
#1

Ermittlung der Schriftfamilie

  Alt 24. Apr 2009, 23:27
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?
  Mit Zitat antworten Zitat