Сразу скажу, с графикой раньше вообще не работал.
В моей программе используется несколько потоков(нитей). Один поток берет данные с переходника USB-COM в реальном времени, другой их обрабатывает, третий по результатам обработки рисует графику. Рисование, естественно, идет непрерывно.
Все рисуется хорошо, но если потащить мышкой работающее окно, вылетает ошибка "Canvas does not allow draving". Происходит это на операции Canvas.CopyRect. Понимаю что причина где то в рисовании разными потоками на одну канву.
Какие способы устранения посоветуют мне более опытные программеры?
Ошибка при рисовании на канве, Delphi
- paskal
- Нашел транзистор. Понюхал.
- Сообщения: 160
- Зарегистрирован: Пн сен 05, 2011 10:03:06
- Откуда: Тула
Ошибка при рисовании на канве, Delphi
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
- Реклама
Re: Ошибка при рисовании на канве, Delphi
Рисовать нужно в одном потоке, желательно основном.
- paskal
- Нашел транзистор. Понюхал.
- Сообщения: 160
- Зарегистрирован: Пн сен 05, 2011 10:03:06
- Откуда: Тула
Re: Ошибка при рисовании на канве, Delphi
Особенность программы такова, что процесс рисования идет в реальном времени непрерывно. Если я сделаю графику в основном потоке, программа повиснет.
А всё рисование идет в одном потоке. В других потоках не связанная с графикой обработка.
А всё рисование идет в одном потоке. В других потоках не связанная с графикой обработка.
Если бы на станции "Мир" стояли Винды, она бы еще висела и висела...
-
ДанилКоржов
- Родился
- Сообщения: 3
- Зарегистрирован: Вт янв 16, 2018 23:18:46
Re: Ошибка при рисовании на канве, Delphi
Делема у вас, но выход должен же быть ....
- SIM31
- Это не хвост, это антенна
- Сообщения: 1363
- Зарегистрирован: Чт апр 04, 2013 22:22:57
- Откуда: Белгород, РФ
Re: Ошибка при рисовании на канве, Delphi
Я кидал на форму таймер, и внутри вызова таймера рисовал анимацию, работает превосходно, можно каждые 16 мс экран перерисовывать.
- Реклама

