zoukankan      html  css  js  c++  java
  • [转]合并BPL包图文教程!

    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会越来越慢。

  • 相关阅读:
    设计模式之设计原则
    浅谈简单工厂模式和策略模式
    Flask-SQLAlchemy插件
    SQLAlchemy的ORM
    Flask 微博三方登录
    SQLAlchemy介绍和基本使用
    Flask常用的钩子函数
    Flask-Restful详解
    flask信号使用
    多线程爬取斗图图片
  • 原文地址:https://www.cnblogs.com/moon25/p/2559174.html
Copyright © 2011-2022 走看看