Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Как узнать значение в Делфи значение DPI экрана больше 120?


kostyan29   (03.08.18 10:17

Здравствуйте! Есть в 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. Как это может помочь?


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо