Ładowanie czcionki na czas bieżącej sesji aplikacji

Aby móc używać w programie czcionki, która nie jest zainstalowana w systemie, powinniśmy skopiować plik czcionki do katalogu, w którym znajduje się plik programu i wpisać kilka prostych linijek kodu:

Unit1.cpp

void __fastcall TForm1::FormCreate(TObject *Sender)
{
   AnsiString FontPath = ExtractFilePath(ParamStr(0)) + "PRESIDNN.TTF";
   AddFontResource(FontPath.c_str());
   SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
   Label1->Font->Name = "PL President";
}

Dozwolone jest używanie czcionek zapisanych w plikach FON, FNT, TTF (TrueType) i FOT.

Unit1.cpp

void __fastcall TForm1::FormDestroy(TObject *Sender)
{
   AnsiString FontPath = ExtractFilePath(ParamStr(0)) + "PRESIDNN.TTF";
   RemoveFontResource(FontPath.c_str());
   SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
}

Jeśli używamy czcionek zachodnich (bez polskich liter) należy zmienić właściwość Font->Charset na ANSI_CHARSET lub DEFAULT_CHARSET. Jeśli tego nie zrobimy to system załaduje czcionkę bez żadnych zastrzeżeń, ale jeśli będziemy chcieli użyć jej dla naszego obiektu, automatycznie wybrany zostanie font z najbliższej rodziny czcionki.