Как раз проблема с панельками из стандартной библиотеки появилась.
У пользователя с монитором с высокой плотностью пикселей шрифты автоматически увеличились примерно в 1.7 раза, а панелька осталась в размерах обычного монитора (я на таком и разрабатывал панель):

Сейчас планирую через инпут вводить множитель и пересчитывать размеры панели, кнопок их отступы и т.д.
Есть ли возможность автоматически определить какой множитель надо применять. Чтобы люди видя такое не гадали, что надо править какой-то инпут, а чтобы сразу все было красиво.
Дополнительные проблемы - видно, что в заголовке щрифт крупнее. Длину смогу увеличить, а высоту заголовка видимо - нет. Значки
видимо останутся в своем размере и наверное чекбоксы, радиобоксы, полосы прокрутки и т.д.
Как раз проблема с панельками из стандартной библиотеки появилась.
У пользователя с монитором с высокой плотностью пикселей. Шрифты автоматически увеличились примерно в 1.7 раза, а менюшка осталась в размерах обычного монитора (я на таком и разрабатывал панель):
Сейчас планирую через инпут вводить множитель и пересчитывать размеры панели, кнопок их отступы и т.д.
Есть ли возможность автоматически определить какой множитель надо применять. Чтобы люди видя такое не гадали, что надо править какой-то инпут, а чтобы сразу все было красиво.
Дополнительные проблемы - видно, что в заголовке щрифт крупнее. Длину смогу увеличить, а высоту заголовка видимо - нет. Значки видимо останутся в своем размере и наверное чекбоксы, радиобоксы, полосы прокрутки и т.д.
Tашел TerminalInfoInteger(TERMINAL_SCREEN_DPI) - у меня = 96.
Видимо надо множитель размеров брать как
k = TerminalInfoInteger(TERMINAL_SCREEN_DPI) / 96;
Попробую - возможно будет почти красиво...
После увеличения всего в 2,5 раза (240 DPI / 96 DPI) получилось почти как на обычном мониторе. Только элементы которые сделаны картинками (-, крестик, чекбоксы, прокрутка) остались мелкими. Ну хотя бы всё работает...
Оригинал на 96 DPI:

Версия для 240 DPI:

С размерами элементов всё просто - все отступы, ширины и высоты умножаем на 2,5.
Для шапки и чекбоксов пришлось переопределять дефайны
#include <Controls\Defines.mqh> #ifdef K_DPI_2_5 //для мониторов с высокой плотностью пикселей. Стандартное DPI=96, у них 240 в 2.5 раза больше. #undef CONTROLS_DIALOG_CAPTION_HEIGHT //22 #undef CONTROLS_DIALOG_BUTTON_OFF //3 #undef CONTROLS_BUTTON_SIZE //16 #undef CONTROLS_LIST_ITEM_HEIGHT //18 #undef CONTROLS_CHECK_BUTTON_Y_OFF //3 //#undef CONTROLS_CHECK_LABEL_Y_OFF //0 #undef CONTROLS_SCROLL_SIZE //18 // переопределяем новые значения #define CONTROLS_DIALOG_CAPTION_HEIGHT 55 // высота заголовка окна 22 #define CONTROLS_DIALOG_BUTTON_OFF 8 // отступ/позиция кнопок (крестик, свернуть) 3 #define CONTROLS_BUTTON_SIZE 40 // default size of button (16 x 16) 16 #define CONTROLS_LIST_ITEM_HEIGHT 45 // height of list item (for ListView) 18 #define CONTROLS_CHECK_BUTTON_Y_OFF 16 // Y offset of check button (for CheckBox) 3 //#define CONTROLS_CHECK_LABEL_Y_OFF 0 // Y offset of label (for CheckBox) 0 #define CONTROLS_SCROLL_SIZE 45 // default lateral size of scrollbar #endif
Панель для перемещения графика в заданную дату
v1.01
Исправил выбор значений: теперь день не выбрать, пропустив месяц (выход за массив был)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования

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