Мониторы с высоким разрешением, проблемы с обьектами

 

Мониторы с высоким разрешением, проблемы с обьектами

на мониторах 4к те панели которые на стандартных мониторах смотрятся нормально на 4к мелкие.

//--- создаём кнопку шириной 1.5 дюйма на экране 
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // получим DPI монитора пользователя 
int base_width = 144;                                      // базовая ширина в экранных точках для стандартных мониторов c DPI=96 
int width      = (button_width * screen_dpi) / 96;         // вычислим ширину кнопки для монитора пользователя (с учётом его DPI) 

Данный код ведет себя странно если в место button_width  мы поставим 200 то на мониторах с 4к,  width = получает 200 а на мониторах 2560*1440 width = 250.

Как правильно пользоваться TerminalInfoInteger(TERMINAL_SCREEN_DPI)  ???

 

Тут точно нет ошибки в справке ???

//--- создаём кнопку шириной 1.5 дюйма на экране 
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // получим DPI монитора пользователя 
int base_width = 144;                                      // базовая ширина в экранных точках для стандартных мониторов c DPI=96 
int width      = (button_width * screen_dpi) / 96;         // вычислим ширину кнопки для монитора пользователя (с учётом его DPI) 

Потому что при таком использовании ничего не получается..

 
это вообще закрытая тема, мало кому нужная я так понимаю, если разберётесь, пишите что вышло, я так понимаю у вас есть на чём проверять, 2 монитора? Просто мне тоже интересно узнать как правильно с этим работать и живые примеры
 
елки, вы же мне писали в личку про это, я не узнал вас, у вас другая аватарка :)
 
Vladimir Pastushak:

Мониторы с высоким разрешением, проблемы с обьектами

на мониторах 4к те панели которые на стандартных мониторах смотрятся нормально на 4к мелкие.

Делайте свои объекты не в точках, а в "попугаях". Например, в этом примере попугаем будет символ "W".

Пользователь задает удобный для себя размер шрифта, а программа подстраивает свои объекты под этот шрифт.

        sinput uint Fontsize=12;  	//Font size

        ...

        int fs=-10*(int)Fontsize;	//размер шрифта для вывода на канвас

        TextSetFont(fontname,fs);

        int w, h;

        TextGetSize("W",w,h);

Теперь вы знаете размеры "попугая"(w,h) и сможете настроить все свои объекты. Например, объект "edit" равен 10х1 попугаев, тогда его ширина = w*10, а высота =h*1.

Причина обращения: