我正在尝试在某些行显示时在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;
有人能告诉我我做错了吗?
答案 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;