Физический размер экрана
Модератор: Модераторы
Физический размер экрана
Как средствами FPC/Lazarus получить данные о физическом размере экрана ПК? Возможно можно получить размер сторон экрана, или хотя бы диоганаль и соотношение сторон?
- *Rik*
- постоялец
- Сообщения: 453
- Зарегистрирован: 19.04.2011 12:18:51
- Откуда: Урал
- Контактная информация:
qivi писал(а):Как средствами FPC/Lazarus получить данные о физическом размере экрана ПК? Возможно можно получить размер сторон экрана, или хотя бы диоганаль и соотношение сторон?
Screen.width, Screen.Height подойдет?
Нет, это в пикселях, мне нужены данные о фактическом размере экрана (сантиметры, дюймы).
- Little_Roo
- энтузиаст
- Сообщения: 639
- Зарегистрирован: 27.02.2009 18:56:36
- Откуда: Санкт-Петербург
Видимо, как-то нужно выцапать ФАКТИЧЕСКИЙ размер пикселя... А это, думается, только из техдокументации на конкретный монитор.
Ну к примеру системная утилита управления мониторами показывает же диоганаль... не совсем то но уже что то...
- Little_Roo
- энтузиаст
- Сообщения: 639
- Зарегистрирован: 27.02.2009 18:56:36
- Откуда: Санкт-Петербург
Чисто технически - не совсем корректно. Ведь заявленый 15" монитор может быть (в зависимости от матрицы) - и 14.8 и 15.3 и т.п.
Все же правильнее Screen.width, Screen.Height с поправкой на размер пикселя.
И какая точность экранной геометрии требуется?
Все же правильнее Screen.width, Screen.Height с поправкой на размер пикселя.
И какая точность экранной геометрии требуется?
И какая точность экранной геометрии требуется?
Приблизительная... +\- трамвайная остановка не критична. Так что для вычисления приблизительного DPI хватит и диоганали + разрешения.
В модуле Graphics переменная ScreenInfo
В модуле Graphics переменная ScreenInfo
Как и в случае viewtopic.php?t=9850&view=unread#unread возвращает не верное значение... всё время возвращает 96. У меня вручную выставленное 180 а расчётное около 270. Мне при 96 очень большая луппа требуется.
А это прочитал:
http://wiki.freepascal.org/High_DPI
http://wiki.freepascal.org/High_DPI
Но чем мне это должно помочь? Проблема в том что LCL в линукс не получает правильного DPI (или вообще не реализовано)...
Вот чем под windows это изначально получается: http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Imho, вообще нет уверенности, что значения ширины - высоты в миллиметрах доступны для всех мониторов, ибо характеристика в целом крайне редко требующаяся - ОС пофиг, сколько миллиметров в длину и ширину ее физические устройства; более актуальны привязки к базовому размеру системных шрифтов и коэффициенту искажения высоты к ширине.
Imho, вообще нет уверенности, что значения ширины - высоты в миллиметрах доступны для всех мониторов, ибо характеристика в целом крайне редко требующаяся - ОС пофиг, сколько миллиметров в длину и ширину ее физические устройства; более актуальны привязки к базовому размеру системных шрифтов и коэффициенту искажения высоты к ширине.
Для винды оно и без ссылок возвращает верное значение... да тока и даром не надь.
Ладно спасибо за советы буду думать.
Ладно спасибо за советы буду думать.
Если проблема именно под Linux, то может воспользоваться системными средствами? xdpyinfo
