我使用C ++ Builder,但问题与我相信的Delphi一样重要。
当我有两个TImageList
个对象时,我想在两个图像列表中使用相同的图标,我可以复制内容:ImageList2.Assign(ImageList1) ;
但是,我注意到帮助中的TImageList.ShareImages
表明我可以使用相同的内部列表,并节省资源复制!然而,由于我不确定如何才能完全实现这一点,因此记录不佳?
如何使ImageList2
使用与ImageList1
相同的内部列表? (我会设置ImageList2.ShareImages = true
。
答案 0 :(得分:3)
当我阅读源代码时,你会这样做:
ImageList2->Handle = ImageList1->Handle;
ImageList2->ShareImages = true;
所有ShareImages
控件都是图像列表句柄是否为列表所有者。在这种情况下,它由ImageList1
拥有,而不是由ImageList2
拥有。
这样做的结果是ImageList1
必须生效ImageList2
。否则,如果ImageList1
首先被销毁,那么ImageList2
将保留一个已被销毁的图像列表的句柄。