![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 06.07.2012
Сообщений: 13
|
![]()
Здравствуйте. Помогите решить проблему… Делаю программу, в которой можно использовать разные шрифты. Как-бы настроить схему оформления, и потом, передать эту другому человеку. Пользователь может выбрать один из уже установленных шрифтов в системе (компонент FontDialog) или методом перетаскивания добавить свой шрифт (AddFontResource).
Вот допустим, у вас есть файл «C:\Шрифты\МойШрифт.TTF» вы его перетащили в программу и нажали кнопку «Сохранить». Я взял ваш файл из «C:\Шрифты\МойШрифт.TTF», скопировал к себе в папку с программой и при загрузке программы делаю: Код:
А проблема вот в чем, допустим, вы какой-то дизайнер, у вас в системе установлено куча шрифтов и вам не нужно ничего перетаскивать. Т.е. вы просто выбираете их из компонента FontDialog. Нажимаете кнопку «Сохранить»и в файле ini появиться такая запись: [Шрифт] Название=МойСуперШрифт Далее вы передаете свою схему обычному человеку, у которого нет вашего шрифта. И схема оформления не запуститься, ведь программа будет пытаться сделать: Label1.Font.Name:= ini.ReadString('Шрифт', 'Название', ''); Как решение проблемы, хочу сделать, чтобы при нажатии на кнопку «Сохранить» в папку с программой всегда сохранялся файл шрифта. Чтобы меня не волновало, откуда шрифт у «Label1». Я просто узнаю font:= Label1.Font.Name и дальше зная имя «font» надо мне как-то найти этот шрифт, а как…. Вот я не знаю. И. если не сложно, объясните, куда AddFontResource устанавливает шрифт? Как добавляю шрифт, то в папке Font нет изменений, и в реестре тоже ничего не меняется… Но откуда же тот Word узнал о новом шрифте? Спасибо за внимание. P.S. Если вам кажется, что изобретаю велосипед, не стесняйтесь, рад любой критике, бо чувствую, как-то не так надо решить эту задачу... ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
т.е. вы предлагаете тупо воровать шрифты у дизайнера? интересное решение )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#3 | |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
![]()
AddFontResource выполняет временную регистрацию шрифта, действует только в текущей пользовательской сессии (до перезагрузки/разлогивания пользователя).
Для постоянной регистрации шрифта в системе, файл шрифта необходимо поместить в Windows\Fonts Цитата:
Последний раз редактировалось astecenko; 06.07.2012 в 08:36. |
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 06.07.2012
Сообщений: 13
|
![]()
astecenko, спасибо за разъяснение. Получается, функцией RemoveFontResource можно и пренебречь.. все равно комп шрифт временный
veniside нет, ну почему же воровать ![]() |
![]() |
![]() |
![]() |
#5 |
Homo Interneticus
Форумчанин
Регистрация: 04.03.2011
Сообщений: 611
|
![]()
DIMMUA если компьютер выключается/включается или пользователь залогинивается/разлогинивается - то можно наверное и не вызывать RemoveFontResource. А вот если пользуются гибернацией, и с программкой активно работают, то память может утечь не хило.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сохранение действий в программе после закрытия | fins | Общие вопросы Delphi | 9 | 01.07.2015 18:59 |
Свой шрифт в TextOut | apromix | Общие вопросы Delphi | 1 | 17.01.2010 16:34 |
Свой шрифт в программе | apromix | Общие вопросы Delphi | 9 | 25.11.2009 15:47 |
Собственный шрифт в программе | apromix | Мультимедиа в Delphi | 2 | 18.08.2009 15:26 |