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

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

шрифт на канвасе выглядит разно! [Delphi, KOL, Windows]


Barloggg ©   (2010-02-05 11:45:00) 

столкнулся со странностью.

рисую я значит на канвасе. много и со вкусом. в основном текст.

так вот такая вещь. у тех людей, у кого в настройках экрана стоит "масштаб" не такой как у меня, то моя программа рисует шрифты не так как задумывалось!

я так понимаю дело в другом разрешении экрана. То есть у человека стоит другое количество pixelsperinch. У него просто монитор большой очень, вот он так и сделал.

В VCL я видел свойство PixelsPerInch и даже пользовался им когда игрался с выводом на принтер.

Я подумал что в целях экономии кода канвас создается с системными настройками по умолчанию и решением было бы принудительное указания некоего фиксированного pixelsperinch.

А где оно в KOL?

или мне придется ручками переделывать размер шрифта ориентируясь на некое "глобальное" разрешение? и кстати где его взять?


Barloggg   (2010-03-05 12:08:00) [1]

хмм.
если задавать размер шрифта отрицательными числами, то его высота выражается в пунктах.
может быть это мое решение? задавать fonthеight не 12, а скажем -12?


mdw   (2010-02-05 12:34:00) [2]

В KOL размер шрифта указывается в пикселах, в VCL - в пунктах. Если нужно чтобы выглядело одинаково используйте тоже пункты, ну и преобразуйте как велит микрософт: "nHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELS), 72)"
(LOGPIXEL = GetDeviceCaps(DC, LOGPIXELSY))


Игорь Шевченко   (2010-02-05 12:28:00) [3]


> кстати где его взять?


GetDeviceCaps(..., LOGPIXELSY)


Наверх

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