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

Вниз

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

 
John   (2005-07-26 17:23) [0]

Значит listbox co стилем  lbOwnerDrawVariable
MultiSelect- false

При selecte которого строка закрашивается в цвет

with Control as TListBox, Canvas do
begin
if selected[index]=true then
 Brush.Color:=clReD;
 Canvas.FillRect(Rect);
 Canvas.TextOut(Rect.Left, Rect.Top,Items[Index]);
end;

Как при этом очистить остальные строки( не в смысле данные
а привести к исходному цвету).

В событие Onclick
используя  Repaint Refresh
сильно мерцает

Или как устронить это мерцание ?


 
Джо ©   (2005-07-26 17:27) [1]

Неверно делаешь. Нужно таким образом:

   Brush.Style := bsSolid;
   if odSelected in State then
   begin
     Brush.Color := clHighlight;
     Font.Color := clHighlightText
   end
   else
   begin
     Brush.Color := clWindow;
     Font.Color := clWindowText
   end;
   FillRect (Rect);


 
Джо ©   (2005-07-26 17:28) [2]


>  [1] Джо ©   (26.07.05 17:27)

То есть, еще, при необходимости добавить проверку на другие состояния в State.
Да, OnDrawItem вызывается, когда это необходимо, в том числе, и для "остальных" строк.



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
4-1118784775
ranetka
2005-06-15 01:32
2005.08.14
запустить свой логон


4-1118729844
vinni_0FFh
2005-06-14 10:17
2005.08.14
Как нажать кнопку в тулбаре чужой программы


10-1098969514
Oleg_
2004-10-28 17:18
2005.08.14
COM сервер


4-1118750333
Константин_1558
2005-06-14 15:58
2005.08.14
Нужно открыть в проводнике диск CDRom а. Прошу помощи!


1-1122470768
Juice
2005-07-27 17:26
2005.08.14
Директива-аналог "stop on delphi exceptions"