Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.022 c
3-1100663875
Виталька
2004-11-17 06:57
2004.12.19
Кодировки


1-1102437749
InfMag
2004-12-07 19:42
2004.12.19
Работа с папками


1-1101988376
X-gen
2004-12-02 14:52
2004.12.19
Бегущая строка


1-1102150483
Артем Владимирович
2004-12-04 11:54
2004.12.19
Включение графики в браузере


3-1101115642
RRRulex
2004-11-22 12:27
2004.12.19
обновление записи набора данных из 2-х связанных таблиц




   Наверх