31.05.2006, 17:41
общий
это ответ
Здравствуйте, Ustas!
Как вариант, можно сделать фонт ресурсом и при надобности извлекать отдельным файлом.
Для этого вначале нужно его поместить ресурсом в ЕХЕ.
создайет файл fontres.rc
в него запишите такую строчку без кавычек "MyFont Fonts <font filename>"
и скомпилировать ресурс с помощью brcc32.exe fontres.rc
полученный файл fontres.res переместите в папку с программой и слинкуйте диресктивой {$R fontres.res}.
в программе извлекать вот так:
procedure TForm1.FormCreate(Sender: TObject);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, ‘MyFont‘, Pchar(‘Fonts‘));
Res.SavetoFile(‘fontfilename‘);
Res.Free;
AddFontResource(PChar(‘fontfilename‘));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;
и теперь его можно использовать в программею. Только нужно нужно знать внутреннее имя шрифта (а-ля Arial, Times New Roman......). Что бы удалить шрифт нужно
RemoveFontResource(PChar("fontfilename"))
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);