Проблема с TChart. Невозможность Отрисовки графика на однояд

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
turao
незнакомец
Сообщения: 6
Зарегистрирован: 26.01.2015 17:55:33

Проблема с TChart. Невозможность Отрисовки графика на однояд

Сообщение turao »

Проблема соответственно в следующем. Не рисуется график в TChart на одноядерном компе. COM-порт опрашивается с периодичностью в 100мс. Результат опроса помещается в глобальную перменную. График рисуется отдельной процедурой при нажатии кнопки Run и прекращается при нажатии Stop. На других машинах (двухядерные и выше, WinXP,Win7) все работает нормально. На одноядерном начинает рисоваться при нажатии кнопки "закрыть", крестик в правом углу. Там в OnClose закрытие COM-порта прописано. В чем может быть дело? Просто обидно ставить мощный комп на такое простое дело. Да, Lazarus v1.2.6, настройки TChart и Series по умолчанию.
mig-31
постоялец
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Сообщение mig-31 »

Опрос COM порта поместить в отдельный поток и через @Synchronize(процедура отображения данных на графикe) рисовать или добавить Application.ProcesMessages в процедуру опроса COM порта = сильнее загрузит CPU.
turao
незнакомец
Сообщения: 6
Зарегистрирован: 26.01.2015 17:55:33

Сообщение turao »

Сделал последовательный вариант, сначала опрос, потом добавление точки на график. Но такое годиться только для одного АЦП (через COM-порт), а их будет четыре. Действительно, прием данных с порта лучше сделать отдельным потоком. Спасибо за совет. :)
mig-31
постоялец
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Сообщение mig-31 »

да или вызывай Application.ProcesMessages после добавления данных на график
Ответить