1

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

  • 我有一个文件夹,其中包含我在应用程序中使用的图形
  • 每当我想更改“保存”图标时,我都必须
    1. 更改文件夹中的图形(出于我自己的目的)
    2. 沿应用程序中的所有 TImageList 迭代
    3. 更改 TImageList 中的图形

有没有办法(组件,编译脚本,...)自动执行第 2 步和第 3 步,也就是说,在设计时只指定图形的路径,创建对实际图形文件的依赖?

4

3 回答 3

2

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

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

#=Filename

并且可能还添加一个字符串类型的属性 BasePath 。

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

您甚至可以使其成为在设计器中加载图像的设计时专家。

——杰伦

于 2009-08-14T10:03:34.797 回答
1

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

于 2009-06-25T07:19:26.883 回答
0

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

于 2015-05-07T09:43:33.337 回答