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

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

Замена шрифтов [D7, WinME]


Garfunkel ©   (2004-11-03 01:44:00) 

Вот я установил Font моей Label как Impact. А теперь думаю - а что если такого шрифта на машине пользователя не будет? На что его поменяет система?


Garfunkel   (2004-11-04 01:50:00) [1]

Спасибо за дельный ответ. "Похожий" шрифт это я так понимаю - с засечками и без засечек (serif/sans-serif)? А вот я хочу подобрать fixed font (моноширинный) чтобы на любой системе он был (ну на 99%). Думаю Courier New везде есть, не так ли?


TechnoDreamer   (2004-11-03 02:01:00) [2]

Заменит наиболее похожим. Можно шрифт встроить в прогу:
1. Делаете *.RC файл, содержащий ссылку на соотв. файл шрифта.
2. Компилируете ресурс с помощью BRCC32
3. Вставляете ресурс в свою программу с помощью директивы {$R ..}
4. Когда шрифт понадобится (например, при старте программы), извлекаете его из ресурса и записываете в файл на HD с помощью TRersourceStream. Перед этим, на всякий случай проверьте с помощью EnumFontFamilies, вдруг Ваш шрифт ужде в системе есть.
5. Делаете ресурс доступным для Windows с помощью AddFontResource( ваш_файл ) + бродкастом рассылаете WM_FONTCHANGE
6. Пользуетесь этим шрифтом так же, как и любым другим.
7. Когда нужда в шрифте отпадает (например, при завершении работы), делаете RemoveFontResource + WM_FONTCHANGE и удаляете файл с HD. А если хотите, можно и не удалять, а оставить в системе (тогда файл копировать лучше в Windows\Fonts, предварительно убедившись, что у Вас есть на это право.

Плюс еще можно почитать об этом здесь: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext_7qb8.asp

З.Ы. Инфу я взял когда то с ответ Kid_Deceiver, с форума iXBT.


Наверх

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