gpt4 book ai didi

Delphi图像列表: Load icons with ResourceLoad from a .资源

转载 作者:行者123 更新时间:2023-12-03 15:26:10 27 4
gpt4 key购买 nike

我正在尝试将 res 文件中的图标加载到图像列表中。我使用 Delphi ImageEditor 创建了 res 文件。

这样我尝试加载图标:

  //if ImageList1.ResourceLoad(rtIcon, 'TEXT_BOLD', clWhite) then
if imagelist1.GetResource(rtIcon, 'TEXT_BOLD', 0, [lrDefaultColor], clRed) then
showmessage('loaded')
else
showmessage('not loaded');

这两种方法都行不通。有任何想法吗?谢谢!

最佳答案

ResourceLoadGetResource 方法从单个指定的图像资源加载整个图像列表。目的是您将拥有一个位图来保存要放入列表中的所有图像。然后,该控件根据图像列表配置的宽度和高度将其分割成单独的图 block 。

考虑到这一点,您可能期望图像列表仅加载您的图标,并在列表中仅保留该单个图像。但图像列表只允许加载位图资源。他们不会加载图标资源。 (资源类型参数为将来扩展其功能留下了可能性。)请参阅 ImageList_LoadImage API函数详情。

看来您无论如何都不想加载整个图像列表。您似乎希望将图标附加到列表中已有的图像列表中。在这种情况下,您调用 LoadImage 的方法就可以了。 TIcon 知道如何从资源本身加载内容,因此您的代码可以更加精简:

myicon := TIcon.Create;
try
myicon.LoadFromResourceName(HInstance, 'TEXT_BOLD');
FImageList.AddIcon(myicon);
finally
myicon.Free;
end;

关于Delphi图像列表: Load icons with ResourceLoad from a .资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3056608/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com