Наверное, что-то у Вас в наследовании не так. Проверил, все работает:
#property strict #property indicator_chart_window #include "Examples\\SimplePanel\\PanelDialog.mqh" CPanelDialog m_classFirstPanel; CPanelDialog m_classSecondPanel; int OnInit(void) { if (!m_classFirstPanel.Create(0, "First", 0, 10, 10, 410, 410)) return INIT_FAILED; m_classFirstPanel.Run(); if (!m_classSecondPanel.Create(0, "Second", 0, 420, 10, 820, 410)) return INIT_FAILED; m_classSecondPanel.Run(); return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { m_classFirstPanel.Destroy(reason); m_classSecondPanel.Destroy(reason); } int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return(rates_total); } void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { m_classFirstPanel.ChartEvent(id,lparam,dparam,sparam); m_classSecondPanel.ChartEvent(id,lparam,dparam,sparam); }
Вот результат (клик на рисунке):
Кнопки только в разных панелях нужно по-разному назвать, чтобы не было реакции на объекты другой панели.О да, заработало :)
Причина была на самом деле вот в чем:
У меня 2 класса, и я в обоих объявлял EVENT_MAP_BEGIN и "virtual bool OnEvent". В итоге и происходили конфликты.
Спасибо.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Имеется класс CAppWindowMain : public CAppDialog
В нем прописана структура окна, куча контролов и т.д.
Инициализирую окно, все отлично:
Все перемещается, работает.
Создаю второй класс, наследуюсь от CAppDialog.
При попытке отобразить вторую форму индикатор вылетает с ошибкой. Убираешь
Ошибка исчезает. Вопрос в чем - можно создать только одну форму на вкладке? Или я что-то не так делаю?