![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
шрифт на канвасе выглядит разно! [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)