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

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

Программистов, способных написать свою библиотеку также единицы. 

Пользователей,  которые хотят себе GUI много. Но для них все должно быть просто. Как дважды два. 
Для этого нужно делать отдельный проект, который позволяет работать как vs 

Peter делайте то, что считаете нужным. Судить о востребованности можно только после набора статистики. Мы же пытались сделать с вами индикатор сбора статистики по счету. Я  просто не захотел заморачиваться потому,  что до сих пор не доделал расчёту часть. 
Хотя я уверен,  что ваш ГУИ легче спрограммировать,  чем мой, но который уже сделан. 
Я просто постоянно модифицируется и мне легче самому управлять моим кодом, не хочу просить что то других. 


А вот реальных пользователей, которые оценят ваш труд мало. По своему опыту говорю. 
Я сделал бесплатную библиотеку для экспертов. Информационную готовую библиотеку. Которая выводит только информацию и позволяет управлять любым советником. 
Скачиваний сотни. Спасибо сказали пару раз. Качают Китай, Бразилия, Таиланд,  немного России. Все. 

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

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

Программистов, способных написать свою библиотеку также единицы. 

Пользователей,  которые хотят себе GUI много. Но для них все должно быть просто. Как дважды два. 
Для этого нужно делать отдельный проект, который позволяет работать как vs 

Peter делайте то, что считаете нужным. Судить о востребованности можно только после набора статистики. Мы же пытались сделать с вами индикатор сбора статистики по счету. Я  просто не захотел заморачиваться потому,  что до сих пор не доделал расчёту часть. 
Хотя я уверен,  что ваш ГУИ легче спрограммировать,  чем мой, но который уже сделан. 
Я просто постоянно модифицируется и мне легче самому управлять моим кодом, не хочу просить что то других. 


А вот реальных пользователей, которые оценят ваш труд мало. По своему опыту говорю. 
Я сделал бесплатную библиотеку для экспертов. Информационную готовую библиотеку. Которая выводит только информацию и позволяет управлять любым советником. 
Скачиваний сотни. Спасибо сказали пару раз. Качают Китай, Бразилия, Таиланд,  немного России. Все. 

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

Все остальное неважно. 
Делайте свое дело. Не нужно ничего доказывать. 


Спасибо. Ваше мнение как разработчика и продавца с огромным опытом, для меня очень важно.

 
Реter Konow:


Спасибо. Ваше мнение как разработчика и продавца с огромным опытом, для меня очень важно.

Спасибо. 
Основная цель, чтобы библиотека не влияет на основной алгоритм советника. 
Я когда делал свою библиотеку вначале столкнулся с этим. 
 
Vladislav Andruschenko:
Спасибо. 
Основная цель, чтобы библиотека не влияет на основной алгоритм советника. 
Я когда делал свою библиотеку вначале столкнулся с этим. 

У меня все подключение исключительно внешнее. Никак не влияет.

На языке разметки нарисовали GUI. Его несет индикатор "движок".

К советнику подключили 2 файла и заполнили файл подключения.

Запустили движок с GUI и советник.

И все работает.

 
Vladislav Andruschenko:
... 

Программистов, способных написать свою библиотеку также единицы. 

...

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

 
khorosh:

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

Я не про набор функций. Я про библиотеку с ГУИ. Поверьте. Это сложно все организовать. И Peter сделал огромную работу. 
 

Еще раз повторю задачу:

  1. Программа МТ должна менять состояния элементов виндоус формы (нажат/отжат).
  2. Программа МТ должна менять цвет кнопок виндоус формы.
  3. Программа МТ должна принимать текст из полей ввода виндоус формы.
  4. Программа МТ должна устанавливать текст в поля ввода виндоус формы.
  5. Программа МТ должна открывать/закрывать окна виндоус приложения. 

Вроде все просто. Нужно нарисовать две простые формы на C#. Там должны быть кнопка, поле ввода и чекбокс. Добавить ДЛЛ. Соединить с МТ5.

Я сделаю свой аналог на МТ. Те же формы и элементы, и выполнение тех же функций. Далее, сравним решения по качеству и потенциалу развития.

//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Вот мое решение:


//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Управляющий код в советнике:

