Скачать MetaTrader 5

Классы для создания панелей и диалогов

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

Вот эти классы. Вопросов конечно очень много, даже слишком много. Но один главный на данный момент.

Из индикатора в подокне создать панель на графике цены никак? 

Vladimir Karputov
Модератор
68930
Vladimir Karputov  
Dmitry Fedoseev:

Вот эти классы. Вопросов конечно очень много, даже слишком много. Но один главный на данный момент.

Из индикатора в подокне создать панель на графике цены никак? 

Это (\MQL5\Indicators\Examples\Panels\SimplePanel\SimplePanel.mq5) не то?

EURUSDM1 

Dmitry Fedoseev
46936
Dmitry Fedoseev  
Vladimir Karputov:

Это (\MQL5\Indicators\Examples\Panels\SimplePanel\SimplePanel.mq5) не то?

 

Не то. Сам индикатор рисует в подокне, а панель надо создать на графике цены. На параметр subwin нет реакции. Судя по коду в Dialog.mqh и не должен:

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

Выход из положения уже нашел, очень хитрый (и очень необычный, будет в статье). Но все же ход мысли создателя этих классов очень интересен. 
 

Vladimir Karputov
Модератор
68930
Vladimir Karputov  
Dmitry Fedoseev:

Не то. Сам индикатор рисует в подокне, а панель надо создать на графике цены. На параметр subwin нет реакции. Судя по коду в Dialog.mqh и не должен:

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

Выход из положения уже нашел, очень хитрый (и очень необычный, будет в статье). Но все же ход мысли создателя этих классов очень интересен. 
 

Такое не делал - у меня, если индикатор создаёт панель на базе классов для создания диалогов и панелей, то в своём окне. Вероятно здесь ещё завязка на получение событий.
Dmitry Fedoseev
46936
Dmitry Fedoseev  

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

Подарок из ада какой-то, а не классы для создания панелей и диалогов. 

Anatoli Kazharski
62737
Anatoli Kazharski  

А какой должен быть GUI ? Какие планируется использовать элементы управления? Могу помочь сделать графический интерфейс для всех статей, где он нужен, с помощью своей версии.

Вот здесь последняя версия (build 4) библиотеки: Графические интерфейсы X: Элемент "Стандартный график" (build 4)

Если интересно продолжим в личке. 

Dmitry Fedoseev
46936
Dmitry Fedoseev  
Anatoli Kazharski:

А какой должен быть GUI ? Какие планируется использовать элементы управления? Могу помочь сделать графический интерфейс для всех статей, где он нужен, с помощью своей версии.

Вот здесь последняя версия (build 4) библиотеки: Графические интерфейсы X: Элемент "Стандартный график" (build 4)

Если интересно продолжим в личке. 

Сам не знаю каким он должен быть. Просто глядя здесь на количество тем с GUI, подумалось, что может быть Рош решил популяризовать стандартные классы для создания панелей и диалогов. Разобрался с ними основательно, их не популяризовать надо, про них забыть надо на всегда.

Если каких-то особых требований к статьям по созданию GUI нет (надеюсь Рош ответит когда-нибудь), могу и сам сваять что-нибудь. Могу и сам ваши статьи почитать. А так просто я не привык сваливать на кого-то свои проблемы. 

Anatoli Kazharski
62737
Anatoli Kazharski  
Dmitry Fedoseev:

...

Могу и сам ваши статьи почитать. А так просто я не привык сваливать на кого-то свои проблемы. 

Да там не сложно. То есть это бы не отняло у меня много времени. К тому же мне это интересно.

Буквально минута и шаблон индикатора по вопросу в этой теме уже готов:

//---

Архив с файлами в прицепе.

Файлы:
Test.zip 3 kb
Alexey Kozitsyn
7786
Alexey Kozitsyn  
Anatoli Kazharski:

Да там не сложно. То есть это бы не отняло у меня много времени. 

Буквально минута и шаблон индикатора по вопросу в этой теме уже готов:

//---

Архив с файлами в прицепе.

Анатолий, Вы с MQ так и не говорили на тему добавления Ваших классов в стандартную библиотеку? Вы такой объем работы проделали + статьи - все красиво, а стандартная библиотека этим не блещет.

Или сделали бы как альтернативу... 

Anatoli Kazharski
62737
Anatoli Kazharski  
Alexey Kozitsyn:

Анатолий, Вы с MQ так и не говорили на тему добавления Ваших классов в стандартную библиотеку? Вы такой объем работы проделали + статьи - все красиво, а стандартная библиотека этим не блещет.

Или сделали бы как альтернативу... 

Как альтернатива она уже есть. А вот, чтобы в стандартную библиотеку включить нужно ещё многое сделать. Не хотелось бы полусырой продукт выкладывать. На текущей стадии реализации я не согласен, даже если все скажут да.
Dmitry Fedoseev
46936
Dmitry Fedoseev  
Anatoli Kazharski:

Да там не сложно. То есть это бы не отняло у меня много времени. К тому же мне это интересно.

Буквально минута и шаблон индикатора по вопросу в этой теме уже готов:

//---

Архив с файлами в прицепе.

Ладно хорошо, поспрашиваю. Но через пару дней. Отдохнуть надо немного, перегрелся. Да и хотелось бы получить ответ от Роша по требованиям к GUI.

Хотя, если вас не затруднит, покажите шаблон с окном, как на картинке выше, с двумя полями ввода, с двумя полями ввода со спинами, двумя выпадающими списками и кнопкой. Естественно события должны отрабатываться, и еще бы пример кода как менять размер окна.   

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