很喜欢 ribbon 风格的程序, 照着网上的方法,制做了一个简单的程序, 可是,发现程序体积增长得太快了..四个窗体,一个DM.窗体里没有放太多的控件,编译后,体积居然有 5M 了. 如果不用 ribbon 风格, 体积估计只在1--2M的样子.并且,随着窗体的不断增加,程序的体积也直线上升,如果程序里有三五十个窗体,估计程序的体积会达到二三十M的样子,这太恐怖了. 正常情况下: 程序的体积只会有三五M的..想在此跟大家讨论一下,如何减小程序的体积? 发过一个贴子问过想同的问题:
http://topic.csdn.net/u/20110221/00/76dac9d6-9f72-40ac-9d8f-1f6c98424393.html
得到的答案,基本上是: 去掉不必要的引用单元, 用 asp 之类的工具压缩.经测试,在主窗体的单元引用里,去掉了所有皮肤相关的引用. 但还是会有类似下面的引用单元(它们都是自动引用的).
DB, ADODB, UErrUpdate, cxGraphics, cxControls, cxLookAndFeels,
cxLookAndFeelPainters, dxBar, cxPC, dxStatusBar, dxRibbonStatusBar,
cxClasses, dxRibbon;
以DX, CX 开头的单元,手工删除了,还是会自动添加进来.针对这个问题, 首先想到的,肯定是这套控件的资源文件太大了, 并且在编译时,重复添加得很严重.. 比如: 窗体上,有三个按钮, 每个按钮都有相同的资源.而实际上,这个相同的资源,应该只需存在着一份,就可以了.
并且,如果能想办法,把这些需要的资源,想办法放到一个动态库里去, 这样, 主程序的体积就会减少很多.(曾经有个程序,体积有十几M,把所有的资源图片放到动态库里去后,程序的体积就只有二M 多了) 可是: 怎样把这些资源想办法从控件里,搞到动态库里去,并且能正常调用呢? 因为,控件引用的资源,并不清楚.另外, 这套ribbon 的程序,只需换个皮肤文件,整个程序,就会呈示不同的风格, 这个皮肤文件,居然不到一M..
http://topic.csdn.net/u/20110221/00/76dac9d6-9f72-40ac-9d8f-1f6c98424393.html
得到的答案,基本上是: 去掉不必要的引用单元, 用 asp 之类的工具压缩.经测试,在主窗体的单元引用里,去掉了所有皮肤相关的引用. 但还是会有类似下面的引用单元(它们都是自动引用的).
DB, ADODB, UErrUpdate, cxGraphics, cxControls, cxLookAndFeels,
cxLookAndFeelPainters, dxBar, cxPC, dxStatusBar, dxRibbonStatusBar,
cxClasses, dxRibbon;
以DX, CX 开头的单元,手工删除了,还是会自动添加进来.针对这个问题, 首先想到的,肯定是这套控件的资源文件太大了, 并且在编译时,重复添加得很严重.. 比如: 窗体上,有三个按钮, 每个按钮都有相同的资源.而实际上,这个相同的资源,应该只需存在着一份,就可以了.
并且,如果能想办法,把这些需要的资源,想办法放到一个动态库里去, 这样, 主程序的体积就会减少很多.(曾经有个程序,体积有十几M,把所有的资源图片放到动态库里去后,程序的体积就只有二M 多了) 可是: 怎样把这些资源想办法从控件里,搞到动态库里去,并且能正常调用呢? 因为,控件引用的资源,并不清楚.另外, 这套ribbon 的程序,只需换个皮肤文件,整个程序,就会呈示不同的风格, 这个皮肤文件,居然不到一M..
现在能想到的,就是其它的方法了, 能否帮我分析一下, 哪种方法好一些?方法一: 使用 dev 控件时,带包编译, 发布时, 连包一并发布. 方法二: 把窗体 封装到 包, 或是动态库里, 这样,主程序体积也就变小了..上述两种方法,该如何取舍,以及如何实现呢? 一直没有这样开发过.
另外就是换控件包,business skin form和tms控件包都可以实现ribbon效果,而且编译完的程序很小