Мой подход. Ядро - Движок. - страница 28

 
Dmitry Fedoseev:

Кстати, библиотека от Анатолия, тоже еще тот анекдот. Сколько у него там статьей по теме? Штук 50? В какую не зайдешь везде в комментах - "ой пока нет, надо доработку делать". Что бы начать пользоваться его библиотекой надо эти 50 статей прочитать? В чем суть и смысл?

жестко Вы, но увы, правда Ваша, я пробовал упомянутую библиотеку подключать, мнение неоднозначное, да удобно, да красиво, но я не занимался MQL когда эта библиотека была создана, а с последующими билдами МТ, библиотека стала "условно-рабочей", часть примеров из статей не компилируются или с багами работают, а разбираться в тоннах кода, увы, проще стандартную поставку МТ юзать

Maxim Kuznetsov:

Современные GUI конструкторы (те которые "раскидывает кнопки по формочкам") довольно технологичная вещь и прицепить к ним элементы MQL не выглядит фантастичным.

Практически у всех в промежуточном виде (файл проекта, etc) лежит XML который описывает расположение и взаимоотношения элементов.

Генерация кода целевой платформы - по факту это XSLT преобразование, которое умеет делать любой кто считает себя веб-программистом :-)

Берётся например EasyAndFast (https://www.mql5.com/ru/code/19703) потому что объектная, и имеет все необходимые компоненты. (и кстати открыта и документирована в отличии от топика),
и просто пишется транслятор.

Констукторов gui-mql нет не потому что мега-сложно, а просто это не востребовано.


да, такое вот ищу - есть у меня интерес, ну как минимум Петру нос утереть! ))))

а если серьезно, то хотелось бы какой нибудь кросплатформенный конструктор GUI покрутить, может что и получилось бы показать, на что можно посмотреть? разбираться со всем нет ни времени ни желания

 
Igor Makanu:

жестко Вы, но увы, правда Ваша, я пробовал упомянутую библиотеку подключать, мнение неоднозначное, да удобно, да красиво, но я не занимался MQL когда эта библиотека была создана, а с последующими билдами МТ, библиотека стала "условно-рабочей", часть примеров из статей не компилируются или с багами работают, а разбираться в тоннах кода, увы, проще стандартную поставку МТ юзать


да, такое вот ищу - есть у меня интерес, ну как минимум Петру нос утереть! ))))

а если серьезно, то хотелось бы какой нибудь кросплатформенный конструктор GUI покрутить, может что и получилось бы показать, на что можно посмотреть? разбираться со всем нет ни времени ни желания

Посмотрите на QT Designer.

 
Dmitry Fedoseev:

Петр, а в каком месте выразилось, что ваш ГУИ состоит не из графических объектов, а нарисован на канвасе?  Давайте кривить душой не будем, он же выглядит ужасно.

...

Как художник, не мог пройти мимо этих слов.


Конечно, далеко от ИДЕАЛА, но "ужасно"???

 
Igor Makanu:

да, такое вот ищу - есть у меня интерес, ну как минимум Петру нос утереть! ))))

а если серьезно, то хотелось бы какой нибудь кросплатформенный конструктор GUI покрутить, может что и получилось бы показать, на что можно посмотреть? разбираться со всем нет ни времени ни желания

Не надо утирать.)) И искать не надо.

ДЛЛ на С-шарп. В среде VS уже есть конструктор. Язык практически аналогичен MQL. Если не для Маркета, а для себя - любимого, то самый простой и очевидный вариант с современным внешним видом и возможностями.

А то, что предлагает Петер, это ГУИ типа ДОСовского из цикла Turbo Vision от Borland еще начала 90-х.

 
Yuriy Asaulenko:
 

А то, что предлагает Петер, это ГУИ типа ДОСовского из цикла Turbo Vision от Borland еще начала 90-х.

Да ну вполне себе нормальный ГУИ. Может быть, я слишком стар, но по-моему, он вполне себе хорош.

Вопрос в другом - кому он может быть интересен для использования ? Много ли тут таких ?

 

Сделать свой  GUI не проблема.

Проблема -  найти ему толковое применение которое нужно БОЛЬШОМУ числу пользователей. Пока у всех именно с этим сложности. Будет нормальная задача - будет и GUI, и не один...

Петр, какой ответ на вопрос ЗАЧЕМ пользователям Ваш продукт? Я понимаю что Вас увлек сам процесс, проходил это. Но, зачем это нужно пользователям? Кто является целевой аудиторией?
 
