递归导入资源文件Delphi 2007

T.J*_*.J. 0 delphi delphi-2007

我已经为Delphi 2007应用程序创建了一个资源文件.资源文件包含10个Bitmap条目.我想知道是否有办法通过递归浏览资源文件将所有位图加载到Imagelist中,或者我是否必须一次将它们拉出一个.

提前致谢.

TLa*_*ama 5

要将RT_BITMAP当前模块中的所有资源类型图像添加到图像列表,我将使用:

uses
  CommCtrl;

function EnumResNameProc(hModule: HMODULE; lpszType: LPCTSTR; lpszName: LPTSTR;
  lParam: LONG_PTR): BOOL; stdcall;
var
  BitmapHandle: HBITMAP;
begin
  Result := True;
  BitmapHandle := LoadBitmap(HInstance, lpszName);
  if (BitmapHandle <> 0) then
  begin
    ImageList_Add(HIMAGELIST(lParam), BitmapHandle, 0);
    DeleteObject(BitmapHandle);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EnumResourceNames(HInstance, RT_BITMAP, @EnumResNameProc,
    LONG_PTR(ImageList1.Handle));
end;
Run Code Online (Sandbox Code Playgroud)