Галерея UI написанных на MQL - страница 5

 

Снова попытка интеграции элементов управления в таблицы. Более удачная чем предыдущии попытки, но далека не самая лучшая.


 

Здесь ЯВНО перешел на следующий уровень...


 

Блин, это реально написано на моем языке разметки на MQL5.)) 

Последняя картинка на сегодня. Продолжение завтра. 


 

Впечатляет. Проделана огромная работа!

Я, к сожалению, имею негативный опыт работы с элементами пользовательского интерфейса, созданными сторонними разработчиками. Подавляющее большинство попадавшихся мне окон отображалось нормально только при определённом разрешении монитора и равным 100% значении масштабирования в свойствах Windows. А при разрешении 4К и масштабировании 175% (мой случай), элементы управления становились нечитаемыми или налезали друг на друга.

Это, кстати, относиться и к окнам, созданным при помощи классов UI, входящих в комплект поставки MetaEditor.

Вы при создании своих окон всегда проверяете, как они будут выглядеть при различных разрешениях экрана и значениях масштабирования в настройках Windows? 

 
E38 #:

Впечатляет. Проделана огромная работа!

Я, к сожалению, имею негативный опыт работы с элементами пользовательского интерфейса, созданными сторонними разработчиками. Подавляющее большинство попадавшихся мне окон отображалось нормально только при определённом разрешении монитора и равным 100% значении масштабирования в свойствах Windows. А при разрешении 4К и масштабировании 175% (мой случай), элементы управления становились нечитаемыми или налезали друг на друга.

Это, кстати, относиться и к окнам, созданным при помощи классов UI, входящих в комплект поставки MetaEditor.

Вы при создании своих окон всегда проверяете, как они будут выглядеть при различных разрешениях экрана и значениях масштабирования в настройках Windows? 

Спасибо.
На момент разработки этого UI, формат 4К был нов и свеж, и не распространен как нынче, и такой проблемы не существовало. Точнее, я был не в курсе об издержках с 4К потому что никто не поднимал эту тему. Однако, даже если бы столкнулся с этой проблемой, не смог бы ее решить на уровне MQL. Скорее всего, посоветовал бы юзеру использовать стандартный монитор до момента нахождения соответствующего решения разработчиками MQ и апгрейда языка и терминала. И после провел бы апгрейд своей графики. 

Но до этого не дошло.)

Добавлено:

Насчет проверок как окна и панели выглядят при различных разрешениях экрана, то специально таких проверок не проводил, т.к. не было никаких жалоб и замечаний среди немногочисленных пользователей моего UI. Возможно проблемы обнаружились бы, но опять же - они едва ли решались на уровне MQL. 
 
Реter Konow #:
Спасибо.
На момент разработки этого UI, формат 4К был нов и свеж, и не распространен как нынче, и такой проблемы не существовало. Точнее, я был не в курсе об издержках с 4К потому что никто не поднимал эту тему. Однако, даже если бы столкнулся с этой проблемой, не смог бы ее решить на уровне MQL. Скорее всего, посоветовал бы юзеру использовать стандартный монитор до момента нахождения соответствующего решения разработчиками MQ и апгрейда языка и терминала. И после провел бы апгрейд своей графики. 

Но до этого не дошло.)

Добавлено:

Насчет проверок как окна и панели выглядят при различных разрешениях экрана, то специально таких проверок не проводил, т.к. не было никаких жалоб и замечаний среди немногочисленных пользователей моего UI. Возможно проблемы обнаружились бы, но опять же - они едва ли решались на уровне MQL. 
В свойствах терминала давно есть DPI монитора, а в справке есть пример расчёта размеров графических объектов. 
 
Artyom Trishkin #:
В свойствах терминала давно есть DPI монитора, а в справке есть пример расчёта размеров графических объектов. 
Значит, столкнувшись с такой проблемой легко бы решил ее. Однако, как сказал ранее, не сталкивался. Искать решения опережающие возникающие проблемы еще не научился, но очень стараюсь.))

Кстати, примеры решения проблемы с 4К тоже в справке?
 
Реter Konow #:
примеры решения проблемы с 4К тоже в справке?

О какой проблеме речь?

 
Artyom Trishkin #:

О какой проблеме речь?

О той что написана в посте #44. 

Кстати, странно что решение из справки о котором вы говорите, не применено в родной UI-библиотеке МЕ, ...судя по словам человека выше.
 
Реter Konow #:
О той что написана в посте #44. 

Кстати, странно что решение из справки о котором вы говорите, не применено в родной UI-библиотеке МЕ, ...судя по словам человека выше.

Здесь (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)
...
 
//--- вычисление коэффициента масштабирования в процентах
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- использование коэффициента масштабирования
width=(base_width * scale_factor) / 100;

При таком использовании графический ресурс будет иметь одинаковый на глаз размер на мониторах с различной разрешающей способностью. При этом размеры управляющих элементов (кнопки, окна диалогов и т.д.) будут соответствовать настройкам персонализации.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Идентификаторы для получения информации о клиентском терминале функциями TerminalInfoInteger() и TerminalInfoString() . В качестве параметра эти...