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

Вниз

Как в ListBox-e рисовать разные значки?   Найти похожие ветки 

 
tytus   (2004-12-07 11:04) [0]

Добрый день всем. В процедуре ListBoxDrawItem рисую:
IL1.Draw(LB1.Canvas,Rect.Left,Rect.Top,0);// IL-ImageList
Мне нужно для одного итема листбокса нарисовать другой значек. Когда меняю индекс значка в IL.Draw , то перерисовуются все значки. Подскажите как с этим бороться.


 
ЮЮ ©   (2004-12-07 11:13) [1]

так ты ставь индекс значка тот, который ты ассоциируещь с рисуемой в данный момент строкой (этот код рисования для каждой строки строки один)


 
tytus   (2004-12-07 11:20) [2]

>ЮЮ
procedure TTgListFm.LB1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin

with LB1.Canvas do
begin
 FillRect(Rect);
 IL1.Draw(LB1.Canvas,Rect.Left,Rect.Top,0);//?????????
 TextOut(Rect.Left+16,Rect.Top,LB1.Items[index]);
end;
end;
Добавляю новый итем, индекс его знаю, а если меняю в Draw 0 на 1(всего два значка), то перерисовываются ВСЕ значки...


 
ЮЮ ©   (2004-12-07 11:26) [3]

procedure TTgListFm.LB1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
  imageIndex: integer;
begin

with LB1.Canvas do
begin
 FillRect(Rect);
 if Index = 0 then  imageIndex:= 0 else  imageIndex:= 1;
 IL1.Draw(LB1.Canvas,Rect.Left,Rect.Top, imageIndex);
 TextOut(Rect.Left+16,Rect.Top,LB1.Items[index]);
end;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
1-1102105614
Bobby Digital
2004-12-03 23:26
2004.12.19
RichEdit


8-1092217378
Руслан
2004-08-11 13:42
2004.12.19
Как определить что MediaPlayer закончил проигрывать файл...


8-1095743439
DelphiN!
2004-09-21 09:10
2004.12.19
Компонент для перетикания изображения


1-1101850354
Mega
2004-12-01 00:32
2004.12.19
Обмен сообщениями между MDIParent и MDIChild


9-1091463999
Xerx
2004-08-02 20:26
2004.12.19
Внутри сферы