Yevgen Drumachyk:
Подскажите, плз, как это можно решить?
3) Другими способами?..
Конечно же, лучшее решение - реализовывать пользовательский интерфейс на Canvas.
Yevgen Drumachyk #:
Класс CCanvas есть как для MQL5, так и для MQL4. Поэтому код для Canvas будет работать на обеих платформах. Так он же только для MQL5?
Если всё же его можно использовать для MQL4 - подскажите, плз, может статьи есть с примерами создания UI? (поискал, не нашел)
Плохо искали. Очень много статей с ГУИ из Канваса и обсуждений на эту тему на форуме.
Например, последние статьи Артема Тишкина с его DoEasy можете посмотреть.
Или почитать ветку "Canvas -это Круто"
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет всем! (проблема актуально только в MLQ4, в MQL5 - проверял - такой проблемы нет)
Есть пользовательский интерфейс индикатора, состоящий из нескольких кнопок, висящих поверх основного графика. Кнопки перекрашивают граф объекты и меняют их стиль.
У меня включена опция в MetaTrader "Выделять объект по одиночному клику" - очень удобно, так как работаю со множеством графических построений. Не могу от этого отказаться.
Проблема: Когда нужно изменить, например, цвет линии
1) Выделяю нужную линию.
2) Нажимаю на кнопку нужного цвета.
3) При этом рядом с кнопкой есть другая линия, она тоже выделяется и тоже перекрашивается.
Так что получается, что хочу изменить одну линию, я меняется ещё одна - случайно-выделенная...
Подскажите, плз, как это можно решить?
1) Перехватить клик в коде и отменить выделение? Если такое возможно, то как?
2) При mouse-over над областью интерфейса, принимать клик только по кнопкам. Как это можно реализовать?
3) Другими способами?..
Пробовал - не работает:
1) Сервис - Объекты - Примагничивание - уменьшить значение
2) Повышать ZORDER кнопкам через ObjectSetInteger(0, name, OBJPROP_ZORDER, 1) и уменьшать его объектам. Клик получает только кнопка (проверял через обработчик события CHARTEVENT_OBJECT_CLICK), но при этом линия тоже выделяется и обрабатывается нажатием на кнопку (перекрашивается). Вопрос: каким образом линия всё же выделилась до того, как кнопка получила клик?..
Есть ли идеи?
Заранее спасибо!