Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.02.27;
Скачать: CL | DM;

Вниз

TListBox перерисовка   Найти похожие ветки 

 
VirEx(work)   (2010-11-19 13:30) [0]

TListBox
стиль - lbOwnerDrawFixed
в OnDrawItem меняю например стиль шрифта или цвет, но перерисовка строки в списке происходит только если его пролистать или закрыть/открыть форму на которой этот контрол

пример:
 with Control as TListBox, Canvas do
 begin
   FillRect(Rect);
   if TContact(Items.Objects[Index]).IsAdmin then
     Canvas.Font.Style := [fsBold];
   MoveTo(Rect.Left + 2, Rect.Top);
   SetTextAlign(Canvas.Handle, TA_LEFT or TA_UPDATECP);
   TextOut(0, 0, Items[Index]);
 end;


invalidate и repaint зацикливают перерисовку, в результате программа грузит процессор и контрол мерцает


 
clickmaker ©   (2010-11-19 13:42) [1]

with Control as TListBox, Canvas

тут случаем не канва ли формы юзается?


 
VirEx(work)   (2010-11-19 13:44) [2]

она самая


 
clickmaker ©   (2010-11-19 13:57) [3]

и почему?


 
han_malign   (2010-11-19 14:21) [4]


> invalidate и repaint зацикливают перерисовку, в результате программа грузит процессор и контрол мерцает

- потому что invalidate надо делать не в отрисовке, а там где меняется состояние данных...
Если изменение адреса Items.Objects[Index] - компонент отловит(наверное), то изменение контента ссылки он отловить не в состоянии...



Страницы: 1 вся ветка

Текущий архив: 2011.02.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.008 c
2-1291800746
cross
2010-12-08 12:32
2011.02.27
Доступ к списку (private) класса TA из класса TB содержащего TA


2-1291576237
Виктор
2010-12-05 22:10
2011.02.27
о "тонких клиентах"


2-1291813130
Scott Storch
2010-12-08 15:58
2011.02.27
сравнение имен файлов по маске


2-1291622653
Демерго
2010-12-06 11:04
2011.02.27
Дублирование Showmessage


2-1291389620
Василий Иванович
2010-12-03 18:20
2011.02.27
Поиск ключа в реестре.