Обсуждение статьи "Графические интерфейсы VII: Элементы "Таблицы" (Глава 1)"

 

Опубликована статья Графические интерфейсы VII: Элементы "Таблицы" (Глава 1):

В седьмой части серии статей о графических интерфейсах в терминалах MetaTrader будут представлены три типа таблиц: таблица из текстовых меток, таблица из полей ввода и нарисованная таблица. Ещё один важный и часто используемый элемент управления — вкладки, с помощью которых можно скрывать и делать видимыми группы других элементов управления, что позволяет пользователю делать компактные графические интерфейсы в своих MQL-приложениях.

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

Перечислим все составные части этого типа таблицы.

  1. Фон.
  2. Текстовые метки.
  3. Вертикальная полоса прокрутки.
  4. Горизонтальная полоса прокрутки.

 Рис. 1. Составные части элемента «Таблица из текстовых меток».

Рис. 1. Составные части элемента «Таблица из текстовых меток».

Автор: Anatoli Kazharski

 
MetaQuotes Software Corp.:

Опубликована статья Графические интерфейсы VII: Элементы "Таблицы" (Глава 1):

Автор: Anatoli Kazharski

Таблица на канве - круть!
 
Vasiliy Sokolov:
Таблица на канве - круть!
Следующая задача сделать её интерактивной. )
 
Anatoli Kazharski:
Следующая задача сделать её интерактивной. )
Если бы не твоя серия статей, я бы сказал что это невозможно или за гранью добра и зла;) 
 
Anatoli Kazharski:
Следующая задача сделать её интерактивной. )
Вот вообще нет никаких сомнений, что сделаете. Все как обычно - круто! Дерзайте маэстро!!!
 
Ну теперь точно придётся сделать. Быстро не обещаю. )
 

Приветствую! 

Р‌аспаковал в локальную директорию MQL5 Editor, попробовал скомпилировать и получил


П‌опробую сам разобраться, но если сможете подсказать, буду благодарен!

 
nkaretnikov:

Приветствую! 

Р‌аспаковал в локальную директорию MQL5 Editor, попробовал скомпилировать и получил

...

П‌опробую сам разобраться, но если сможете подсказать, буду благодарен!


Скачайте последнюю версию библиотеки из этой статьи: Графические интерфейсы X: Обновления для нарисованной таблицы и оптимизация кода (build 10)
 
Anatoli Kazharski:

Скачайте последнюю версию библиотеки из этой статьи: Графические интерфейсы X: Обновления для нарисованной таблицы и оптимизация кода (build 10)

Великолепно! Спасибо большое!
 
Anatoli Kazharski:

Скачайте последнюю версию библиотеки из этой статьи: Графические интерфейсы X: Обновления для нарисованной таблицы и оптимизация кода (build 10)


Добрый день!

Код отлично читается, но вот не могу найти где меняется размер текста, отображаемого в строках таблицы

‌В Program.mqh отсутствуют упоминания Font_Size. Неужели где-то в библиотеках это сидит?

 
nkaretnikov:


Добрый день!

Код отлично читается, но вот не могу найти где меняется размер текста, отображаемого в строках таблицы

‌В Program.mqh отсутствуют упоминания Font_Size. Неужели где-то в библиотеках это сидит?


Методы для установки шрифта и размера шрифта находятся в базовом классе элементов:

//+------------------------------------------------------------------+
//| Базовый класс элемента управления                                |
//+------------------------------------------------------------------+
class CElementBase
  {
protected:
   //--- Шрифт
   string            m_font;
   int               m_font_size;
   //---
public:
   //--- (1) Шрифт и (2) размер шрифта
   void              Font(const string font)                         { m_font=font;                          }
   string            Font(void)                                const { return(m_font);                       }
   void              FontSize(const int font_size)                   { m_font_size=font_size;                }
   int               FontSize(void)                            const { return(m_font_size);                  }
  };

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