Thema: Delphi Font Name auslesen

Einzelnen Beitrag anzeigen

Benutzerbild von Lossy eX
Lossy eX

Registriert seit: 7. Aug 2007
113 Beiträge
 
#8

Re: Font Name auslesen

  Alt 18. Okt 2007, 11:00
RWarnecke das Ganze hat aber einen kleinen Hacken. So erfährst du nur die installierten Schriften. Es gibt aber auch durchaus die Möglichkeit mittels AddFontResource eigene Schriften im System zu installieren. Wenn diese zum Beispiel speziell nur bei deiner Anwendung dabei liegen. Es gibt aber keine offizielle Möglichkeit von einer Datei den Namen zu erfragen.

Das habe ich das selber in meinem aktuellen Projekt benötigt. Es gibt dazu glaube ich von Microsoft sogar ein direktes Codebeispiel allerdings C und ich habe den Link davon nicht mehr. Das deckt sich aber mit dem was mkinzler als letzten Link gepostet hat. ABER der Code hat ein paar Schwächen.

1. Der Code betrachtet lediglich die Windowsnamen und vernachlässigt dabei vollkommen die SprachID. Denn die Windowsschriften haben häufiger mehr als nur einen Namen. Und wenn man einem deutschem Windows "Arial Bold" vor die Füße knallt dann bekommt man ungefragt das Standardfont vorgesetzt. Da es auch möglich ist, dass eine Schrift gar nicht die aktuelle Sprache unterstützt gehe ich her und lese alle Namen ein und priorisiere sie anhand ihrer Treffergenauigkeit. Den besten Treffer liefere ich dann zurück.

2. Richtet sich der Code nur auf den Vollständigen Namen. Den man aber nicht immer haben will und der auch nicht unbedingt enthalten sein muss. Es kann auch sein, dass man sich diesen selber aus dem Namen und dem Style namen zusammen setzen muss.

Der Code zu meiner Lösung befindet sich am Ende dieses Postings in der "Windows Bibliothek" und dort in der Datei "Source\TextSuiteTTFUtils.pas". Damit ist es auch Möglich von einer auf einen DC zugewiesene Schrift den Namen zu erfragen. Da man sich von diesem einzelne Tabellen (Namenstabelle) zurückgeben lassen kann.

PS: Vorsicht. In der Datei ist auch noch Code enthalten mit der man einen Zeichencode in einen Glyphindex umwandeln "kann". Dieser Code funktioniert allerdings nicht so ganz.
Ich habe ja keine Vorurteile gegenüber Autofahrern ... aber Fahrer von BMW und Mercedes bestätigen diese regelmäßig.
Außerdem neue technologische Errungenschaften: Serienmäßig eingebaute Rechtsfahrsperre und der stromsparende Blinker.
  Mit Zitat antworten Zitat