На данный момент библиотека заточена под одну панель на графике.
Если попытаться влепить 2, то некорректно отлавливаются события - у элементов одинаковые Id, а родительский Id не проверяется.
Для проверки взял демонстрационный Controls.mq5 и продублировал панель - все события дублируются на обе панели, хотя не должны.
CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))использовать что то вроде
ObjCAppDialog.Create(chart,name,subwin,x1,y1,x2,y2))?
В пункте "Наполняем панель индикации" можно вместо использовать что то вроде ?
Доброго дня, может подскажите что сделать.
Ваш пример експерт Controls.
При переключении на другой период эксперт выгружается, пробовал убрать ExtDialog.Destroy(reason); в OnDeinit().
Подскажите что необходимо сделать, что бы окно диалога продолжало работать при переходе на другие периоды.

- www.mql5.com
Доброго дня, может подскажите что сделать.
Ваш пример експерт Controls.
При переключении на другой период эксперт выгружается, пробовал убрать ExtDialog.Destroy(reason); в OnDeinit().
Подскажите что необходимо сделать, что бы окно диалога продолжало работать при переходе на другие периоды.
ИМХО, я считаю что легче создать библиотеки собственноручно, чтобы знать что где и как нужно использовать или исправить если что не так.
Пример написания панели без использования стандартных классов.: VirtualTradePad PositionsStyle
Можно задаться вопросом, почему при использовании MQL5 Wizard для создания класса получается код, который не компилируется:
Как сказано в статье, вы должны добавить эту строку кода вручную, что немного странно для мастера, предназначенного для некодеров.
#include <Controls\Dialog.mqh>
Также :
This article will demonstrate how easy it is to create your own display panels in a separate chart subwindow using the Standard Library classes.
Я думаю, что это шутка, не так ли?
- 2011.01.11
- MetaQuotes Software Corp.
- www.mql5.com
"Это немного странно для мастера, предназначенного для некодеров".
Я не думаю, что этот мастер предназначен для некодеров.
Он может помочь вам (начинающему программисту) сделать первые шаги к созданию чего-либо.
Фреймворк MQL5 обладает большим потенциалом, и часть его можно раскрыть с помощью мастеров.
Но я думаю, что для создания чего-то более сложного, чем этот пример, вам всегда понадобятся основы программирования.
Но я согласен, что необходимо включать очевидные вещи, если вы создаете базовый класс...
" Это немного странно для мастера, предназначенного для некодеров".
Я не думаю, что этот мастер предназначен для некодеров.
Он может помочь вам (начинающему программисту) сделать первые шаги к созданию чего-либо.
Фреймворк MQL5 обладает большим потенциалом, и часть его можно раскрыть с помощью мастеров.
Но я думаю, что для создания чего-то более сложного, чем этот пример, вам всегда понадобятся основы программирования.
Но я согласен, что необходимо включать очевидные вещи, если вы выводите базовый класс...
Возможно, вы правы, но я думал, что MQL5 Wizard в первую очередь рассчитан на некодеров. В любом случае, проблема здесь похожа на баг, так как для компиляции кода, созданного мастером, приходится добавлять код вручную.
- 2011.01.11
- MetaQuotes Software Corp.
- www.mql5.com
Обратил внимание что в библиотеке пользовательских графический интерфейсов (панелей) копируется не совсем удачная на мой взгляд событийная модель:
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { ... }
Во первых, далеко не все события имеют набор переменных соответствующих int, long, double и string. Где-то переменных описывающих событие может быть больше, где-то меньше, где-то они не совпадают с предложенными базовыми типами. По факту мы видим постоянную конвертацию вроде int -> bool, string -> int, double -> int и т.д. И если с точки зрения процедурного программирования практически ничего сделать нельзя (ведь не будешь создавать 1 000 000 перегруженных функций для каждого гипотетического случая), то в рамках ООП все можно сделать гораздо проще и изящней.
Но главная проблема OnEvent в том, что этот обработчик событий призван обрабатывать события получаемые с графика, в то время как событие может быть каким угодно, например открытие новой позиции, или изменение котировок. В общем OnEvent(...) как-то выглядит не достаточно универсальным обработчиком событий, ИМХО. Возможно разработчики как-то приловчились обрабатывать свои собственные события на базе существующего CWnd , но для меня использования стандартной библиотеки панелей видится пока проблемным.

- 2010.11.10
- Samuel
- www.mql5.com
спасибо, изучил, полезно! несколько моментов: планируется ли создание какого-нибудь конструктора, что бы панели можно было собирать в конструкоторе форм как в VS? т.к. считать всё руками как-то не совсем удобно, может это и ялвяется признаком профессионализма, НО долго ))
с макросами явно перемудрили...

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Создай свои графические панели на MQL5:
Автор: MetaQuotes