Antonyan Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 Добрый день ! Как программно узнать какой монитор используется, широкоформатный или нет ? Цитата Ссылка на комментарий
0 Камышев Александр Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 (изменено) Screen.Size() Изменено 21 декабря, 2015 пользователем Камышев Александр Цитата Ссылка на комментарий
0 Antonyan Опубликовано 21 декабря, 2015 Автор Поделиться Опубликовано 21 декабря, 2015 Screen.Size() Каким образом это поможет? Цитата Ссылка на комментарий
0 Камышев Александр Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 мдя... 16:9 - стандартный широкоформатный, ширина к высоте Цитата Ссылка на комментарий
0 Antonyan Опубликовано 21 декабря, 2015 Автор Поделиться Опубликовано 21 декабря, 2015 мдя... 16:9 - стандартный широкоформатный, ширина к высоте А если режим 1024х768 ? Цитата Ссылка на комментарий
0 Antonyan Опубликовано 21 декабря, 2015 Автор Поделиться Опубликовано 21 декабря, 2015 Думается, надо копать в сторону получения от системы информации, какое максимальное разрешение возможно на данном мониторе, и после делать выводы о соотношении сторон. Какие мысли ? Цитата Ссылка на комментарий
0 Камышев Александр Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 (изменено) https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BE%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0 Изменено 21 декабря, 2015 пользователем Камышев Александр Цитата Ссылка на комментарий
0 Antonyan Опубликовано 21 декабря, 2015 Автор Поделиться Опубликовано 21 декабря, 2015 https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BE%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0 Я извиняюсь, не совсем понятно, на что Вы мне указываете Цитата Ссылка на комментарий
0 Камышев Александр Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 вопрос был А если режим 1024х768 ? по ссылке описание режимов я так понял Вам для виндовс, так писать надо систему, платформу, хотя на мобильных устройствах может быть несколько экранов тоже Под винду есть в VCL Screen.Monitors[0].Handle, по хэндлу с помощью winAPI можно определить все о мониторе. Цитата Ссылка на комментарий
0 Antonyan Опубликовано 21 декабря, 2015 Автор Поделиться Опубликовано 21 декабря, 2015 вопрос был А если режим 1024х768 ? по ссылке описание режимов я так понял Вам для виндовс, так писать надо систему, платформу, хотя на мобильных устройствах может быть несколько экранов тоже Под винду есть в VCL Screen.Monitors[0].Handle, по хэндлу с помощью winAPI можно определить все о мониторе. Пишу под винду на FMX. Буду признателен за конкретный пример. Цитата Ссылка на комментарий
0 krapotkin Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 еще и версию делфи надо бы Цитата Ссылка на комментарий
0 Antonyan Опубликовано 21 декабря, 2015 Автор Поделиться Опубликовано 21 декабря, 2015 еще и версию делфи надо бы XE7 Цитата Ссылка на комментарий
0 krapotkin Опубликовано 21 декабря, 2015 Поделиться Опубликовано 21 декабря, 2015 я бы все-таки ушел от темы "а вдруг на мониторе FullHD выставлено разрешение 800*600" сколько выставили, столько и монитор... в XE7 мне пришлось через WinApi собирать инфу о мониторах, тогда в FMX еще не было аналога VCL Screen Цитата Ссылка на комментарий
0 Antonyan Опубликовано 21 декабря, 2015 Автор Поделиться Опубликовано 21 декабря, 2015 я бы все-таки ушел от темы "а вдруг на мониторе FullHD выставлено разрешение 800*600" сколько выставили, столько и монитор... в XE7 мне пришлось через WinApi собирать инфу о мониторах, тогда в FMX еще не было аналога VCL Screen Я попробую иначе изложить свой вопрос. Возможно, я ошибаюсь с подходом, и, быть может, коллеги по цеху, предложат иной. Ноги проблемы растут от ScaledLayout, который не учитивает aspect ratio при масшатбировании в меньшую сторону от параметров OriginWidth / OriginHeight (при масштабировании в сторону большего разрешения проблем не наблюдается). К сожалению, в моем случае режимы 800х600 и 1024х786 - вполне реальны. ПО пишется (рестайлинг) под конкретного заказчика, а там не парк, а зоопарк. Получается, если монитор широкоформатный и выбратно разрешение 1024х768 ( в дизайн-тайм OriginWidth / OriginHeight - 1366x768 ), все компоненты внутри ScaledLayout масшатибируются и отображаются вполне пропорционально, однако, если монитор "старый и квадратный", имею сплющивание по горизонтали. Разумеется, есть масса вариантов, как этого избежать, но для этого мне нужно знать, широкоформатный монитор или нет. Цитата Ссылка на комментарий
0 Antonyan Опубликовано 21 декабря, 2015 Автор Поделиться Опубликовано 21 декабря, 2015 вопрос был А если режим 1024х768 ? по ссылке описание режимов я так понял Вам для виндовс, так писать надо систему, платформу, хотя на мобильных устройствах может быть несколько экранов тоже Под винду есть в VCL Screen.Monitors[0].Handle, по хэндлу с помощью winAPI можно определить все о мониторе. Я имел ввиду, что соотношение сторон указанного разрешения, не позволяет судить о том, широкоформатный монитор или нет Цитата Ссылка на комментарий
0 Камышев Александр Опубликовано 22 декабря, 2015 Поделиться Опубликовано 22 декабря, 2015 EnumDisplayDevice - кол-во мониторовEnumDisplaySettingsEx - для перечисления списка видео-режимов ChangeDisplaySettingsEx - для каждого полученного режима с флагом тестирования для проверки совместимости. примеры в поисковике или в msdn Цитата Ссылка на комментарий
0 Antonyan Опубликовано 22 декабря, 2015 Автор Поделиться Опубликовано 22 декабря, 2015 EnumDisplayDevice - кол-во мониторовEnumDisplaySettingsEx - для перечисления списка видео-режимов ChangeDisplaySettingsEx - для каждого полученного режима с флагом тестирования для проверки совместимости. примеры в поисковике или в msdn Благодарю. Тоже склоняюсь в эту сторону Цитата Ссылка на комментарий
Вопрос
Antonyan
Добрый день !
Как программно узнать какой монитор используется, широкоформатный или нет ?
Ссылка на комментарий
16 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.