将图标添加到TListView

时间:2013-06-21 00:00:39

标签: delphi

我正在尝试在某些行显示时在TListView中放置一个图标,并且我的TImageList包含已加载的图像,但它没有连接。我的代码就是这个

with sListView2 do
begin
  test := sListView2.Items.Add;
  test.Caption := sListbox2.Items[i];
  test.SubItems.Add(test');
  test.ImageIndex(ImageList1.AddIcon(1));
end;

有人能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:2)

TImageList.ImageIndex是一个整数,您需要正确设置它,并且要调用AddIcon,您需要提供TIcon

如果您已在TImageList中使用,只需将TListView.ImageIndex设置为该图片的正确索引:

// Assign an image from the ImageList by index
test.ImageIndex := 1;  // The second image in the ImageList

或者,如果您在TImageList中没有现有图标并且需要添加一个图标,请添加它并存储AddIcon的返回值:

// Create a new TIcon, load an icon from a disk file, and
// add it to the ImageList, and set the TListView.ImageIndex
// to the new icon's index.
Ico := TIcon.Create;
try
  Ico.LoadFromFile(SomeIconFileName);
  test.ImageIndex := ImageList1.Add(Ico);
finally
  Ico.Free;
end;
顺便说一句,你可以稍微简化你的代码(但要小心with!):

with sListView2.Items.Add do
begin
  Caption := sListbox2.Items[i];
  SubItems.Add(test');
  ImageIndex := 1;
end;