Delphi IDE 本身就是一个插件模式的工具,插件的好处不用多说。运行包的BPL,其实就是众多单元的集合,因此可以再次重新组合,只要你将各个BPL包用到的单元再组合一次!

本文以  http://code.google.com/p/tangram-plugin-framework/ 插件框架自带的BPL包合并向导工具做一次图文介绍!

1、安装好开源插件框架 tangram-plugin后,然后点击 菜单 File->New->Others,找到tangram FrameWork里的包合并向导,

2、Dev控件堪称独孤求败,最强也是最肥的数据库解决方案。我们以Dev套件包为准,合并Dev几十个BPL包为一个BPL包。

这里用到dev功能是cxGirid,treelist和垂直表格,如果用到其他的功能,涉及的BPL会有所不同!

选择单元

3、生成DPK工程,改名为Dev.BPL,记得保存。DPK文件如果没有生成,请先带一个空白工程,然后再用向导生成DPK,即重复上面的步骤。生成DPK后,再移除原来的DPR工程。

4、有可能碰到重复的单元,已经在别的包被引用了,我们的原则是,只封装Dev的单元。

(Dev的单元名好区分,都是以cx或dx打头。)比如sysInit,在 contains 按 CTRL+Y删除即可。

5、编译会提示,我们新的Dev包,引用到其他单元,在不同的BPL里。选择View details可以查看引用到详细单元。

按“OK”按钮,将引用到的其他包名(BPL),记录在 Dev.DPK里的require 区域。

6、输出BPL和DCP目录,最好是当前目录下,否则又要去delphi的DCP和BPL目录查找,太麻烦。这两个目录输入“点”字符:“.”,表示当前路径。


7、按Build 编译,生成Dev.BPL和Dev.DCP在当前路径下。新的Dev.BPL为 9M左右,比杨玉环还肥。

8、我们用ASPACK给BPL减肥一下,大概可以压缩到只有53%大小,只有4M多,减肥效果明显。
9、我们做一个简单的例子,将新的BPL和DCP放在EXE当前目录下。配置工程选项,选择Packages,在Build with runtime packages里输入

vcl;rtl;dev。这里必须要说一下 vcl;rtl 这两个包是delphi的核心运行包,尤其是基于DLL插件的框架,如果带包编译,必须少不了这2个包。引用vcl;rtl 这2个包,避免了很多DLL的麻烦和痛苦,如焦点切换,application共享等问题。

运行后,程序正确。新的EXE只有700K不到,经过ASPACK压缩后,只有200多K。

点评:BPL合并方式,简化了发布程序带来的痛苦,可以将系统的BPL和第三方的BPL各自合并。新的BPL并不影响原来的BPL或者第三方控件的开发环境,这只是运行包而已,在发布的时候带上即可。任何绿色插件程序文件,一般都会放在当前目录,尽量避免丢到syste32目录,这是微软windows的一个操作恶习,将系统目录当成垃圾桶。delphi的插件模式简单而透明,不会依赖系统,相反,.Net 4.0自带的发布版FrameWork,40多M,安装后目录上百兆,而且狂写系统注册表。.Net框架不会给你绿色试用,这已经违背了绿色软件的原则。注册表臃肿的后果,windows会越来越慢。

相信原生程序和托管程序之争会一直延续下去。.net似乎已经没有搞头,只有不停在语法上折腾,而折腾的后果,导致程序兼容性不够好(兼容性比JDK差多了)。如果你的操作系统自带了众多.Net 版本呢:1.0/1.1/2.0/3.0/3.5/4.0........XXX.0,每个.Net版本还有小版本号,诸如SP1,SP2,SP3等,请不要奇怪。未来的windows8/windows9/WIN X。。。。,Net框架加上加上几万种的驱动程序,windows上百G安装大小并不奇怪。.Net发布复杂性还在于捆绑在操作系统上,有些特殊功能必须在windows上配置,而且需要管理员的权限。

简单而简洁,这是一切应用程序的基本要求。微软,请不要将.net 演变成 COM/COM+,请给我们一个简单而简洁,高效又安全的操作系统环境!

