Есть в системах такие характеристики... либо плотность пикселей на дюйм (XFCE) либо индекс масштабирования шрифтов (Cinnamon)... в программе на объект паскале нужно получить это значение... универсального способа вероятно нет, тогда какие есть варианты? Вызвать какие то команды? Определять систему лесть читать конфиги? В общем подскажите пожалуйста как решить эту задачу.
Универсальный способ получить значение пикселей на дюйм
Димитрий, Вы кислое с круглым сравниваете. Вам что в итоге-то надо? Что бы там ни называлось в Циннамоне, масштабирование шрифтов всегда dpi - точек на дюйм. В Маке всегда 72, в Винде 96, в Линуксе тоже, но потенциально - как угодно. Проще и лучше всего регулируется в KDE, попробуйте поискать в их конфигах.
stranger Может я что то путаю... Но во первых у меня в XFCE выставлено значение 180 (вручную конечно), а в цинамуне штатное "1" - потомучто не в ПДИ считает видимо. Вот собственно эти значения я и хотел бы получить...
Из мыслей (в чём пожалуй и хочу услышать подсказку):
1. Возможно есть какая то системная команда которая вернёт значение ПДИ. Тогда правда возникает вопрос, она штатная или какой пакет должен в системе стоять.
2. Каким то образом идентифицировать рабочее окружение и исходя из этого лесть в соответствующие конфиги и читать значение оттудова.
3. Забить на получение значения из системы, добавить соответствующий параметр в настройки программы и хранить это значение в конфиге программы (в ходе сегодняшних размышлений склоняюсь к этому).
Есть хорошие предложения как получить количество пикселей на дюйм из системы?
Есть в системах такие характеристики... либо плотность пикселей на дюйм (XFCE) либо индекс масштабирования шрифтов (Cinnamon)... в программе на объект паскале нужно получить это значение... универсального способа вероятно нет, тогда какие есть варианты? Вызвать какие то команды? Определять систему лесть читать конфиги? В общем подскажите пожалуйста как решить эту задачу.
Я бы измерил видимую область экрана линейкой и поделил число точек по горизонтали на его ширину.
Пётр.
Peter, хохми уж до конца... просвети как в коде "померить видимую область" линейкой...
Димитрий, открываем /var/log/Xorg.0.log и смотрим "DPI set"
хохми уж до конца... просвети как в коде "померить видимую область" линейкой...
xdpyinfo | grep dimension
dimensions: 1366x768 pixels (256x144 millimeters)[quote="Димитрий"]хохми уж до конца... просвети как в коде "померить видимую область" линейкой...
xdpyinfo | grep dimension
dimensions: 1366x768 pixels (256x144 millimeters)[/quote]
А если монитор без EDID?
Пётр.
А если монитор без EDID?
А они есть сейчас? Я в самом деле не знаю.
Lupo Alberto, сколько угодно.
Интересно, xrandr тоже информацию из EDID берёт?
Lupo Alberto, неа
Lupo Alberto, неа
xrandr
Screen 0: minimum 8 x 8, current 1366 x 768, maximum 32767 x 32767
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 256mm x 144mm
1366x768 60.02*+
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)Lupo Alberto, и что?
$ xdpyinfo | grep dots
resolution: 93x95 dots per inchА можно полюбопытствовать зачем оно вам?
Команды:
xdpyinfo | grep dimension
xdpyinfo | grep dotsвозвращают ошибочные данные,
xrandrвозвращает верные данные.
В файле /var/log/Xorg.0.log то же не верное значение...
А можно полюбопытствовать зачем оно вам?
Отрисовка шрифтов на канве не масштабируется под монитор высокого разрешения. Видимо LCL то же получает не верное значение, постоянно возвращает эти 96, но если я вручную в TFont передаю верное значение пикелей на дюйм всё рисуется как надо.
Lupo Alberto, и что?
Peter, хохми уж до конца... просвети как в коде "померить видимую область" линейкой...
[quote="stranger"]Lupo Alberto, и что?
[/quote]Peter, хохми уж до конца... просвети как в коде "померить видимую область" линейкой...
В коде можно предусмотреть ввод ширины и высоты из файла или по запросу,
если монитор их не даёт.
Пётр.