Скачать MetaTrader 5

Обсуждение статьи "Графические интерфейсы X: Обновления для библиотеки Easy And Fast (build 2)"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Тысяча человек уже опубликовали продукты в Маркете. Опубликуй и ты свой!
MetaQuotes Software Corp.
Модератор
181072
MetaQuotes Software Corp. 2016.08.04 17:32 

Опубликована статья Графические интерфейсы X: Обновления для библиотеки Easy And Fast (build 2):

С момента предыдущей публикации статьи этой серии, библиотека Easy And Fast пополнилась новыми возможностями. Проведена частичная оптимизация схемы и кода библиотеки, что немного сократило потребление ресурсов CPU. Некоторые повторяющиеся методы во многих классах элементов были перенесены в базовый класс CElement.

Итак, приступим. Всего в графических интерфейсах тестовых приложений будет восемь вкладок. На скриншотах ниже показано, как разместились в них элементы управления. На первой вкладке представлены все типы кнопок (включая группы кнопок) и список с вертикальной полосой прокрутки. Кнопка «Simple Button 3» двухрежимная, и если привести её во включенное состояние, это сделает видимым элемент «Индикатор выполнения», в котором для демонстрации будет имитироваться некий процесс.  

 Рис. 3. Группа элементов графического интерфейса первой вкладки.

Рис. 3. Группа элементов графического интерфейса первой вкладки.

Автор: Anatoli Kazharski

Sergey Pavlov
8941
Sergey Pavlov 2016.08.04 18:15  

Спасибо автору за качественную работу.

Реter Konow
1934
Реter Konow 2016.08.05 18:18  

Ждем видео.

И еще реализацию динамичности окон. Если можно.)

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

(Данное предложение является изъявлением желания "заинтересованного пользователя". Не более.)

Alexey Oreshkin
3626
Alexey Oreshkin 2016.08.06 15:56  

На вкладке Tab 1 есть 3 радиокнопки, что и куда нужно добавить в данном примере чтобы при их переключении просто выскочил алерт с именем нажатой кнопки?

п.с. в данном примере, в файле MainWindow.mqh в функции bool CProgram::CreateTable есть два дефайна: COLUMNS2_TOTAL и ROWS2_TOTAL, а далее в этой же функции используются дефайны COLUMNS1_TOTAL и ROWS1_TOTAL. Вероятно это ошибка.

Anatoli Kazharski
56820
Anatoli Kazharski 2016.08.06 16:32  
Alexey Oreshkin:

На вкладке Tab 1 есть 3 радиокнопки, что и куда нужно добавить в данном примере чтобы при их переключении просто выскочил алерт с именем нажатой кнопки?

В обработчике событий пользовательского класса CProgram::OnEvent() добавьте вот такой блок кода:

//+------------------------------------------------------------------+
//| Обработчик событий графика                                       |
//+------------------------------------------------------------------+
void CProgram::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
//...
//--- Событие нажатия на текстовой метке
   if(id==CHARTEVENT_CUSTOM+ON_CLICK_LABEL)
     {
      //--- Если нажали на радио-кнопку
      if(lparam==m_radio_buttons1.Id())
        {
         ::Alert("element id (lparam): ",lparam,"; radio button index (dparam): ",(int)dparam,"; radio button description (sparam): ",sparam);
         return;
        }
      //---
      return;
     }
//...
  }

//---

Результат:


//--- 

п.с. в данном примере, в файле MainWindow.mqh в функции bool CProgram::CreateTable есть два дефайна: COLUMNS2_TOTAL и ROWS2_TOTAL, а далее в этой же функции используются дефайны COLUMNS1_TOTAL и ROWS1_TOTAL. Вероятно это ошибка.

Да. Переносил код из другого файла и забыл исправить.

Anatoli Kazharski
56820
Anatoli Kazharski 2016.08.06 16:41  
Реter Konow:

Ждем видео.

И еще реализацию динамичности окон. Если можно.)

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

(Данное предложение является изъявлением желания "заинтересованного пользователя". Не более.)

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

Реter Konow
1934
Реter Konow 2016.08.06 17:31  
Anatoli Kazharski:

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

Ясно.

Динамичность окон не главная вещь. Но удобная. 

Очень интересно, какие еще элементы управления собираетесь добавить.

Снимите ли Вы видео с демонстрацией возможностей интерфейса?

Или например, можно было бы заснять процесс создания интерфейса для небольшого эксперта, работающего на МА.  

Все таки очень хочется увидеть конечный результат в действии.

Я бы сам все проверил, но честно говоря абсолютно нет времени, так как очень занят своей работой.

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

Anatoli Kazharski
56820
Anatoli Kazharski 2016.08.06 17:44  
Реter Konow:

Ясно.

Динамичность окон не главная вещь. Но удобная. 

Очень интересно, какие еще элементы управления собираетесь добавить.

Снимите ли Вы видео с демонстрацией возможностей интерфейса?

Или например, можно было бы заснять процесс создания интерфейса для небольшого эксперта, работающего на МА.  

Все таки очень хочется увидеть конечный результат в действии.

Я бы сам все проверил, но честно говоря абсолютно нет времени, так как очень занят своей работой.

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

Всё это и многое другое тоже уже было запланировано. Будет много рабочих примеров, которые помогут MQL-разработчикам использовать эту библиотеку в своих проектах. Индивидуально каждому, к сожалению, уделить много времени нет возможности. А для статей время могу найти.

Из элементов будут, например:

  • Элемент "Время".
  • Элемент "Текстовое поле" с автоматическим переносом слов + полоса прокрутки.
  • Списки радио-кнопок и чек-боксов с вертикальной полосой прокрутки.
  • И многое другое. 

Alexey Oreshkin
3626
Alexey Oreshkin 2016.08.07 16:03  
Anatoli Kazharski:

В обработчике событий пользовательского класса CProgram::OnEvent() добавьте вот такой блок кода:

Благодарю. Я так всё и делал, только не ставил :: перед Alert поэтому у меня и не работало.
Anatoli Kazharski
56820
Anatoli Kazharski 2016.08.07 17:48  
Alexey Oreshkin:
Благодарю. Я так всё и делал, только не ставил :: перед Alert поэтому у меня и не работало.
Отсутствие :: не должно было оказывать, какого-то влияния. Ошибка была, в чём-то другом. 
Alexey Oreshkin
3626
Alexey Oreshkin 2016.08.07 18:52  
Anatoli Kazharski:
Отсутствие :: не должно было оказывать, какого-то влияния. Ошибка была, в чём-то другом. 

Может быть, свой код удалил и сейчас уже не могу сказать точно.

 

Ошибка возникает когда закрываю крестиком созданное индикатором окно. Немного изменил файл MainWindow.mqh из примера расположенного здесь: Indicators\Article 10\SeparateWindow

 

и ещё не понял как можно удалить строку в созданной таблице ? 

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий