![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
избыточные перерисовки компонентов
miek © (2003-01-30 21:29:00)
Избыточные перерисовки компонентов в KOL.
1) Создаем новый проект, вешаем на форму KolPaintbox и вводим переменную-счетчик
(при создании формы его обнуляем). В обработчике OnPaint Paintbox-а увеличиваем
счетчик на единицу, рисуем что-нибудь на канве и счетчик выводим на заголовок
формы. Запускаем.
Все идет нормально, как и в VCL. Фон компонента не перерисовывается, но так и задумывалось.
2) Ставим свойство paintbox-а DoubleBuffered=True. В каждом случае, требующем перерисовки,
счетчик будет увеличиваться не на 1, а на 2.
3) Ставим свойство Transparent=true. Наблюдается нехорошее явление - перерисовка
выполняется гораздо чаще, плюс иногда она проходит шести(!)кратно. Подвигаем окно
по экрану - каждое движение вызывает две перерисовки.
4) Сделаем так: в начале события отрисовки поставим Paintbox1.Beginupdate, а
в конце, соответственно, Paintbox1.Endupdate.
Счетчик даже без всяких внешних воздействий начинает бешено крутить сотни и тысячи!
Кто-нибудь прокоментирует эти наблюдения?
SPeller (2003-01-30 22:52:00) [1]
Это известный косяк в КОЛ, просто до него ещё ни одни умелые ручки не добрались. Ждите... :-)