Доброго времени суток всем.
Не могу разобраться с рисованием в программе.
Хотел реализовать код что при нажатие кнопки на экране появятся три квадрата (в будущем количество квадратов на экране будет около сотни).
В компоненте Img_Rectangle я поставил чтобы он рисовал по одной точке (крайняя верхняя левая), ширина и высота. Начальные точки пока задаю через список, перебор массива и кнопку. Ширина и высота везде одинаковы. Но что-то где-то не так идет.. Помогите пожалуйста разобраться?
code_36672.txt
Этот топик читают: Гость
Ответов: 146
Рейтинг: 1
|
|||
карма: 0 |
| ||
файлы: 1 | code_36672.txt [935B] [236] |
Ответов: 9906
Рейтинг: 351
|
|||
Установи ClearBeforeDraw=False
|
|||
карма: 9 |
|
Ответов: 2272
Рейтинг: 677
|
|||
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 |
|||
карма: 11 |
| ||
файлы: 2 | code_36673.txt [1KB] [376], code_36674.txt [965B] [410] | ||
Голосовали: | legandox |
Ответов: 9906
Рейтинг: 351
|
|||
sla8a писал(а): Нужно установить False |
|||
карма: 9 |
|
Ответов: 146
Рейтинг: 1
|
|||
Всем большое спасибо!
|
|||
карма: 0 |
|
5