在 Delphi 10.4 中,在 COM Server DLL ShellExtension 项目中,我向项目中添加了一个并在 DataModule 上DataModule
放置了一个。TImageList
ImageList 包含在设计时添加的几个图像。现在,从DLL
项目的主单元,我尝试访问 ImageList 中的图像:
procedure TMyShellExtension2.MyGetBitmap(ABitmap: Vcl.Graphics.TBitmap);
begin
ABitmap.PixelFormat := pf24bit;
ABitmap.Width := 128;
ABitmap.Height := 128;
DataModule.DataModule3.ilUrlPics.GetBitmap(0, ABitmap);
CodeSite.Send('test');
end;
该GetBitmap
行似乎导致错误,因为CodeSite.Send
未执行以下行并且未分配图像。
显然,我从TImageList
aDataModule
内部 a访问图像的方式DLL
是不正确的。
另一方面,在分配“自制”位图时,它确实有效:
ABitmap.PixelFormat := pf24bit;
ABitmap.Width := 128;
ABitmap.Height := 128;
ABitmap.Canvas.Brush.Color := clBlue;
ABitmap.Canvas.FillRect(Rect(0, 0, 127, 127));
是否有另一种访问内部图像的工作方式DLL
?我究竟做错了什么?