StackOverFlow 中有一些很好的示例,可以在具有 vsReport 样式的 TListView 中拥有子项,但我找不到任何关于如何在具有 vsIcon 样式的 TListView 中拥有位图的示例?
我的位图存储在第三方列表中,并调整为 32x32。我不想使用 ImageList,因为位图在第三方列表中可用。下面显示的代码绘制了第一个图标 ok,但其余项目为空。 我应该在其他可以访问 TRect 的事件中这样做吗?
procedure TForm1.cxListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem;
State: TCustomDrawState; var DefaultDraw: Boolean);
var
iBitmap: TBitmap;
iRect: TRect;
begin
{ Create a TBitmap }
iBitmap := TBitmap.Create;
iBitmap.Width := 32;
iBitmap.Height := 32;
if Item.Index <> -1 then
begin
{ Copy a bitmap from the list to iBitmap }
AIEImageList.Image[Item.Index].CopyToTBitmap(iBitmap);
{ Resample the bitmap }
iBitmap.IEResample(32, 32);
{FIX}
iRect := Item.DisplayRect(drBounds);
{ Draw the bitmap }
Sender.Canvas.Draw(iRect.Left, iRect.Top, iBitmap);
end;
iBitmap.Free;
end;