Wie kann ich in Delphi alle installierten Schriftarten bzw. Fonts auf meinem Computer auslesen?

~ 0 min
2021-02-11 12:07
  • Um mit Delphi alle installierten Schriftarten auf Ihrem PC, Rechner oder Server in eine String-Liste auszugeben, können Sie die unten stehende Funktion verwenden.
  • Beispiel:
    // Funktion zum Auslesen
    procedure ListFonts(const ADest: TStrings);
    var
      Log: TLogFont;
    
      function _EnumFontFamExProc(EnumLogFontEx: PEnumLogFontEx;
                                  NewTextMetric: PNewTextMetric;
                                  FontType: Longword;
                                  LParam: Longword): integer; stdcall;
      begin
        Result := 1;
        TStrings(LParam).Add(StrPas(EnumLogFontEx.elfFullName));
      end;
    
    var
      DC: HDC;
    begin
      FillChar(Log, SizeOf(Log), 0);
      Log.lfCharSet := Default_Charset;
      Log.lfFaceName := '';
      Log.lfPitchAndFamily := 0;
      DC := GetDC(0);
      EnumFontFamiliesEx(DC, Log, @_EnumFontFamExProc, Integer(ADest), 0);
    end;
    
    // Beispiel-Aufruf der Funktion
    procedure TForm1.btnReadFontsClick(Sender : TObject);
    var
      slFonts : TStringList;
    begin
      slFonts := TStringList.Create;
      try
        ListFonts(slFonts);
        slFonts.SaveToFile('C:\Temp\InstalledFonts.txt');
      finally
        slFonts.Free;
      end;
    end;
Durchschnittliche Bewertung 0 (0 Abstimmungen)

Kommentieren nicht möglich