void OnTimer()
  { 
   static int q,q2,q3,q4,q5;    q++; q2++; q3++; q4++; q5++;
   //-----------------------------------------------------------------
   //Реализуем изменение цвета кнопки внутри формы.
   //-----------------------------------------------------------------
   if(q == 1)E_Window_1_Button_1(M_COLOR,C'245,245,245');
   if(q == 2)E_Window_1_Button_1(M_COLOR,C'245,0,0');
   if(q == 3)q = 0;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку кнопки.
   //-----------------------------------------------------------------
   if(q2 == 1)E_Window_1_Button_2(STATE,ON);  
   if(q2 == 2)E_Window_1_Button_2(STATE,LOCKED_ON);
   if(q2 == 3)E_Window_1_Button_2(STATE,OFF);
   if(q2 == 4)E_Window_1_Button_2(STATE,LOCKED_OFF);
   if(q2 == 5)q2 = 0;
   //-----------------------------------------------------------------
   //Реализуем программное нажатие/отжатие/блокировку чекбоксов.
   //-----------------------------------------------------------------
   if(q3 == 1){E_Window_1_Checkbox_1(STATE,ON);         E_Window_1_Checkbox_2(STATE,LOCKED_ON);  E_Window_1_Checkbox_3(STATE,OFF);} 
   if(q3 == 2){E_Window_1_Checkbox_1(STATE,LOCKED_ON);  E_Window_1_Checkbox_2(STATE,OFF);        E_Window_1_Checkbox_3(STATE,ON);}
   if(q3 == 3){E_Window_1_Checkbox_1(STATE,OFF);        E_Window_1_Checkbox_2(STATE,ON);         E_Window_1_Checkbox_3(STATE,LOCKED_ON);}
   if(q3 == 4)q3 = 0;
   //-----------------------------------------------------------------
   //Реализуем изменение текста в поле ввода:
   //-----------------------------------------------------------------
   E_Window_1_Edit_box_1("Current text: " + MathRand());
   //-----------------------------------------------------------------
   //Реализуем изменение цвета текста в поле ввода.
   //-----------------------------------------------------------------
   if(q4 == 1)E_Window_1_Edit_box_1(T_COLOR,C'145,245,245');
   if(q4 == 2)E_Window_1_Edit_box_1(T_COLOR,C'245,10,0');
   if(q4 == 3)E_Window_1_Edit_box_1(T_COLOR,C'245,20,50');
   if(q4 == 4)E_Window_1_Edit_box_1(T_COLOR,C'245,130,0');
   if(q4 == 5)E_Window_1_Edit_box_1(T_COLOR,C'25,40,20');
   if(q4 == 6)E_Window_1_Edit_box_1(T_COLOR,C'245,170,0');
   if(q4 == 7)E_Window_1_Edit_box_1(T_COLOR,C'245,110,110');
   if(q4 == 8)E_Window_1_Edit_box_1(T_COLOR,C'245,255,0');
   if(q4 == 9)q4 = 0;
   //-----------------------------------------------------------------
   //Реализуем поочередное закрытие/открытие окон:
   //-----------------------------------------------------------------
   if(q5 == 1)W_Window_2(close);
   if(q5 == 5)W_Window_2();
   if(q5 == 10)q5 = 0;
   //-----------------------------------------------------------------
  }
//+------------------------------------------------------------------+

Внизу подключены файлы:

1. Файл тестового советника (установить в папку Экспертов, открыть, сохранить, скомпилировать, закинуть на график).

2. Файл External Connection (установить в папку инклюд).

3. Файл Connection Properties (установить в папку инклюд).

4. Файл Forum sample 2 c кодом окон (только для просмотра).

5. Движок (установить в папку индикаторов. Закинуть на график с тестовым советником.)

 
Надеюсь, мои оппоненты предоставят свое решение задачи с подключением Виндоус формы через ДЛЛ.
 
Реter Konow:
Надеюсь, мои оппоненты предоставят свое решение задачи с подключением Виндоус формы через ДЛЛ.

у меня такое ощущение что в этой твоей-же "специальной олимпиаде" участвуешь только ты :-)

 

Пожалуйста, в приложении. При запуске эксперта откроется окно, в окне две кнопки, два текстовых поля и чекбокс. Цвет кнопок и текст первого текстового поля меняются раз в секунду. Если ввести текст во второе текстовое поле, эксперт откроет алерт с сообщением о событии и этим текстом. При нажатии кнопок тоже алерт открывается и при этом первая кнопка открывает форму-2, вторая кнопка закрывает форму-2. Еще форму-2 можно закрыть крестиком. Главная форма (форма 1) крестиком не закрывается, она исчезнет при отсоединении эксперта. От чекбокса тоже алерт открывается, от него два типа событий: 1 и 2 - снятие и установка галки. 

Основное время потрачено на вспоминание C# (на вспоминание, если я там что-то знал:), ничего на нем не делал больше трех лет и еще на разработку класса для передачи событий, но он универсальный, может использоваться в любом проекте. Так что теперь при создании гуи счет на минуты;)

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

Управления чекбоксом их эксперта не стал делать - надоело, итак есть установка цвета и текста - и текстовый параметр и инты. Цвет передается как RGB, но наверно можно было сделать и одной переменной, не стал глубоко вникать.

И еще есть предположение, что тот, кто знает C# и FindowsForms получше сможет сделать это в два раза проще - без двух методов для установки свойств, а только с одним, и может еще что лучше сделает.

В общем, ворота в бесконечный мир C# и FindowsForms открыты.


Файлы:
Причина обращения: