Вверх ↑
Ответов: 2202
Рейтинг: 675
#1: 2015-12-23 17:00:33 ЛС | профиль | цитата
legandox, у компонента PaintBox свойство ClearBeforeDraw = True, что и приводит к стиранию нарисованных вами прямоугольников.
При таком подходе как у вас нужно делать так:
1. Очистили doClear.
2. Нарисовали.
3. Сделали doRefresh.
* свойство ClearBeforeDraw должно быть False.
Схема: code_36673.txt
Можно и так:
1. Делаем doRefresh, а включенное свойство ClearBeforeDraw = True сделает перед отрисовкой очистку.
2. Рисуем все необходимое после onBeforeDraw.
Схема:
code_36674.txt
Во втором способе отрисовка будет происходить не только при doRefresh, но и при каждом обновлении окна на котором находится PaintBox. Тоесть когда система "скажет" окну вашей программе, что нужно обновить то что на ней находится, произойдет onBeforeDraw и все будет перерисовано. Что и видно при загрузки программы.
------------ Дoбавленo в 16.24:
Galkov писал(а):
Установи ClearBeforeDraw=True
Нужно установить False.
карма: 11

1
файлы: 2code_36673.txt [1KB] [337], code_36674.txt [965B] [364]
Голосовали:legandox