Краудсорсовый GUI. Открытое бета-тестирование. - страница 16

 
Nikolai Semko:

Я до сих пор не понимаю. Для работы индикатора или советника с твоим гуи, требуется парралельная работа еще чего-то (ядра, движка и т.д.)?

Уже нет. Движок - открытый файл-инклюдник. Подключается как показано на иллюстрации в предыдущем посте. Посмотри внимательно еще раз.

#include<GUI_DRIVE.mqh>
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
[in]  Имя открываемого файла, может содержать подпапки. Если файл открывается для записи, то указанные подпапки будут созданы в случае их отсутствия. [in]  значение, используемое в качестве разделителя в txt или csv-файле. Если для csv-файла разделитель не указан, то по умолчанию используется символ табуляции. Если для txt-файла разделитель не...
 

Реter Konow
:

Уже нет. Движок - открытый файл-инклюдник. Подключается как показано на иллюстрации в предыдущем посте. Посмотри внимательно еще раз.

Ну ок тогда.
Но как мне считать и (или) изменить из своей программы какой-то элемент в первом окне интерфейса? Как это выглядит?
В моем примере это выглядит так 

if (myGUI.win[0].ChecBox[2].isCheck())   myGUI.win[1].TextLabel[5].text  =  DoubleToString(rates[0].close,_Digits);

 
Nikolai Semko:

Ну ок тогда.
Но как мне считать и (или) изменить из своей программы какой-то элемент в первом окне интерфейса? Как это выглядит?
В моем примере это выглядит так 


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

Здесь прописываешь реакции:

//=====================================================================================================================
//WINDOW:   Menu | element: CHECKBOX  | name: Simple checkbox  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX3___Simple_checkbox:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch((int)action)
               {
                case checked:     break;
  
                case unchecked:     break;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  
//=====================================================================================================================


А вот его вызов:

E_Menu_Simple_checkbox(); 

Начинается с префикса Е_, потом имя окна и имя элемента. Интеллисенс подсуетится. Помнить все не надо.

 
Nikolai Semko:

Ну ок тогда.
Но как мне считать и (или) изменить из своей программы какой-то элемент в первом окне интерфейса? Как это выглядит?
В моем примере это выглядит так 


причем графический конструктор может насоздавать дефайнов, например:

#define close_prise_of_last_bar myGUI.win[1].TextLabel[5].text
#define show_last_price myGUI.win[0].ChecBox[2].isCheck()

и тогда можно будет делать код еще более читаемым:

if (show_last_price)  close_prise_of_last_bar  =  DoubleToString(rates[0].close,_Digits);
 
Nikolai Semko:

причем графический конструктор может насоздавать дефайнов, например:

и тогда можно будет делать код еще более читаемым:

Все это давно есть. Уже год как проверено.

 
Реter Konow:

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

Здесь прописываешь реакции:


А вот его вызов:

Начинается с префикса Е_, потом имя окна и имя элемента. Интеллисенс подсуетится. Помнить все не надо.

не понял

 
Nikolai Semko:

не понял

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

 
А кодом можно создавать графические элементы?
 
Aliaksandr Hryshyn:
А кодом можно создавать графические элементы?
В этом нет смысла. Если только кодом языка разметки. Редактор, - самый простой вариант.
 
Реter Konow:
В этом нет смысла. Если только кодом языка разметки. Редактор, - самый простой вариант.

посмотрите как устроены state-less gui ( см в гугле ) .

if (Button("hello world!")) {

printf("fck u self");

}

оно сразу и рисует кнопку и задаёт реакцию на неё

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