Обсуждение статьи "Рецепты MQL5 - Элементы управления в подокне индикатора - Кнопки" - страница 8
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В МТ5 асинхронное обновление свойств чарта. Т.е. то что мы установили свойство, еще не говорит о том, что терминал его тут же подобрал. Для того, что бы все свойства перечитались терминалом заново и используется функция ChartRedraw(). Также можно использовать функции ChartGet... ObjectGet, в этом случае свойства также будут перечитаны.
Нигде не встречал этой информации. Наткнулся, решение нашел, теперь буду знать.
Что именно? Вот в начале раздела Операции с графиками :
Функции для работы с графиками. Все операции с графиками применимы только в экспертах и скриптах.
Функции, устанавливающие свойства графика, фактически служат для отправки ему команд на изменение. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Изменение графика производится в процессе обработки очереди событий данного графика.
По этой причине не следует ожидать немедленного визуального обновления графика после вызова данных функций. В общем случае обновление графика производится терминалом автоматически по событиям изменения - поступление новой котировки, изменения размера окна графика и т.д. Для принудительного обновления внешнего вида графика используйте команду на перерисовку графика ChartRedraw().
Нигде не встречал этой информации. Наткнулся, решение нашел, теперь буду знать.
Что именно? Вот в начале раздела Операции с графиками :
Я не говорил, что ее там нет, просто я не встречался (или забыл). Спасибо.
Как на счет моего предложения по генерации события CHART_CHANGE при изменении таких свойств графика, как флаг отслеживания событий мыши? Может, сделаете?
Разумеется, потому что этой информации нигде нет (оказывается есть, см. выше:))). Сам мучился с этой проблемой, пока не обратился в сервис деск. Там-то мне и подсказали, что изменения свойств объектов на чарте происходит асинхронно. А судя по Вашему примеру это касается свойств и самого чарта.
Еще в разделе Графические объекты :
Группа функций, предназначенных для работы с графическими объектами, относящимися к любому указанному графику.
Функции, задающие свойства графических объектов, а также операции создания ObjectCreate() и перемещения ObjectMove() объектов на графике фактически служат для отправки команд графику. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Визуальное изменение свойств графических объектов производится в процессе обработки очереди событий данного графика.
По этой причине не следует ожидать немедленного визуального обновления графических объектов после вызова данных функций. В общем случае обновление графических объектов на чарте производится терминалом автоматически по событиям изменения - поступление новой котировки, изменения размера окна графика и т.д. Для принудительного обновления графических объектов используйте команду на перерисовку графика ChartRedraw().
Еще в разделе Графические объекты :
С объектами понятно и привычно, а вот от свойств графика я ожидал другого.
Мне мое предложение больше не повторять? Или в сервис-деск оформить?
Как решить вот такую проблему: есть событие CHARTEVENT_MOUSE_MOVE с нажатой левой кнопкой мыши, событие получаю, необходимые действия выполняются - перемещаю объект, но при этом двигается график.
Вот собственно сам вопрос: как сделать так чтоб график не затрагивался?
Доброго времени суток. Вижу что последнее сообщение давно было но все же спрошу.
Как решить вот такую проблему: есть событие CHARTEVENT_MOUSE_MOVE с нажатой левой кнопкой мыши, событие получаю, необходимые действия выполняются - перемещаю объект, но при этом двигается график.
Вот собственно сам вопрос: как сделать так чтоб график не затрагивался?
CHART_MOUSE_SCROLL