![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Hacker |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Подскажите кто знает. Имеется шрифт типа TFont. Надо определить среднюю ширину одного символа. Или хотябы среднее отношение ширины к высоте. |
|||
|
||||
| Matematik |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 1 Всего: 50 |
Не знаю.
Но может сойдет Canvas.TextWidth() и Canvas.TextHeight() |
|||
|
||||
| Демо |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Среднюю ширину символа можно определить только относительно к конкретной канве. Например, для Form1:
Для любого окна вместо Form1.Canvas.Handle нужно использовать:
Добавлено @ 21:14 R.Bottom - R.Top вернет высоту шрифта. Это сообщение отредактировал(а) Демо - 9.4.2006, 21:13 -------------------- |
||||
|
|||||
| Hacker |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Спасибо за ответы, но боюсь мне это не подойдёт, т.к. нету там канвы, где мне Это применить надо. Но где-то в недрах шрифта должна содержаться информация об отношении ширины к высоте или "сжатие", не знаю как точно называется... Как бы её оттуда выковырять.
|
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Тогда какой смысл говорить об отношении ширины к высоте? На канве может быть разное количество пикселей по высоте и ширине. Тогда вообще ни о каком соотношении без канвы речи не может быть. -------------------- |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 30 Всего: 484 |
Вообще-то у большинства шрифтов нет фиксированного отношения ширины к высоте.
Высота для всех символов одинаковая, а вот ширина как правило нет. А то, что канвы нет, так это не проблема. Создаем битмап, ассоциируем с нашим шрифтом и вычисляем значения для его канвы. Потом просто его убиваем. |
|||
|
||||
| Girder |
|
|||
![]() Лентяй 2 ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1993 Регистрация: 12.5.2004 Репутация: 25 Всего: 155 |
GetCharWidth32/GetCharWidth/GetCharABCWidths
Один из примеров использывания: http://forum.vingrad.ru/index.php?showtopi...st&p=415543 -------------------- Как слышим, так и пишим. Истина где-то там... |
|||
|
||||
| Hacker |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 21.3.2006 Репутация: нет Всего: нет |
Спасибо Girder, попробую как время появится.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |