Вниз
Скачать: 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
14-1101898281
_}|{yk_
2004-12-01 13:51
2004.12.19
Верховная Рада отправила правительство Януковича в отставку


9-1093072914
aprm
2004-08-21 11:21
2004.12.19
Как нарисовать в OGL что-нибудь поверх всего остального


4-1099314757
zsv
2004-11-01 16:12
2004.12.19
реестр


3-1100778813
kaktus
2004-11-18 14:53
2004.12.19
Хранение и обработка данных


14-1101897095
Xaker
2004-12-01 13:31
2004.12.19
HookMonitor - или КОНЕЦ ВСЕМ Keylogger am !




   Наверх