Текущий архив: 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.018 c