Конференция "KOL" » шрифт на канвасе выглядит разно! [Delphi, KOL, Windows]
 
  • Barloggg (05.02.10 11:45) [0]
    столкнулся со странностью.

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

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

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

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

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

    А где оно в KOL?

    или мне придется ручками переделывать размер шрифта ориентируясь на некое "глобальное" разрешение? и кстати где его взять?
  • Игорь Шевченко © (05.02.10 12:28) [1]

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


    GetDeviceCaps(..., LOGPIXELSY)
  • mdw (05.02.10 12:34) [2]
    В KOL размер шрифта указывается в пикселах, в VCL - в пунктах. Если нужно чтобы выглядело одинаково используйте тоже пункты, ну и преобразуйте как велит микрософт: "nHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELS), 72)"
    (LOGPIXEL = GetDeviceCaps(DC, LOGPIXELSY))
  • Barloggg (05.03.10 12:08) [3]
    хмм.
    если задавать размер шрифта отрицательными числами, то его высота выражается в пунктах.
    может быть это мое решение? задавать fonthеight не 12, а скажем -12?
 
Конференция "KOL" » шрифт на канвасе выглядит разно! [Delphi, KOL, Windows]
Есть новые Нет новых   [134431   +10][b:0][p:0]