delphi - TImageList.ShareImages-如何准确使用而不必复制内容?

标签 delphi c++builder

我使用C ++ Builder,但是我认为这个问题与Delphi同样重要。

当我有两个TImageList对象时,有时我想在两个图像列表中使用相同的图标,则可以复制内容:ImageList2.Assign(ImageList1) ;

但是,我注意到“帮助”中的TImageList.ShareImages提示我可以使用相同的内部列表,并节省复制资源!但是记录不佳,因为我不确定如何才能做到这一点?
如何使ImageList2使用与ImageList1相同的内部列表? (我会设置ImageList2.ShareImages = true

最佳答案

当我阅读源代码时,您是这样进行的:

ImageList2->Handle = ImageList1->Handle;
ImageList2->ShareImages = true;


ShareImages仅控制图像列表句柄是否为列表所有者。在这种情况下,它属于ImageList1而不是ImageList2拥有。

这样的结果是ImageList1必须退出实时ImageList2。否则,如果ImageList1首先被破坏,则ImageList2会保留已被破坏的图像列表的句柄。

关于delphi - TImageList.ShareImages-如何准确使用而不必复制内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35081808/

相关文章:

delphi - 在Delphi 7中,为什么我可以给const赋值?

c++ - 如果一个线程在关键部分调用 Acquire(),如果另一个线程调用 Release(),该锁是否会被释放?

c++ - 如何管理 Windows 文件打开对话框中的导航 Pane ?

delphi - 如何使用HeapCreate/HeapAlloc分配类?

delphi - 如何检查数组是否已排序?

C++ Embarcadero TTcpServer 和 TTcpClient

C++ Builder 删除动态数组的对象

c++ - 如何更改 C++ 构建器中 TMenuItem 的可见性?

multithreading - Delphi中的跨线程通信

multithreading - 如果主线程完成,我是否必须向匿名线程发出退出信号?