Текущий архив: 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.032 c