我正在尝试将PNG文件添加到TPngImageList(用于D7的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;


结果:未添加图标,图像列表仍然为空。怎么办好吗?

最佳答案

未经测试,但这不行吗?

ImageList.PngImages.Add.PngImage.LoadFromFile(fn);

10-07 20:43