Конференция "Основная" » Как узнать значение в Делфи значение DPI экрана больше 120?
 
  • kostyan29 (03.08.18 10:17) [0]
    Здравствуйте! Есть в Windows такая вещь, как масштабирование шрифтов и всего остального. Находится в "Резарешение экрана" -> "Сделать текст и другие элементы больше или меньше". По умолчанию установлено в "Мелкий", можно поставить "Средний" и т.д.
    В Делфи можно узнать значение этого параметра через Screen.PixelsPerInch. При мелком параметре он показывает 96 dpi, при среднем - 120, а дальше вот начинаются чудеса. При крупном масштабе, вместо того, чтобы показать 144, Screen.PixelsPerInch возвращает 96! И соответственно, при еще более крупном масштабе, который должен быть 192, также показывает 96.
    Вопрос - есть ли какой-то способ узнать dpi, большие 120?
  • icp © (03.08.18 11:06) [1]
    узнавать надо не dpi а "логическую" высоту

    GetDeviceCaps(DC, LOGPIXELSY);
  • kostyan29 (03.08.18 12:34) [2]
    Спасибо, но я забыл написать, что это я тоже пробовал.
    Ровно тот же результат - 96 и 120 распознает, а дальше возвращает всегда 96
  • icp © (03.08.18 13:03) [3]
    не надо этого ничего.
    чтобы твоя форма при любых настройках пользователя всегда имела такой же вид как у тебя, достаточно знать LOGPIXELSY и отмасштабироваться через Font.Size
  • kostyan29 (03.08.18 13:32) [4]
    > достаточно знать LOGPIXELSY

    Хорошо. LOGPIXELSY   равно 96. Хотя реальный масштаб поставлен "крупный" (150%). И при 200% масштабе LOGPIXELSY  все равно равен 96. Как это может помочь?
 
Конференция "Основная" » Как узнать значение в Делфи значение DPI экрана больше 120?
Есть новые Нет новых   [93030   +19][b:0.001][p:0.001]