Обсуждение статьи "Таблицы в парадигме MVC на MQL5: Интегрируем компонент Model в компонент View"

 

Опубликована статья Таблицы в парадигме MVC на MQL5: Интегрируем компонент Model в компонент View:

В статье создадим первую версию элемента управления TableControl (TableView). Это будет простая статичная таблица, создаваемая на основе входных данных, определяемых двумя массивами — массивом данных и массивом заголовков столбцов.

В статье "Классы таблицы и заголовка на базе модели таблицы в MQL5: Применение концепции MVC" мы завершили создание класса модели таблиц (в концепции MVC — компонент Model). Далее занимались разработкой библиотеки простых элементов управления, которые позволяют создавать на их основе совершенно разные по назначению и сложности элементы управления. В частности — компонент View для создания элемента управления TableView.

Данная статья будет посвящена реализации взаимодействия компонента Model с компонентом View. Иными словами — сегодня мы свяжем воедино табличные данные с их графическим представлением в едином элементе управления.

Элемент управления будет создан на базе класса объекта Панель (Panel), и состоять из нескольких элементов:

  1. Panel — основа, подложка, к которой прикреплены заголовок таблицы и область данных таблицы;
  2. Panel — заголовок таблицы, состоящий из ряда элементов — заголовков столбцов, созданных на базе класса объекта Button;
  3. Container — контейнер табличных данных с возможностью прокрутки содержимого;
  4. Panel — панель для расположения на ней строк таблицы (прикреплена к контейнеру (п.3) и, при выходе за пределы контейнера, прокручивается при помощи полос прокрутки контейнера);
  5. Panel — строка таблицы — панель для рисования на ней ячеек таблицы, прикреплённая к панели (п.4); таких объектов создаётся по количеству строк таблицы;
  6. Класс ячейки таблицы — новый класс, позволяющий рисовать в указанных координатах на указанном холсте (CCanvas). Объект такого класса прикрепляется к объекту строки таблицы (п.5), канвасы объекта строки таблицы указываются как элементы для рисования, и ячейка таблицы рисуется на этой панели в указанных координатах. Область каждой ячейки таблицы задаётся в объекте строки таблицы (п.5) экземпляром объекта класса CBound, и к этому объекту прикрепляется объект класса ячейки таблицы.


    Автор: Artyom Trishkin

     

    Отличное описание MVC, но как именно эта сложность улучшает торговлю, ради которой мы, собственно, и собрались?

    Неужели все остальные проблемы торговли решены, остался только пользовательский интерфейс?

    Иногда мы забываем, для чего на самом деле нужен инструмент, или расстраиваемся, когда он работает не так, как мы хотим, и в итоге пытаемся заставить его делать то, для чего он никогда не предназначался и чего никогда не будет делать.

     
    Alireza #:

    Отличное описание MVC, но как именно эта сложность улучшает торговлю, ради которой мы, собственно, и собрались?

    Неужели все остальные проблемы торговли решены, остался только пользовательский интерфейс?

    Иногда мы забываем, для чего на самом деле нужен инструмент, или расстраиваемся, когда он работает не так, как мы хотим, и в итоге пытаемся заставить его делать то, для чего он никогда не предназначался и чего никогда не будет делать.

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