
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
верно кнопка и их много
я добиваюсь чтобы при нажатии мышкой на кнопку получить имя в котором содержится тикет ордера и именно его надо закрыть
у вас кажется логика вывернулась :-)
есть заранее известный набор кнопок (массив их имён) - проходите по нему и проверяете для каждой OBJPROP_STATE - если не 0 значит кнопка нажата. Выставляете в 0 и запускаете обработчик.
или проблемы ассоциировать имя_объекта => тикет без постоянного парсинга имён ?
у вас кажется логика вывернулась :-)
есть заранее известный набор кнопок (массив их имён) - проходите по нему и проверяете для каждой OBJPROP_STATE - если не 0 значит кнопка нажата. Выставляете в 0 и запускаете обработчик.
или проблемы ассоциировать имя_объекта => тикет без постоянного парсинга имён ?
То ли у меня лыжи не едут, то ли еще что ...
Не меняется состояние кнопки само по себе. Надо перехватывать событие клика на этой кнопке и самому менять ее состояние. Так что while(true) в топку или пишем dll и там, в отдельном потоке, что хотите отслеживайте.
верно кнопка и их много
я добиваюсь чтобы при нажатии мышкой на кнопку получить имя в котором содержится тикет ордера и именно его надо закрыть
Которого именно ордера?
То ли у меня лыжи не едут, то ли еще что ...
Не меняется состояние кнопки само по себе. Надо перехватывать событие клика на этой кнопке и самому менять ее состояние. Так что while(true) в топку или пишем dll и там, в отдельном потоке, что хотите отслеживайте.
Интересно... А как же тогда отслеживаются кнопки в тестере MetaTrader5 ?
Именно отслеживанием их состояний.
То ли у меня лыжи не едут, то ли еще что ...
Не меняется состояние кнопки само по себе. Надо перехватывать событие клика на этой кнопке и самому менять ее состояние. Так что while(true) в топку или пишем dll и там, в отдельном потоке, что хотите отслеживайте.
у вас там совсем что-ли очень-очень-очень длинный цикл и причём в индикаторе ?
в скрипте в OnStart() ещё допустим долгий опрос в цикле, НО: даже там, стоит периодически делать ChartRedraw и RefreshRates, хотя и это полумеры.
OnCalculate индикатора и OnTick (и прочие OnXXX) должны быстро завершаться, чтобы не терять интерактивности и реагировать на поступающие события.
У терминала копятся во всяких очередях события/сообщения, обработать их иначе как выйдя из штатной процедуры нельзя. Ну нету в платформе DoPendingEvents()
---
"наверное надо что-то менять в консерватории"
А как Вы узнаете, что была нажата клавиша мыши без OnChartEvent()?
В OnTick() или в OnTimer() проверить состояние кнопки. С таким подходом даже в тестере будет работать.
у вас там совсем что-ли очень-очень-очень длинный цикл и причём в индикаторе ?
в скрипте в OnStart() ещё допустим долгий опрос в цикле, НО: даже там, стоит периодически делать ChartRedraw и RefreshRates, хотя и это полумеры.
OnCalculate индикатора и OnTick (и прочие OnXXX) должны быстро завершаться, чтобы не терять интерактивности и реагировать на поступающие события.
У терминала копятся во всяких очередях события/сообщения, обработать их иначе как выйдя из штатной процедуры нельзя. Ну нету в платформе DoPendingEvents()
---
"наверное надо что-то менять в консерватории"
Какая хорошая тема получилась))) Заодно либу свою поправил. А составителям доков или разработчикам на заметку:
Поясняю. Если у кнопки свойство OBJPROP_SELECTABLE установлено true, то кнопка не реагирует на нажатие. Не знаю, так это задумано или баг в реализации, но, если первое, то неплохо бы было в доках отразить.
PS. Все таки больше на баг смахивает.
В OnTick() или в OnTimer() проверить состояние кнопки. С таким подходом даже в тестере будет работать.
Именно в этом сообщении речь о клавишах мыши. Опросить их средствами MQL не получится.
Ну а состояние кнопки (графического объекта) у ТС получить почему-то не выходит. В чем там проблема - неясно.
Ладно, буду избавляться от while(true), по другому не решить вопрос
Всем спасибо
Ладно, буду избавляться от while(true), по другому не решить вопрос
Всем спасибо
Давно пора
зацикливания подобного рода в топку