在DELPHI中怎样保存WINDOWS XP中的图标?(200分)

Y

yyk518

Unregistered / Unconfirmed
GUEST, unregistred user!
我从WINDOWS XP中抽取的图标,显示正常,但保存后却成了16色的.[:(!]
 
有一个笨办法,修改VCL源码:

在一个工程中加入Graphics单元,转到第3273和3284行,将16改为大于256的值将可保存全
彩色图标,如下:
......
InternalGetDIBSizes(IconInfo.hbmMask, MonoInfoSize, MonoBitsSize, 2);
InternalGetDIBSizes(IconInfo.hbmColor, ColorInfoSize, ColorBitsSize, 65536);
MonoInfo := nil;
MonoBits := nil;
ColorInfo := nil;
ColorBits := nil;
try
MonoInfo := AllocMem(MonoInfoSize);
MonoBits := AllocMem(MonoBitsSize);
ColorInfo := AllocMem(ColorInfoSize);
ColorBits := AllocMem(ColorBitsSize);
InternalGetDIB(IconInfo.hbmMask, 0, MonoInfo^, MonoBits^, 2);
InternalGetDIB(IconInfo.hbmColor, 0, ColorInfo^, ColorBits^, 65536);
.......
希望能看到高手们更好的办法。
 
暂时只好如此了
 
顶部