Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Да, было бы можно. Но "мигание" поля ввода происходит, если нет флага до строки
и плюс с поступлением нового тика.
Запоминание редактируемого поля и начала времени его редактирования используются как раз для контроля времени ввода. На случай, если курсор так и останется в поле, то через эти 15 сек флаг редактирования принудительно будет обнулен. И OnTick() сможет выполняться полностью, не дожидаясь события CHARTEVENT_OBJECT_ENDEDIT.
А выполнение этой строки обязательно когда начинаешь ввод и заканчиваешь ввод в поле? Может её засунуть туда-же?
В конце концов можно эту строку вызывать дважды при событии CHARTEVENT_OBJECT_CLICK и при CHARTEVENT_OBJECT_ENDEDIT
А перемещение курсора мыши, или ещё какие-то события не вызывает выполнение этой строки?
А выполнение этой строки обязательно когда начинаешь ввод и заканчиваешь ввод в поле? Может её засунуть туда-же?
В конце концов можно эту строку вызывать дважды при событии CHARTEVENT_OBJECT_CLICK и при CHARTEVENT_OBJECT_ENDEDIT
А перемещение курсора мыши, или ещё какие-то события не вызывает выполнение этой строки?
Как раз и НЕ нужно, чтобы эта строка выполнялась. И вообще какая-либо функция. До того, как наконец-то не наступит CHARTEVENT_OBJECT_ENDEDIT и пользователь не завершит ввод.
Если делать без флага, то сразу начинает мигать поле ввода, как только клик в поле объекта.
Если делать без принудительно обнуления его (вдруг пользователь просто оставил курсор в поле и больше никуда не нажимал), то в такой ситуации не сможет тогда выполняться OnInit(). И никак по-другому решить не получалось. Поэтому решил сделать так.
О том я и говорю.
Вот так не проверяли
Я думаю, что мигание вызывает выполнение этого кода. А если его выполнить только после редактирования поля, то и мигания быть не должно.
Я думаю, что мигание вызывает выполнение этого кода. А если его выполнить только после редактирования поля, то и мигания быть не должно.
Получилась опечатка в моем предыдущем: имел ввиду не OnInit(), a OnTick().
По рекомендованному способу убирает тоже лишь "часть" миганий (при этом для проверки весь другой код в OnChartEvent() просто закомментировал).
Получается также, как в принципе и при моем способе - если сделать флаг только в одном месте в OnChartEvent(), до обсуждаемой строки. А так, конечно, думаю, сразу бы сделал примерно или также, как вы описали.
Поэтому без наличия еще этого же флага в начале OnTick() все равно мигание синхронное именно с новыми тиками оставалось.
А еще странно, что даже если флаг есть везде в начале - и в OnTimer(), и в OnTick(), и в OnChartEvent() - то все равно нет-нет да и один-два раза мигнет редактируемое поле даже и за эти обозначенные для флага 15 сек ))
Хотя ведь кроме вышеописанных функций больше никакие не используются....
В общем, сделанный вариант нормально в принципе рабочий. По крайней мере, он лучше, чем с самого начала мигающее редактируемое поле. И времени флага обычно должно быть вполне достаточно - редко курсор останется зачем-то в поле.