
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
а вы задали уже новый вопрос?
Негоже модератору начинать флуд. Поясняю. Добавление пользователем (в том числе и модератором) нового сообщения в тему общепринято называть "ответом". Даже если это реплика язвительного характера.
Поэтому, ещё раз, с уточнением: Если расцениваете, как цирк, - смело удаляйте. Или постарайтесь отправить новое сообщение по существу. Недостоверная же информация может ввести пользователей в заблуждение.
Добавлю. Первым же скажу Вам спасибо, если официально выяснится (если поспособствуете выяснению), что пользовательские события заполняют очередь по прежним правилам.
Добавлю. Первым же скажу Вам спасибо, если официально выяснится (если поспособствуете выяснению), что пользовательские события заполняют очередь по прежним правилам.
Грубо говоря, работа с событиями никогда и не менялась. Просто в справке было написано изначально не совсем верно.
...
Я активно пользуюсь в каждом своем приложении созданным idle сообщением. Все работает.
Я активно пользуюсь в каждом своем приложении созданным idle сообщением. Все работает.
sergeev:
Баг выловил.Такое происходит из за отправки события EventChartCustom из эксперта на этом чарте на самого себя. Получается, что эта отправка события вызывает обновление чарта (ChartRedraw) главного окна.
//---
Сделал вот такого эксперта для теста Вашего решения и заодно попробовал решить проблему со сверхчастым мерцанием текста во время редактирования объекта OBJ_EDIT.
//---
//---
После запуска эксперта, на графике в левом верхнем углу увидим следующее:
//---
Нажав на кнопку "START event_idle++" даём доступ к Вашему (Alex) решению. Видим, как счётчик event_idle++ увеличивает значение прямо на графике.
Пока кнопка нажата Ваш код будет работать. Правда ресурсы он кушает очень сильно. Загрузка процессора (тестировал на двух-ядерном) колеблется от ~90% до ~100%. До запуска или в момент, когда кнопка отжата, загрузка процессора от ~5% до ~10%. Клик (щелчок левой кнопки мыши) на графике сбрасывает счётчик в ноль.
Ввод текста в поле ввода не вызывает мерцания, так как в момент ввода Ваш код отключается с помощью глобальной переменной "On/Off event_idle++". Это костыль конечно, но как временное решение вполне подходит для некоторых простых решений.
Загрузка процессора не единственная проблема. В момент работы счётчика, окна в торговом терминале открываются быстро, но изменение размеров окон притормаживают довольно заметно. Не всегда, но такие моменты есть.
Загрузка процессора не единственная проблема. В момент работы счётчика, окна в торговом терминале открываются быстро, но изменение размеров окон притормаживают довольно заметно. Не всегда, но такие моменты есть.
Проблему с загрузкой процессора можно решить следующим образом. Указываем, чтобы счётчик событий обновлялся раз в секунду. Добавляем такой код:
В OnInit():
//---
В тело программы:
//---
В код Alex'a (отмечено красным):
//---
В блок обработки событий CHARTEVENT_CLICK (отмечено красным):
//---
Блок обработки событий CHARTEVENT_OBJECT_CLICK редактируем следующим образом + Состояние кнопок всё таки нужно контролировать, так как иногда даже нажав на неё "как-то не так" она остаётся отжатой, если была до этого такой, но весь остальной код в блоке отработается и начнётся путаница:
//---
Вот теперь всё интереснее. :)
//---
P.S. Если секунды много, то можно попробовать поколдовать с GetTickCount().
что могу сказать
1. грузит проц Comment. Убераете его и станет тихо.
2. Сам по себе idle цикл не оказывает заметного влияния на проц.
3. Проблема с мерцанием эдита - это проблема не одного 0-чарта. Это проблема отправки события на объекта-чарт. Это приводит к перерисовке главного 0-чарта и дает мерцание.
что могу сказать
1. грузит проц Comment. Убераете его и станет тихо.
2. Сам по себе idle цикл не оказывает заметного влияния на проц.
3. Проблема с мерцанием эдита - это проблема не одного 0-чарта. Это проблема отправки события на объекта-чарт. Это приводит к перерисовке главного 0-чарта и дает мерцание.