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

Вниз

List Box. Owner Draw.   Найти похожие ветки 

 
Маркыч ©   (2003-03-08 09:04) [0]


procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
TListBox(Control).Canvas.Brush.Style:=bsSolid;
if index=TListBox(Control).ItemIndex
then TListBox(Control).Canvas.Brush.Color:=clLime
else TListBox(Control).Canvas.Brush.Color:=clBlue;
TListBox(Control).Canvas.FillRect(rect);
Caption:=IntToStr(index)+" of "
+IntToStr(TListBox(Control).ItemIndex);


примерно так я издеваюсь над листбоксом, пытаюсь рисовать итемы в ручную. Выделеную зеленым цветом не выделеную синим. и вроде бы работает, но я выбираю одну итему все ровно, выбираю следущую - предыдущая не меняет цвет, i.e. остается зеленой. пожалста подскажите мне где ошибка.


 
Song ©   (2003-03-08 09:07) [1]

Дык а где ты сам итем рисуешь ? Я вот только вижу смену цвета и очистку клиентской области итема.


 
Маркыч ©   (2003-03-08 09:19) [2]

ну, блин, я пока тока цвет итема и меняю. пойму в чем мой ерор - исправлю и поду дальше.


 
Song ©   (2003-03-08 09:45) [3]

Ну дак чтобы было видно что у тебя меняются цвета, надо ещё итемы рисовать этими изменёнными цветами :)


 
Intell ©   (2003-03-08 15:34) [4]

А ты обойди функцию
if index=TListBox(Control).ItemIndex
then TListBox(Control).Canvas.Brush.Color:=clLime
else TListBox(Control).Canvas.Brush.Color:=clBlue;

или попробуй поработать с ItemIndex - сделай так, что если Index поменялся, то прошлая Index закрашивается.



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
1-64120
Dmitriy_R
2003-02-26 06:21
2003.03.20
просмотр и редактирование HEX дампа памяти


1-64087
mixamixa
2003-03-10 07:40
2003.03.20
Всегда активная форма


6-64261
tararasyk
2003-01-31 12:14
2003.03.20
Два WinSock Server на одном порту ?


14-64282
Scorp
2003-03-06 08:56
2003.03.20
Добавление файла в проект


1-64100
pet
2003-03-10 17:16
2003.03.20
Перекодировка