Обсуждение статьи "Торговые инструменты на MQL5 (Часть 30): Боковая панель палитры инструментов с архитектурой на основе классов"

 

Опубликована статья Торговые инструменты на MQL5 (Часть 30): Боковая панель палитры инструментов с архитектурой на основе классов:

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

В результате редизайна простая плоская структура заменена вертикальной боковой панелью, разработанной на основе многоуровневой иерархии классов. Каждый класс выполняет одну единственную функцию. Например: примитивы отвечают за сглаживание при отрисовке, менеджер тем управляет наборами цветов, реестр хранит категории, слой холста управляет изменением размера, класс компоновки вычисляет геометрию, а рендерер формирует окончательную боковую панель. Добавление новой категории инструментов сводится к регистрации определения, а не к переработке всего цикла рендеринга.

На графике эта компактная вертикальная боковая панель обеспечивает быстрый доступ к категориям рисования во время сеансов в реальном времени, не препятствуя ценовым движениям. Функция привязки фиксирует ее вплотную к краю графика, а переключение тем мгновенно подбирает палитру под фон графика. По мере добавления пользовательских групп инструментов для собственного анализа боковая панель аккуратно расширяется без конфликтов компоновки. Мы определим сопоставления значков и перечисления, объявим входные параметры и построим иерархию классов. Оболочка боковой панели верхнего уровня будет инициализировать, отображать и перенаправлять события. В двух словах, наглядное представление результата приведено ниже.

SNAP TOOLS PALETTE ARCHITECTURE


Автор: Allan Munene Mutiiria