Georgiy Merts:

Да ну вполне себе нормальный ГУИ. Может быть, я слишком стар, но по-моему, он вполне себе хорош.

Вопрос в другом - кому он может быть интересен для использования ? Много ли тут таких ?

Плохо-хорошо - здесь все зависит от конкретных задач. Неск лет назад я делал ГУИ терминала на листах Ексель - с кнопочками, полями, таблицами, реал-тайм графиками и прочими атрибутами. Нужен был именно для ручной торговли. Каких-либо проблем с построением и интерфейсом не было.

ГУИ Петера преподносится именно как решение проблемы и упрощение построения. Задумал, сделал - молодец конечно, но проблемы здесь давно нет, да и упрощать особо нечего.

 

111

Угу - красота. Еще и нестыковочка (по стилю) наблюдается с некоторыми другими скриншотами, вызывающая большие сомнения.

 
Реter Konow:

Вот пример моего интерфейса подключения:

Здесь уже все продумано.

Посмотрел. Мрак полный. Файл практически полностью занимает функция On_Gui_Event длинной в 600 строк. Вот ее отрывок (орфография и пунктуация сохранены):

void On_Gui_Event(int Element, string value)
{
 string action = value, selected_option = value; //DON'T CHANGE THIS LINE
//------------------------------------
 switch(Element)
   {
//=====================================================================================================================
//WINDOW:   Checkboxes | element: CHECKBOX  | name: Checkbox_1  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX3___Checkbox_1:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch((int)action)
               {
                case checked:     break;
  
                case unchecked:     break;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  
//=====================================================================================================================
//WINDOW:   Checkboxes | element: CHECKBOX  | name: Checkbox_2  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX4___Checkbox_2:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch((int)action)
               {
                case checked:     break;
  
                case unchecked:     break;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  ...
//=====================================================================================================================
//WINDOW:   Spin edits | element: D_LIST  | name: D_LIST_2  |  Location: Window's Main Frame
//=====================================================================================================================
case D_LIST20___D_LIST_2:
               //------------------------------------------------------------------------------------------------------
               //What to do when option selected?
               //------------------------------------------------------------------------------------------------------
               if(selected_option == "L_ITEM  1"){}
               if(selected_option == "L_ITEM  2"){}
               if(selected_option == "L_ITEM  3"){}
               if(selected_option == "L_ITEM  4"){}
               if(selected_option == "L_ITEM  5"){}
               if(selected_option == "L_ITEM  6"){}
               if(selected_option == "L_ITEM  7"){}
               if(selected_option == "L_ITEM  8"){}
               if(selected_option == "L_ITEM  9"){}
               if(selected_option == "L_ITEM  10"){}
               if(selected_option == "L_ITEM  11"){}
               if(selected_option == "L_ITEM  12"){}
               if(selected_option == "L_ITEM  13"){}
               if(selected_option == "L_ITEM  14"){}
               if(selected_option == "L_ITEM  16"){}
               if(selected_option == "L_ITEM  17"){}
               if(selected_option == "L_ITEM  18"){}
               if(selected_option == "L_ITEM  19"){}
               if(selected_option == "L_ITEM  20"){}
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  ...
  }
}

Это просто мрак. Код естественно не компилируется. Ни одна из констант case не определена в файле. Switch внутри case. Отступы сделаны так, что бы как будто специально запутать бедного юзера. Куча просто неэффективного кода вроде if(selected_option == "L_ITEM  1"){} Короче мрак полный и беспроглядный. 

 
Vasiliy Sokolov:

Посмотрел. Мрак полный. Файл практически полностью занимает функция On_Gui_Event длинной в 600 строк. Вот ее отрывок (орфография и пунктуация сохранены):

Это просто мрак. Код естественно не компилируется. Ни одна из констант case не определена в файле. Switch внутри case. Отступы сделаны так, что бы как будто специально запутать бедного юзера. Куча просто неэффективного кода вроде if(selected_option == "L_ITEM  1"){} Короче мрак полный и беспроглядный. 

Василий, ты меня сильно рассмешил. )) Зачем все что попадает в руки, сразу пытаться компилировать?))

Это пример файла подключения к GUI. Спроси у Олега Папкова как это работает. Какой еще "неэффективный код"? Обычный код, который сделан чтобы быть максимально понятным.