Если вы хотите использовать шрифт, шрифт должен быть установлен.
Но вы можете подделать это, используя AddFontResource
.
procedure TForm1.FormCreate(Sender: TObject) ;
begin
AddFontResource('c:\FONTS\MyFont.TTF') ;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
//Before application terminates we must remove our font:
procedure TForm1.FormDestroy(Sender: TObject) ;
begin
RemoveFontResource('C:\FONTS\MyFont.TTF') ;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
Как видите, AddFontResource необходимо имя файла. То же самое относится к AddFontResourceEx .
Итак, вам нужен файл шрифта. Но мы также можем подделать это.
Используйте JVCL TjvDataEmbedded
, чтобы включить ваш файл TTF в исполняемый файл. Вставить файл шрифта просто. (Щелкните правой кнопкой мыши, «Загрузить из файла» ...).
Во время выполнения извлеките ваш файл во временную директорию пользователя (см. Методы TjvDataEmbedded - я не знаю сейчас, но это должно быть что-то вроде SaveToFile или аналогичное) Кстати, вы можете извлечь его в любой другой каталог, который вам нравится. Звоните AddFontResource
на него.
Кроме того, в соответствии с вашими требованиями, вы можете извлечь файл в карту памяти и / или в ОЗУ.
НТН