Delph32位色图标
来源:互联网 发布:wkwebview js交互传值 编辑:程序博客网 时间:2024/05/08 16:59
实际上,delphi是支持任意颜色的图标的.你自己可以试验一下:写个程序,读入
Image1.Picture.Icon.LoadFromFile();读入一个大于16色的图标,显示颜色是正常的.然
后保存Image1.Picture.Icon.SaveToFile();到文件,用其它软件打开该图标,颜色也是正
常的.所以说,delphi是支持高彩色的.
但是,如果你把它赋给一个TIcon再保存,就只有16位色了.原因很简单.Delphi的Graphics
单元有BUG.实际上,它会调用Graphics单元的
procedure WriteIcon(Stream: TStream; Icon: HICON; WriteLength: Boolean);过程.
问题就在这里:
...
InternalGetDIBSizes(IconInfo.hbmColor, ColorInfoSize, ColorBitsSize, 16);
...
InternalGetDIB(IconInfo.hbmColor, 0, ColorInfo^, ColorBits^, 16);
把上面的两个16改成65536,然后删除Graphics.dcu,重新编译.即可支持65536色了(XP图标).
D7中的InternalGetDIB(IconInfo.hbmColor, 0, ColorInfo^, ColorBits^, 16);
已经变为InternalGetDIB(IconInfo.hbmColor, 0, ColorInfo^, ColorBits^, -1);
所以用BDS2006就没有问题了
附:如何重新编译Graphics单元?
新建一个工程,用shift+F11加入pas文件。编译工程就可以了。
- Delph32位色图标
- VB6中使用32位图标
- VB使用32位图标 代码收藏
- VB6中使用32位图标
- 64位 TortoiseSVN 不显示图标
- mfc制作32位透明bmp图标
- VB6中使用32位图标(第二版)
- VB6中使用32位图标(第二版)
- vs2005 无法导入32位图标 之他法
- 用Delphi实现24位真彩色图标
- Toolbar控件:32位真彩色大图标
- 向九宫格里面首位加一个本地的图标
- VB动态更改窗口图标的类(支持WinXP的32位图标)
- 32位程序在64位系统下隐藏托盘图标
- 图标
- 图标
- 图标
- 图标
- 在MFC程序中显示JPG/GIF图像
- 详细解说STL hash_map系列
- 线性表的链式存储结构--链表
- 判断NSString是否为数字,以及转换为数字
- 使用vim开发php,tag实现类 函数 变量跳转
- Delph32位色图标
- Android中listView的底部拖拉翻页的实现
- STM32复用的GPIO引脚配置方式
- 使用PDFBox处理PDF文档
- DOM常用属性和方法
- 使用GDI+进行图像处理
- Ansoft家族介绍
- debug software crash
- OO设计原则总结