Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Шрифт с высотой и шириной [D5, WinXP]


vin ©   (2004-07-07 17:36:00) 

Уважаемые коллеги,

Необходимо вывести на канву моноширный техт с заданой высотой и шириной в пикселях.

Познакомился с TLOGFONT и CreateFontIndirect,
но выводимый текст не соответствует задаваемой высоте и ширине
(в хелпе речь идет о неких EM единицах для фонта - до конца не понял, что это такое).
Помогите разобраться.

Заранее благодарен,
Иван


KSergey   (2004-07-08 12:34:00) [1]

Не уверен, вероятно может помочь перед выводом текста SetMapMode(Canvas.Handle, MM_ANISOTROPIC) - ну и читаем справку по этому поводу... как задать нужную систему координат по X и Y (надеюсь, про именно MM_ANISOTROPIC я не промахнулся; но в любом случае что-то около того, может и другой какой метод)
Коэффициенты - ну не знаю, надо думать где их взять

А вообще, признаться, уж извините, идиотизьм это
Надписи на экране (на экране!) будут весьма не читабельны. Ну разве что это типа граф. редактор, где не суть в качестве отображения, а в его идентичности распечатки...


vin   (2004-07-08 12:19:00) [2]

2 KSergey, TUser >
Может я некоректно выразился, проблема в следующем:
Обычно для определения размера шрифта задается его высота, как правило в пунктах (1 пункт = 1/72 дюйма), при этом ширину символа мы задать извне не можем. Т.е задается только высота шрифта!
Задача состоит в том, чтобы задать как высоту так и ширину щрифта извне, такой какой захочу.
Для этого я использовал TLOGFONT  (в нем есть свойства высоты и ширины) и функцию CreateFontIndirect. Но не добился желаемого результата.
Спасибо за поддержку дискуссии.


KSergey   (2004-07-08 07:13:00) [3]

> [2] vin   (07.07.04 17:50)
> Хочу, чтобы каждая буква вписывались в прямоугольник с заданной
> высотой и шириной...

Она и так вписывается, уверяю
Вот только его границы Вы и Win видимо понимают по разному ;)


TUser   (2004-07-07 18:18:00) [4]

Если есть моноширинный TrueType - выводи нужной высоты.Высота дается св-вом Label'а Height при отрицательном size, ширина - наверное через Canvas.TextWidth можно определить, и потом смасштабировать. Можно, конечно, создать свой канвас, кинуть на него через TextOut нужный тебе текст и потом сделать CopyRect.


vin   (2004-07-07 17:50:00) [5]

2KSergey>
Хочу, чтобы каждая буква вписывались в прямоугольник с заданной высотой и шириной...


KSergey   (2004-07-07 17:40:00) [6]

А что имеется в виду под высотой букв, например? Просто для шрифта эта величина не равна видимой высоте букв. Она несколько больше (если не путаю, то максимум/минимум будет у сочетания Йу, вот на эти элементы сверху/снизу и запас)


Наверх

Титульная страница Поиск, карта сайта Написать письмо