Nietypowe czcionki w naszej aplikacji.
markowski
Jakiś czas temu, gdy pytałem się w jaki sposób wyświetlić w moim programie czcionkę, która raczej nie będzie zainstalowana w systemie użytkownika, otrzymałem porady w jaki sposób mu ja zainstalować.
No tak... Ale niezupełnie o to mi chodziło. Chcę użyć czcionki dostarczonej z moim programem i ładować ją jedynie na czas działania programu. Zbyt duża ilość fontów w systemie wcale nie pomaga, a program nie ma być instalatorem czcionek. Oto czego się doszukałem:
W naszym przypadku konieczne będzie użycie funkcji WinApi. Pierwszą więc rzeczą jaką musimy uczynić jest dopisanie do listy uses modułu: ShellApi.
Kopiujemy plik z naszym fontem, do katalogu z projektem aplikacji. Załóżmy, że plik nazywa się: Abc.TTF, a czcionka Alamakota.
Teraz możemy już załadować czcionkę. Zrobimy to przy pomocy funkcji AddFontResource(FileName:PChar). Jak widać, jej jedynym parametrem jest nazwa pliku czcionki. W naszym wypadku będzie to więc:
<b STYLE="color:#808080">AddFontResource('Abc.TTF')</b>
Od razu musimy też ogłosić pojawienie się nowego zasobu:
<b STYLE="color:#808080">SendMessage (HWND_BROADCAST,WM_FONTCHANGE,0,0)</b>
Moment w którym należy to zrobić, to na przykład FormCreate: