如何在TImageList中加载动画gif?

时间:2013-11-02 10:10:11

标签: delphi gif animated-gif timagelist

我想知道如何设置放在TImageList中的gif图像。

我知道如果我们可以访问TImageList中每个图像的图形,则可以将图片的图形转换为TGIFImage并将Animate属性设置为true。但问题是我们如何访问TImageList中加载的图像并将其转换为TGIFImage并设置该animate属性?

修改

我们如何在TTreeView中设置动画gif?

由于 David Heffernan 回答TImageList不适合保存gif图像。但这个问题的目的是在树视图中有一个GIF动画。根据 Remy-lebeau 的建议,我为此写了一个单元。在这个单元中,我定义了两个类。第一个使用TImagelist作为其属性的TGifImageRefrence,必须分配并具有将gif图像添加到此图像列表的过程。每个帧将保存为Imagelist中的单个图像,并保存帧的索引和动画速度。 第二个类是TGifNode,它的目的是成为TreeView中的一个节点。它包含一个定时器,接受一个TGifImageRefrence作为它的属性。您可以从此类为您的树视图继承自己的节点的类。我使用此单元编写示例并将它们放在一起,您可以从http://loghman.ir/MySource/GifInTreeView.zip

下载它

1 个答案:

答案 0 :(得分:3)

TImageList存储大小相同的静态图像列表。它不适合托管动画GIF。您可以解压缩动画GIF中的所有图像并将它们放入图像列表中。然后在动画中重建它们。这似乎毫无意义。您应该使用TGIFImage为GIF设置动画。