Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.24;
Скачать: CL | DM;

Вниз

Выводить текст шрифтом, не устанавливая его в системе.   Найти похожие ветки 

 
SkyN   (2004-09-22 10:49) [0]

Программа должна выводить текст очень большим количеством шрифтов, большенство из которых не установленны в системе, и устанавливать их на время выполнения программы не хочеться, т.к. в Windows количество установленных шрифтов ограниченно (поправте меня если в 2k или XP это исправили).

Как?


 
Iconka ©   (2004-09-22 10:52) [1]

Вот пожалуста http://www.freetype.org/index2.html
Попробуй разберись...


 
Amoeba ©   (2004-09-22 11:08) [2]

Шрифты устанавливать необязательно. На время выполнения программы они подключаются путем их регистрации.
См. API ф-ии AddFontResource и DeleteFontResource


 
Iconka ©   (2004-09-22 11:13) [3]


> См. API ф-ии AddFontResource и DeleteFontResource

Ты уверен что система выдержит полторы тысячи  AddFontResource?


 
SkyN   (2004-09-22 11:41) [4]

Зарегистрировав шрифт функцией AddFontResource обнаружил, что он стал доступен и из других программ (Word), но не появился в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
а именно с  ограничениями реестра связанны ограничения на количество шрифтов.

После перезагрузки ПК шрифт стал не доступен, что подтверждает, что Windows его не запомнил.

Осталась одна(надеюсь) проблема. Как определить имя только что зарегистрированного шрифта.

Спасибо.


 
Iconka ©   (2004-09-22 11:49) [5]


> Осталась одна(надеюсь) проблема. Как определить имя
> только что зарегистрированного шрифта.

Проблема решаема. На сайте майкрософт найди формат TTF файла. Из извлеки из него FontName, FontFamily  и прочии атрибуты.


> с  ограничениями реестра связанны ограничения на
> количество шрифтов.

Ты попробуй хотябы тысяцу шрифтов зарегестрировать... Как система? Будет притормаживать или нет?

Есть такой метод: регишь фонт (AddFontResource), рисуешь его на TBitMap, удаляешь фонт из системы (DeleteFontResource). Показываешь TBitmap.
Таким способом хоть 10 тысяч шрифтов можно показать безь перегрузки системы.
(Естественно ненужные битмапы удаляешь :)


 
VMcL ©   (2004-09-22 12:06) [6]

>>SkyN  (22.09.04 11:41) [4]

>Как определить имя только что зарегистрированного шрифта.

EnumFontFamiliesEx()
?


 
Iconka ©   (2004-09-22 12:07) [7]


> EnumFontFamiliesEx()

Не подходит.
Только тянуть из файла.



Страницы: 1 вся ветка

Текущий архив: 2004.10.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.469 c
1-1097249438
greenrul
2004-10-08 19:30
2004.10.24
ActionToolbar и ActionMainMenu - иконки разных размеров


1-1097584979
NewDelpher
2004-10-12 16:42
2004.10.24
свойство Items класса TList


14-1097136819
pan
2004-10-07 12:13
2004.10.24
редактирование реестра запрещено администратором системы


3-1095956864
Abuzer
2004-09-23 20:27
2004.10.24
Случайный выбор записи


4-1095749203
Users
2004-09-21 10:46
2004.10.24
Редакторы RC (аля Resource Workshop )