Wie kann ich nicht im System registrierte Schriftarten benutzen?


In meinem Delphi-Programm benutze ich mal keine Standard-Schrift von Windows, sondern eine spezielle Schriftart als Font in Labels. Aber wenn ich das kompilierte Programm weitergebe und es auf einem Rechner läuft, auf dem diese spezielle Schirftart nicht installiert ist, gibt's Probleme mit der Anzeige. Gibt es eine Möglichkeit, die Schriftdatei in das Programm einzubinden?

Antwort von Markus Goetz: Man kann einfach den Font als Datei mitliefern und dann in der OnCreate-Methode
des Formulars folgendes aufrufen:

  AddFontResource(pchar(ExtractFilePath(ParamStr(0)+'Irgendwas.TTF')));
  SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);

In der OnDestroy-Methode noch das hier:

  RemoveFontResource(pchar(ExtractFilePath(ParamStr(0)+'Irgendwas.TTF')));
  SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
Delphi 1 Delphi 2 Delphi 3 Delphi 4
nicht getestet Version nicht betroffen getestet

siehe auch:


Delphi FAQ