Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизBitMap в ListBox-e Найти похожие ветки
← →
tytus (2004-01-26 15:49) [0]Господа - просьба не игнорировать как в прошлый раз. Вопрос - как мне в ListBox-e рисовать разные изображения в разных Item-ах, как это сделано в примере VirtualViewer в ListView-e???
← →
Юрий Зотов (2004-01-26 15:54) [1]См. TListBox.OnDrawItem.
← →
Sirakuz (2004-01-26 15:56) [2]Style - csOwnerDrawFixed
Вот код, правда для комбобокса, но для листбокса будет почти тоже самое.
Изображения берёт из imageList"a
procedure TForm1.Combobox1DrawItem(
Control: TWinControl; Index: Integer; Rect: TRect;
State: TOwnerDrawState);
Var
bmp:TBitMap;
begin
Bmp:=TBitmap.Create;
Bmp.Width:=ImageList.Width;
Bmp.Height:=ImageList.Height;
With ComboBox1 do
Begin
ImageList.GetBitmap(index,Bmp);
if (odSelected in State)and(not(odComboBoxEdit in State)) then
Begin
Canvas.Brush.Color:=clNavy;
Canvas.Font.Color:=Color;
End else
Begin
Canvas.Brush.Color:=Color;
Canvas.Font.Color:=clNavy;
End;
Canvas.FillRect(Rect);
Canvas.Draw(rect.Left, rect.Top, Bmp);
Canvas.TextOut(rect.Left+ImageList.Width, (rect.Top+(rect.Bottom-rect.Top) shr 1)-Canvas.TextHeight(items[Index])shr 1, items[Index]);
End;
Bmp.Free;
end;
← →
VAleksey (2004-01-26 15:59) [3]
TListBox(Control).Canvas.FillRect(Rect);
ImageList1.Draw(TListBox(Control).Canvas,Rect.Left,Rect.Top,0);
TListBox(Control).Canvas.TextOut(Rect.Left + 40 ,Rect.Top,TListBox(Control).Items[Index]);
← →
tytus (2004-01-26 16:22) [4]>Юрий Зотов.
Ок. А когда я в TListBox.OnDrawItem выполняю if условие then загружаю в битмап рисунок else загружаю в битмап другой рисунок , то ВСЕ рисунки в итемах меняются!!! на последний загруженный. А вот чтоб в каждом итеме - разный рисунок...
← →
Юрий Зотов (2004-01-26 16:27) [5]> tytus © (26.01.04 16:22) [4]
Что где рисуете - то там и рисуется. Что ж еще можно сказать, не видя ни строчки кода?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.026 c