我遇到了SHGetFileInfo问题。我使用FPC 2.6.2与拉撒路1.0.14,这里是代码:SHGetFileInfo产生带有黑色背景的图标
procedure x;
var
FI: SHFILEINFO;
icon: ticon;
begin
SHGetFileInfo('app.exe', 0, FI, SizeOf(FI), SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_LARGEICON);
icon := TIcon.Create;
icon.Handle := FI.hIcon;
icon.SaveToFile('extracted.ico');
end;
的问题是它会产生黑色背景图标文件,而不是OD透明。下面是它的样子:
http://i.imgur.com/5BF3xbT.jpg
当我编译在Delphi相同的代码,它完美的作品。图标具有透明背景。
我将不胜感激,如果有人可以帮助我解决这个问题:-)
谢谢,这很好用 – user1269348
拉撒路1.2的RC2可用。可能值得重新测试。 –
Lazarus 1.2 RC2不能解决此问题。实际上,当我在Lazarus 1.2 RC2(32位版本,TKicon不支持64位)中编写并试用我的代码示例时。 P.S .:也许在1.4?看到这个错误报告http://bugs.freepascal.org/view.php?id=19748 –