仅通过指定路径来创建TImageList

时间:2009-06-25 07:14:38

标签: delphi delphi-2007 imagelist

在Delphi 2007中,图像在设计时加载到TImageList中。这引入了以下问题:

  • 我有一个包含我在我的应用程序中使用的图形的文件夹
  • 每当我想改变,例如,“保存”的图标,我必须
    1. 更改文件夹中的图形(出于我自己的目的)
    2. 遍历应用程序中的所有TImageLists
    3. 更改TImageList中的图形

是否有任何方法(组件,编译脚本,......)自动执行步骤2和3,即在设计时仅指定图形路径,从而创建对实际图形文件的依赖?

3 个答案:

答案 0 :(得分:2)

你可以创建TImageList的后代并在那里添加那种逻辑。

由于引用TImageList内部图像的组件通过索引来执行此操作,因此最简单的方法是让后代具有TStrings类型的ImagePaths属性,格式如下:

#=Filename

也可以添加类型字符串的属性BasePath。

然后在加载该组件时,它可以自动将这些图像重新加载到内存中。

你甚至可以让它成为一名设计时专家,在设计师中加载图像。

- 的Jeroen

答案 1 :(得分:1)

类永远不是完全编译时。设计时类也是从资源流式传输的。

答案 2 :(得分:0)

我在运行时将图像加载到TImagelist。出于这个原因,我没有在设计时分配任何图像。它们都作为资源添加到exe中,我从那里加载它们。这也意味着可以在不重新编译exe的情况下更改图像。