在 Delphi 2007 中,图像在设计时加载到 TImageList 中。这引入了以下问题:
- 我有一个文件夹,其中包含我在应用程序中使用的图形
- 每当我想更改“保存”图标时,我都必须
- 更改文件夹中的图形(出于我自己的目的)
- 沿应用程序中的所有 TImageList 迭代
- 更改 TImageList 中的图形
有没有办法(组件,编译脚本,...)自动执行第 2 步和第 3 步,也就是说,在设计时只指定图形的路径,创建对实际图形文件的依赖?
在 Delphi 2007 中,图像在设计时加载到 TImageList 中。这引入了以下问题:
有没有办法(组件,编译脚本,...)自动执行第 2 步和第 3 步,也就是说,在设计时只指定图形的路径,创建对实际图形文件的依赖?
您可以创建 TImageList 的后代并在那里添加这种逻辑。
由于引用 TImageList 中图像的组件通过索引来执行此操作,因此让您的后代拥有 TStrings 类型的 ImagePaths 属性是最简单的,其格式如下:
#=Filename
并且可能还添加一个字符串类型的属性 BasePath 。
然后在加载该组件时,它可以自动将这些图像重新加载到内存中。
您甚至可以使其成为在设计器中加载图像的设计时专家。
——杰伦
类永远不是完全编译时。设计时类也是从资源流式传输的。
我将图像加载到TImagelist
运行时。出于这个原因,我在设计时不分配任何图像。它们都作为资源添加到 exe 中,我在运行时从那里加载它们。这也意味着可以在不重新编译 exe 的情况下更改图像。