【发布时间】:2016-06-30 16:16:37
【问题描述】:
今天我的问题是关于在组件中创建 PNG 图像的集合。 我找到了一个接受 PNG 图像作为 gliph 的按钮,但它使用由图像的四种状态组成的 PNG 图像,如下所示:
我已经修改了组件以使用四个不同的图像,每个图像用于一个状态。所以,我的组件看起来像这样:
...
public
FPngImgEnabled: TPngImage;
FPngImgDisabled: TPngImage;
FPngImgDown: TPngImage;
FPngImgOver: TPngImage;
FDown: Boolean;
Constructor Create(AOwner: TComponent); override;
Destructor Destroy; override;
procedure Paint; override;
published
property PngImgEnabled: TPngImage read FPngImgEnabled write SetPngImgEnabled;
property PngImgDisabled: TPngImage read FPngImgDisabled write SetPngImgDisabled;
property PngImgDown: TPngImage read FPngImgDown write SetPngImgDown;
property PngImgOver: TPngImage read FPngImgOver write SetPngImgOver;
...
这样我就有了一个包含四个PNG图像的组件,然后是SetPng...程序。我想知道是否有办法使用四个PNG图像的集合;像“TPNGImagesList”这样的东西,用于将图像集中在一个地方。
【问题讨论】:
-
TImageList有什么问题? -
PngComponents 中包含 TPngImageList。也许这符合您的需求。也许甚至包括一个现成的按钮 - 我还没有检查过。
-
附:TPNGImageList也有什么问题?顺便说一句,哪个 Delphi 版本?
-
Delphi 的哪个版本?如果您可以访问泛型,为什么不使用它呢?创建类型
TImageState = (isEnabled, isDisabled, isDown, isOver);,然后使用TObjectDictionary<TImageState, TPngImage>。字典可以拥有图像对象并自行释放它们。 -
我使用的Delphi版本是XE7
标签: delphi png delphi-xe7