Особенности языка mql5, тонкости и приёмы работы - страница 188
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вопрос в том, как по указателю запустить нестатический метод класса, даже если объект другого класса (в данном случае CTimer) является свойством(переменной) этого класса.
нельзя.... можно конечно передать указатель на другой обьект и там разименовать указатель для вызова метода....но нужно имя метода знать, имхо путанная система получится
ЗЫ: но писал же вчера, используйте пример @fxsaber и наследуйтесь, в каждом классе будет вызываться OnTimer , там останется только в базовом классе в цикле проверять у какого таймера какой интервал таймера стоит, а запуск основного таймера в статик методе осуществите
Вопрос в том, как по указателю запустить нестатический метод класса, даже если объект другого класса (в данном случае CTimer) является свойством(переменной) этого класса. И возможно ли это. Боюсь что нет.
- шаблоны
- интерфейсы
шаблоны:
здесь нет реализации самого таймера, только пример как вызвать нестатическую функцию (писал прямо на форуме, не проверял)
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
MT5 и скорость в боевом исполнении
fxsaber, 2020.10.04 11:56
Определяет, на тормозной машине запущена программа или нет.
Вопрос в том, как по указателю запустить нестатический метод класса, даже если объект другого класса (в данном случае CTimer) является свойством(переменной) этого класса. И возможно ли это. Боюсь что нет.
В общем виде, как-то так видится:
Либу качаем отсюда: https://github.com/sva04091979/STD/tree/TimerEvent. Ветка TimerEvent, в master еще не сливал.
нельзя.... можно конечно передать указатель на другой обьект и там разименовать указатель для вызова метода....но нужно имя метода знать, имхо путанная система получится
ЗЫ: но писал же вчера, используйте пример @fxsaber и наследуйтесь, в каждом классе будет вызываться OnTimer , там останется только в базовом классе в цикле проверять у какого таймера какой интервал таймера стоит, а запуск основного таймера в статик методе осуществите
Игорь, не понял о каком коде fxsaber идет речь
шаблоны:
здесь нет реализации самого таймера, только пример как вызвать нестатическую функцию (писал прямо на форуме, не проверял)
Спасибо. Пробовал. Ничего не выходит.
В общем виде, как-то так видится:
Либу качаем отсюда: https://github.com/sva04091979/STD/tree/TimerEvent. Ветка TimerEvent, в master еще не сливал.
Спасибо. Но тоже не нашел как по указателю запустить нестатический метод класса.
Похоже все же эта задача не имеет решения в текущем состоянии языка MQL5Спасибо всем, но я возможно непонятно сформулировал задачу или не увидел у вас решения в силу своей ограниченности.
Что требуется?
Вот пример индикатора.
Нужно чтобы запускался метод Timer4 (выделен синим цветом) класса CTestTimer по указателю из класса CTimer (в цикле метода CTimer::OnTimer), который передается в класс CTimer::NewTimer в момент выполнения конструктора при создании объекта класса CTestTimer.
Все уже перепробовал. В тупике. Неужели нелься получить указатель на этот метод. В С++ это работает через: typedef void (CTestTimer::*TFun)();
И ошибка какая то странная: 'Timer4' - pointer to this function type is not supported yet ('Timer4' - указатель на этот тип функции пока не поддерживается)
"Пока" - словно MQ отложили этот вопрос до лучших времен.
Игорь, не понял о каком коде fxsaber идет речь
https://www.mql5.com/ru/forum/325418/page4#comment_16116740
ценность этого кода.... ну можно в любом месте кода создать свой динамический обьект.... и не париться с его обновлением, а при выходе из программы, он сам будет прибит
количество таких таймеров ограничено только фантазией... захотел спрайт подвигать - создал обьект, который с левого края экрана до правого дополз и сам убился - так сказать полная автономность
...лень пример писать, не интересная задача
https://www.mql5.com/ru/forum/325418/page4#comment_16116740
ценность этого кода.... ну можно в любом месте кода создать свой динамический обьект.... и не париться с его обновлением, а при выходе из программы, он сам будет прибит
количество таких таймеров ограничено только фантазией... захотел спрайт подвигать - создал обьект, который с левого края экрана до правого дополз и сам убился - так сказать полная автономность
...лень пример писать, не интересная задача
да, я бегло посмотрел его.
не понял этого момента
да, я бегло посмотрел его.
не понял этого момента
не знаю почему так выглядит сейчас код, но должно было быть так:
но для таймера эти методы не нужны, имхо
ЗЫ: самоубиться обьект может так
не знаю почему так выглядит сейчас код, но должно было быть так:
но для таймера эти методы не нужны, имхо
ЗЫ: самоубиться обьект может так
понял, спасибо тебе и @fxsaber. Сохранил себе в копилку.
Но, конечно, ответа нет в этом коде на мой вопрос.