合并BPL包图文教程相关推荐

  1. java poi jar maven_导出maven项目依赖的jar包(图文教程)

    注意使用mvn命令是需要配置好maven的环境变量 一.导出到自定义目录中 在maven项目下创建lib文件夹,输入以下命令: mvn dependency:copy-dependencies -Do ...

  2. Fiddler系列教程2:手机抓包图文教程

    上篇Fiddler教程,我们教了大家Fiddler安装配置及如何使用Fiddler进行基本的Http抓包及模拟请求,今天给大家介绍下如何使用Fiddler进行手机抓包. 运行环境为Windows 10 ...

  3. 如何合并音频文件图文教程

    有些小伙伴在学校社团或者公司年会等等的场合都会需要表演节目,而唱歌跳舞时需要的音乐很多都是需要进行合并处理,这时候我们就可以使用迅捷音频转换器帮我们完成这一操作. 一.打开迅捷音频转换器 我们可以先在 ...

  4. Fiddler对安卓应用手机抓包图文教程

    http://www.cr173.com/html/37625_1.html 做开发需要抓取手机app的http/https的数据包,想看APP发出的http请求和响应是什么,这就需要抓包了,这可以得 ...

  5. 黄聪:Fiddler对安卓应用手机抓包图文教程

    做开发需要抓取手机app的http/https的数据包,想看APP发出的http请求和响应是什么,这就需要抓包了,这可以得到一些不为人知的api,比如还可以干些"坏事"... 需要 ...

  6. kitti数据集转换bag包——图文教程

    前言:在做实验言过程中遇到了想要使用kitti数据集,而我想要的输入数据为bag包文件,故而需要将kitti数据集转化为rosbag包,经过查找相关资料终于实现,现分享出来yon供大家一起交流使用,如 ...

  7. 微软System Center Operations Manager 2012(SCOM )安装图文教程

    Microsoft System center Operations Manager (SCOM) 2012 是微软推出的专业系统监控软件,可以监控部署在网络中的服务器.应用系统和客户端,提供图形化视 ...

  8. Delphi BPL包合并图文教程 IDEWiz tangram-plugin-framework

    Delphi BPL包合并图文教程  Framework IDEWiz tangram-plugin-framework elphi IDE 本身就是一个插件模式的工具,插件的好处不用多说.运行包的B ...

  9. 计算机网络丢包排查,ping命令图文教程,电脑测试网络丢包延迟,检测网络故障通不通...

    原标题:ping命令图文教程,电脑测试网络丢包延迟,检测网络故障通不通 你好,我是老盖,首先感谢你观看本文,本篇文章我做的有视频,视频讲述的比较详细,也可以看我发布的视频. 这里演示一下ping的命令 ...

最新文章

  1. Vscode 过滤.pyc文件
  2. 浅谈Java中的final关键字
  3. linux 查询 lib信息,linux系统信息常用查询命令
  4. 一起谈.NET技术,Visual Studio对程序集签名时一个很不好用的地方
  5. 计算机网络学习(七)—集线器与交换机
  6. CSS3+JavaScript效果:胶卷式放映
  7. html table td 居中显示,table td怎么垂直居中显示 详解table中如何隐藏td?
  8. 专为球迷准备的免费邮箱
  9. 表单二维码怎么做?二维码怎么统计信息?
  10. 目标跟踪之LTMU:High-Performance Long-Term Tracking with Meta-Updater环境配置及代码运行
  11. 如何理解面向对象思维?
  12. “丧心病狂”的C语言小程序,拿去恶搞好友
  13. Vue入门到上手(10)—— VueJs 填坑日记之在项目中使用Amaze UI
  14. 陆金所java_陆金所金融核心场景数据库的去 O 之路
  15. 华为开发者大赛:赢的不仅仅是百万元奖金
  16. 重庆科技学院计算机二级证书在哪拿,重庆计算机二级证书丢了怎么办
  17. 众昂矿业架构师刘金海:萤石助力氟聚合物全产业链共振
  18. 产品经理需不需要懂技术
  19. 员工电脑监控软件都有哪些功能?是否违法?
  20. 多个服务器数据互通_2020年4月7日部分服务器数据互通公告

热门文章

  1. 智慧停车在智慧城市建设中的发展现状与前景
  2. pgsql将为NULL或空字符串的字段替换为指定默认值,格式化时间戳,用指定分隔符截取字符串等操作
  3. 2022年YouTube营销:5个推荐的数据分析工具
  4. 快速理解iaas/pass/sass
  5. android 4.4 源码编译,Android 4.4源码编译过程
  6. 手机充值时常见问题及解决方法
  7. 2022年程序员日记
  8. 微信加入群聊的测试设计点
  9. Matlab 语言基础知识输入命令之diary
  10. crash: mod命令