Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема загрузки шрифта [D7, XP]


VovKul ©   (2008-06-04 11:09:00) 

Скажите, пожалуйста, почему не работает этот код. Почему не загружается новый шрифт в систему (по крайней мере, моя программа не видит его)
procedure TForm1.FormCreate(Sender: TObject);
begin
  AddFontResource(PChar(ExtractFilePath(ParamStr(0) + 'YourFont.TTF')));
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  RemoveFontResource(PChar(ExtractFilePath(ParamStr(0) + 'YourFont.TTF')));
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;


Anatoly Podgoretsky   (2008-06-04 14:04:00) [1]

> VovKul  (04.06.2008 11:09:00)  [0]

AddFontResource вообще то функция, а не процедура, а у тебя не видно анализа и обработки ошибок. Ты что хочешь, что бы мы по телепатировали?


{RASkov}   (2008-06-04 13:33:00) [2]

> [0] VovKul   (04.06.08 11:09)

Что покажет данный код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 ShowMessage(IntToStr(
   AddFontResource(PChar(ExtractFilePath(ParamStr(0) + 'YourFont.TTF'))));
 SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;
?
Если 0 - значит нет шрифтов в файле или самого файла со шрифтом нет....


Olegz77   (2008-06-04 11:27:00) [3]

По поводу используемых функций ничего не могу сказать. А ошибки нет со скобками при формировании имени файла шрифта - внутри приведения PChar ? ExtractFilePath должен обрабатывать, скорее всего, ParamStr(0), а не ParamStr(0) + 'YourFont.TTF'
Наверное так:
PChar(ExtractFilePath(ParamStr(0)) + 'YourFont.TTF')


Наверх

Титульная страница Поиск, карта сайта Написать письмо