在我的头脑中一直有这样一种概念:只有你自定了自己的组件,然后把它装在delphi中时才需要包,知道我看到一位超一流高手的用法后才感觉自己的无知。
他是这样用的,包中包含的单元全部是窗体单元,或者是一般的功能单元,根本没有涉及到组件,问题来了,他为什么要把这么多窗体单元防在一个包里面???
为什么?为什么???????????????????? 还有你打开dpk文件 后不是有一个contain和一个require吗,contain是放包中要包含的单元,那么require是什么的干活?? 打开dpk文件后,有编译和安装这些菜单,如果我的包里面不包含任何组件,我点击install后会怎么样?有什么后果??
他是这样用的,包中包含的单元全部是窗体单元,或者是一般的功能单元,根本没有涉及到组件,问题来了,他为什么要把这么多窗体单元防在一个包里面???
为什么?为什么???????????????????? 还有你打开dpk文件 后不是有一个contain和一个require吗,contain是放包中要包含的单元,那么require是什么的干活?? 打开dpk文件后,有编译和安装这些菜单,如果我的包里面不包含任何组件,我点击install后会怎么样?有什么后果??
至于为何把一大堆窗体放进包里,着实摸不清,我就不宜乱说了,这些窗体应该不会是普通的船体。可能内部实现了依赖于窗体运行的组件或别的什么的吧!等待高手意见。
你有用Delphi 1.0和Delphi 2.0开发的代码,利用包技术,在不修改任何代码的情况下就能把它们利用
起来。
可以把包看作是若干个单元集中在一起以类似于D L L的形式存储的模块(Borland Package Library
或B P L文件)。应用程序在运行的时候链接上这些包中的单元而不是在编译/链接时,因为这些单元的
代码存在于B P L文件中而不是存在于E X E或D L L中,所以E X E和D L L的长度将变得更短。
你能创建并使用下列四种类型的包:
• 运行期包,这种类型的包中的单元只有在应用程序运行时才被调用。当应用程序运行时,需要
找到它所使用的运行期的包,否则无法正确执行。D e l p h i的V C L 5 0 . D P L包就是典型的例子。
• 设计期包,这种类型的包包含了组件、属性和组件编辑器等在设计程序时需要的元素,可以用
Component|Install Package命令将一个设计期的包安装到组件库中, D e l p h i的D C L * . B P L包就是这
种类型的典型例子。这种类型的包在第2 1章“编写自定义组件”中有详细介绍。
• 既是运行期又是设计期的包,这种包结合了上述两种类型。创建这种类型的包使得应用程序的
开发和分发变得简单,但这种类型的包的效率不是很高,因为它在分发版本中携带太多支持设
计的内容。
• 既不是运行期又不是设计期的包,这种类型的包很少见,通常被其他包引用,而不是直接被应
用程序引用。