Своим опытом делится Олег Кулабухов:
Для начала нужно скопировать шрифт в системную папку Windows\Fonts. Затем добавить соответствующее значение в реестр "'Software\Microsoft\Windows\CurrentVersion\Fonts", выполнить функцию AddFontRecource() и передать сообщение WM_FONTCHANGE. Затем выполнить RemoveFontRecource() для снятия залочки с ситемного ресурса и выполнить второй посыл сообщения WM_FONTCHANGE.
uses Registry; procedure TForm1.Button1Click(Sender: TObject); var reg: TRegistry; b : bool; begin CopyFile('C:\DOWNLOAD\FP000100.TTF', 'C:\WINDOWS\FONTS\FP000100.TTF', b); reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; reg.LazyWrite := false; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Fonts', false); reg.WriteString('TESTMICR (TrueType)','FP000100.TTF'); reg.CloseKey; reg.free; {Add the font resource} AddFontResource('c:\windows\fonts\FP000100.TTF'); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); {Remove the resource lock} RemoveFontResource('c:\windows\fonts\FP000100.TTF'); SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); end; |
[001880]