胖胖虫关于Delphi中图形图像的自以为是的经验总结

来源:互联网 发布:为什么淘宝充值便宜 编辑:程序博客网 时间:2024/04/30 02:34

图形大小

Delphi中虽然插入图像(特别是无压缩的BMP)会导致运行文件变得很大,但是通过InstallShield得到的安装包会自动进行压缩,所以插入图像时一般不用担心其是否压缩过。

关于透明

经过观察发现,DELPHI中的一些图形按钮其拥有的位图会自动变成透明的,它似乎进行这样的操作:凡是与第一个像素的颜色相同的像素点都被设定为?透明色?

    2003.7.28TBitMapTransParentMode属性中说明,如果该属性设置为自动:tmAuto,则以位图左下角第一个像素的颜色为掩码基准色.

 

TbitMap

技巧:用EMPTY属性判断是否拥有一个位图。

 

可以通过其CanVas对象属性进行图形绘制以改变图形外观。就算TbitMap不包含图形,也可以通过设置HeightWidth属性以及CanVas的绘制方法来给它添加一个图形。

 

调用LoadFromResourceNameLoadFromFile等获取图形失败会触发异常。

 

Palette调色板属性中说明该调色板支持256种颜色,但是实际使用中发现TbitMap本身可以显示更多颜色(例如RGB)的位图,它们之间有什么关联和限制尚不清除。

 

TPicture

技巧:可以用GetOlePicture函数通过TPicture生成一个IpictureDisp接口对象。

 

 

皮肤控件

经测试,ThemeEngine控件包兼容性差,对速度影响很。BusinessSkin包则可以较好地兼容,当把表单中的控件都改为Business类控件后,调用Update Resource DLL,相关语言中的DFM也都自动变化了。

结论:尽量不要使用皮肤控件,如果确实需要,应该使用BusinessSkin

2004-3-24 发现 BusinessSkin 也有一些难以克服的问题。皮肤类控件不应该再使用,用 dxForumLibrary 即可。

 

原创粉丝点击