Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как подключать шрифты


Автор: Fedor 23.1.2004, 18:26
Добрый день...

Моя прога использует шрифт Monotupe Coursiva. его может не быть на компьютере, на котором будет защита. Как подключить этот шрифт к тому компьютеру? Обязательно ли для этого копировать его в папку Windows\Fonts

Заранее спасибо за советы

Автор: Vit 23.1.2004, 19:47
Зарегистрировать шрифт:
AddFontResource('путь к фонту\\Algerian.ttf');
Объект.Font.Name:="Algerian";

Удалить -
RemoveFontResource('путь к фонту\\Algerian.ttf');

Автор: Fedor 23.1.2004, 21:17
Vit Вот вспомнил я про FAQ, а там еще написано, что нуно в реестр прописывать... Это обязательно? Или достаточно того, что вы ответили выше?

Автор: Pakshin A. S. 23.1.2004, 21:50
У меня есть несколько иной способ, хотя суть та же:
Код

uses Registry;

procedure AddFont(const FileName:string);
var
  reg: TRegistry;
  b: bool;
begin
  CopyFile(FileName, 'C:\Windows\Fonts\' + ExtractFileName(FileName), b);
  reg:=TRegistry.Create;
  reg.RookKey:=HKEY_LOCAL_MACHINE;
  reg.lazyWrite:=false;
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Fonts', false);
  reg.WriteString('TestMicr )trueType)', ExtractFileName(FileName));
  reg.CloseKey;
  reg.Free;
  // Добавление
  AddFontresource(FileName);
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
  {
  Удаление
  RemoveFontResource(FileName);
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
  }
end;

Могут быть ошибки, писал по-памяти...
Нужно доделать до более универсальной версии...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)