我正在尝试将PNG文件添加到TPngImageList(Dng的PngComponents来自http://code.google.com/p/cubicexplorer/downloads/list)。
type
TImgListCrack = class(TPngImageList);
function LoadPngIconEx(ImageList: TPngImageList; const fn: string): boolean;
var
Icon: HICON;
AImage: TPngObject;
begin
with ImageList do
begin
BeginUpdate;
try
AImage:= TPngObject.Create;
AImage.LoadFromFile(fn);
Icon:= TImgListCrack(ImageList).PngToIcon(AImage);
ImageList_AddIcon(Handle, Icon);
DestroyIcon(Icon);
FreeAndNil(AImage);
Result:= true;
finally
EndUpdate;
end;
end;
end;
结果:图标未添加,图片列表仍为空。怎么做好吗?
答案 0 :(得分:2)
未经测试,但不应该只是简单的工作吗?
ImageList.PngImages.Add.PngImage.LoadFromFile(fn);
答案 1 :(得分:0)
使用PngImageList的其他方法解决。 Prop PngImages需要功能。
function LoadPngIconEx(ImageList: TPngImageList; const fn: string): boolean;
var
AImage: TPngObject;
begin
if not FileExists(fn) then
Result:= false
else
begin
AImage:= TPngObject.Create;
try
AImage.LoadFromFile(fn);
ImageList.PngImages.Add.PngImage:= AImage;
Result:= true;
finally
FreeAndNil(AImage);
end;
end;
end;