Форум: "Основная";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];
ВнизУстановка собственного шрифта Найти похожие ветки
← →
Илья_ (2009-01-12 01:10) [0]Моя программа использует собственный шрифт, которого нет
в Windows. Как посоветуете это сделать? Установить шрифт
вместе с программой во время инсталляции или пользоваться
им без установки регистрируя при каждом запуске программы?
Если второе, то как это можно сделать проще и правильнее?
← →
Eraser © (2009-01-12 01:53) [1]проще всего использовать такой способ
AddFontResource(PChar(IncludeTrailingPathDelimiter(ExtractFilePath(Application.E xeName)) +
"font_name.ttf"));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
о назначении функции и сообщение можно почитать в MSDN.
← →
KSergey © (2009-01-12 11:06) [2]> Eraser © (12.01.09 01:53) [1]
После выходна из программы он ведь останется зарегистрированным? Если да - то после сноса программы шрифт будет зарегистрирован, но недоступен системе, если я правильно понимаю. Хорошо ли это?
← →
Eraser © (2009-01-12 16:33) [3]> [2] KSergey © (12.01.09 11:06)
можно при завершении программы вызывать RemoveFontResource.
или же регистрировать через AddFontResourceEx с спец. флагом.
← →
KSergey © (2009-01-12 16:37) [4]> Eraser © (12.01.09 16:33) [3]
> можно при завершении программы вызывать RemoveFontResource.
Программа может и взорваться.
> или же регистрировать через AddFontResourceEx с спец. флагом.
наверное вариант.
Все же, думаю, красивее ставить/сносить шрифт инсталлятором, причем (наверное?) класть его в правильное место - со шрифтами.
Я понимаю преимущества вашего метода - не нужен инсталлятор, но в корпоративной среде это не гуд как раз...
← →
Dimka Maslov © (2009-01-12 17:45) [5]
> Все же, думаю, красивее ставить/сносить шрифт инсталлятором,
> причем (наверное?) класть его в правильное место - со шрифтами
Вот например такая программа как AutoCAD в правильное место со шрифтами кладёт их штук 50. В конечном итоге шрифтов становится больше, выбрать нужный дольше. Так что правильно человек заботится о том, что ненужные файлы в системе не появлялись.
← →
Илья_ (2009-01-12 17:49) [6]В справке указано, что перед регистрацией шрифта с помoщью AddFontResource необходимо проверять нет ли уже такого шрифта.
Что делать если шрифт с таким именем (Font FaceName) уже установлен в системе, но выглядит иначе чем мой? Такое часто встречается, когда
шрифты одного семейства имеют разные особенности и вид, например
XFont Italic, XFont Cyr Bold и т.д., но при этом имеют одно и тоже имя XFont?
В справке нет ничего про AddFontResourceEx.
Что означают её параметры?
>KSergey © (12.01.09 16:37) [4]
>Я понимаю преимущества вашего метода - не нужен инсталлятор
У меня есть возможность установить шрифт с помощью инсталлятора,
т.к. моя программа проходит процедуру установки (использую WiseInstall Master). Но мой принцип - минимум изменений в системе, поэтому хотелось-бы загружать шрифт подобно картинке.
← →
Anatoly Podgoretsky © (2009-01-12 18:01) [7]http://www.podgoretsky.com/ftp/Language/Components/SYSTEM/PortFont.zip
← →
Илья_ (2009-01-12 18:44) [8]> Anatoly Podgoretsky © (12.01.09 18:01) [7]
> Спасибо за ссылку, в этом компоненте используется принцип изложеный в
Eraser © (12.01.09 01:53) [1] AddFontResource.
Мне кажется, что в моём случае лучше использовать AddFontResourceEx.
http://msdn.microsoft.com/en-us/library/ms533937.aspx
Можно сделать шрифт приватным и система удалит его после закрытия программы, конфликта имён с уже установленными тоже не будет. Но написано что Windows 95/98/Me: Unsupported.
← →
KSergey © (2009-01-13 06:22) [9]> Dimka Maslov © (12.01.09 17:45) [5]
> Вот например такая программа как AutoCAD
Вот когда у нас будут покупать программы - таких проблем не будет, т.к. если уж я купил и установил АвтоКад, то у меня просто не должно быть времени на форумы, ибо стоимость АвтоКада еще нужно отработать, а это не просто. :)
← →
KSergey © (2009-01-13 06:23) [10]> Илья_ (12.01.09 18:44) [8]
> тоже не будет. Но написано что Windows 95/98/Me: Unsupported.
А требуется? В вопросе про это не сказано.
← →
Dimka Maslov © (2009-01-13 10:25) [11]
> KSergey © (13.01.09 06:22) [9]
АвтоКад у меня работе лицензионный. Вот когда ставили пиратский, можно было закрыть папку Fonts на запись и он её не засорял. А вот новая лицензионная версия в таком случае просто прекращает установку...
← →
Илья_ (2009-01-13 16:46) [12]
> KSergey © (13.01.09 06:23) [10]
> А требуется? В вопросе про это не сказано.
Конечно сейчас мало кто их использует, но хочется чтобы программа
работала и на этих системах. Будет глупо если программа способна
на них работать, а из за утановки шрифта такой возможности не будет.
Я думаю нужно проверять, если Windows 95/98/Me то AddFontResource, а
если выше то AddFontResourceEx.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c