Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
skiman18
0 / 0 / 0
Регистрация: 29.04.2015
Сообщений: 7
1

Установка шрифтов через реестр

29.04.2015, 23:59. Просмотров 1108. Ответов 3
Метки нет (Все метки)

Доброго времени суток!
Написан проект, для правильного его отображения на стороннем компьютере нужно установить на него шрифты, имеющиеся в папке с самим проектом.
Вот фрагменты кода, который, к сожалению, не работает
P. S. Компилируется без проблем

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var
  Form5: TForm5;
  ArrString: array [1..10] of string=('aero_matics_bold.ttf','aero_matics_bold_italic.ttf',
  'AGENCYB.ttf','AGENCYR.ttf','agenfb.ttf','Airport.ttf','cour.ttf','courbd.ttf',
  'courbi.ttf','couri.ttf');
 
implementation
uses calculator_v2, Time1, PlayHorse, Unit11, Registry;
{$R *.dfm}
 
procedure TForm5.FormCreate(Sender: TObject);
var
  hReg: TRegistry;
  i: byte;
begin
 for i := 1 to 10 do
 begin
  if CopyFile(PChar(ExtractFilePath(ParamStr(0)) + ArrString[i]),
           PChar('C:\WINDOWS\FONTS\' + ArrString[i]), true) then
   begin
   hReg := TRegistry.Create;
   hReg.RootKey := HKEY_LOCAL_MACHINE;
   hReg.LazyWrite := false;
   hReg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Fonts',
                false);
   hReg.WriteString('TESTMICR (TrueType)',ArrString[i]);
   hReg.CloseKey;
   hReg.free;
   AddFontResource(PChar('c:\windows\fonts\' + ArrString[i]));
   SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
   RemoveFontResource(PChar('c:\windows\fonts\' + ArrString[i]));
   SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
   end;
 end;
С уважением, Дмитрий

Добавлено через 13 часов 4 минуты
Неужели никто не поможет?

Добавлено через 8 часов 10 минут
Почему просмотры есть, а ответов нет?
Хоть что-то напишите
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2015, 23:59
Ответы с готовыми решениями:

Установка нестандартных шрифтов из DLL
Всем привет. Использую я в программе своей нестандартный шрифт Arlekino. Храню его в Dll, но...

Запуск через реестр
1. Запускай 2. Выбери какую нибуд файл (например, картина) 3. Нажимай на Буттон2 да работает. ...

Добавить программу в автозагрузку через реестр
как добавить программу (.exe) в автозагрузку через регистр?

Как поменять путь к файлу через реестр?
Как поменять путь к файлу через реестр вот здеся ? HKEY_LOCAL_MACHINE Software Microsoft Windows...

Замена заставки рабочего стола и запрет ее замены через реестр
Всем добрый вечер! Возникла проблема с написанием программы которая изменяет заставку раб. стола и...

3
cotseec
Пишу на Delphi...иногда
1409 / 1268 / 285
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
Завершенные тесты: 3
30.04.2015, 00:10 2
Цитата Сообщение от skiman18 Посмотреть сообщение
к сожалению, не работает
вызывает интерес вот такой еще процесс (с)
Delphi
1
2
3
4
5
6
....
   AddFontResource(PChar('c:\windows\fonts\' + ArrString[i]));
   SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
   RemoveFontResource(PChar('c:\windows\fonts\' + ArrString[i]));
   SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
...
происходит следующее:
1 добавляем ресурс шрифта
2 оповещаем широковещательным сообщением окна первого уровня, что появился новый шрифт
3 удаляем добавленный ресурс шрифта
4 оповещаем широковещательным сообщением окна первого уровня, что шрифта больше нет

получается достал, подразнил и спрятал, естественно этот шрифт никто использовать не смог
для использования шрифта при старте приложения шрифт регистрируется, затем используется и только при закрытии приложения шрифт удаляется + учесть удаление при аварийном завершении приложения

З.Ы. зачем такие пляски с реестром?

Добавлено через 2 минуты
шрифт вовсе необязательно копировать в папку со шрифтами - пусть себе тихонечко лежит рядом с приложением
1
skiman18
0 / 0 / 0
Регистрация: 29.04.2015
Сообщений: 7
30.04.2015, 01:22  [ТС] 3
Цитата Сообщение от cotseec Посмотреть сообщение
вызывает интерес вот такой еще процесс (с)

получается достал, подразнил и спрятал, естественно этот шрифт никто использовать не смог
для использования шрифта при старте приложения шрифт регистрируется, затем используется и только при закрытии приложения шрифт удаляется + учесть удаление при аварийном завершении приложения

З.Ы. зачем такие пляски с реестром?

Добавлено через 2 минуты
шрифт вовсе необязательно копировать в папку со шрифтами - пусть себе тихонечко лежит рядом с приложением
Нормально я так недоглядел
Спасибо вам за ответ, как будет возможность проверить на другом компе, сообщу о результате
P. S. С реестром пляски такие по двум причинам: несколько других способов не помогало в установке шрифтов (возможно, там код тоже корявый был, не отрицаю) и с реестром никогда не работал, решил попробовать
0
northener
30.04.2015, 01:50     Установка шрифтов через реестр
  #4

Не по теме:

Цитата Сообщение от skiman18 Посмотреть сообщение
С реестром пляски такие по двум причинам
С бубном надо было плясать, а не с реестром :)

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2015, 01:50
Привет! Вот еще темы с ответами:

Установка SOCKS прокси для IE через реестр
Здравствуйте! Возникла такая проблема: не могу найти где в реестре выставить SOCKS прокси. http...

Установка шрифтов на с++
Помогите пожалуйста у меня в борланде (с++ 5.02) вот такая проблема: программа под дос (морской...

Установка шрифтов
Подскажите пожалуйста, как установить шрифт на компоненту, чтобы можно было выбирать разные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru