![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Замена шрифтов [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.