- - * - WhiteUnicorn - * - -




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >


Frequently Asked Questions

Adding TrueType fonts to windows in code.

Question:

How do I add a TrueType font to Windows 95 in code;

Answer:

You should copy the file to the Windows\Fonts directory,

then add an entry to the registry key:



 "'Software\Microsoft\Windows\CurrentVersion\Fonts".



The entry will be the font name and the path (if different 

than the Windows\Fonts directory). Once the registry entry 

is written, you should make a call to the Windows API 

function AddFontRecource(), then broadcast a system-wide 

WM_FONTCHANGE message. Finally, you should make a call to 

the Windows API function RemoveFontRecource(), to remove 

the resource lock on the font file, and broadcast a second

system-wide WM_FONTCHANGE message.



Here is an example:



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;




* #WhiteUnicorn/ StartPage/ Documentation/DelphiFAQ >



- - * - Anastasija aka WhiteUnicorn - * - - LJLiveJournal
PFPhotoFile