0

StackOverFlow には、vsReport スタイルの TListView でサブアイテムを所有するための良い例がいくつかありますが、vsIcon スタイルを使用して TListView でビットマップを所有する方法の例は見つかりませんでしたか?

私のビットマップはサードパーティのリストに保存されており、32x32 にサイズ変更されています。ビットマップはサードパーティのリストで利用できるため、ImageList は使用したくありません。以下に示すコードは、最初のアイコンを正常に描画しますが、残りの項目は空です。 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;
4

0 に答える 0