Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

избыточные перерисовки компонентов


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]

Это известный косяк в КОЛ, просто до него ещё ни одни умелые ручки не добрались. Ждите... :-)


Наверх

Титульная страница Поиск, карта сайта Написать письмо