L
lewolf
Unregistered / Unconfirmed
GUEST, unregistred user!
VCL组件的库包BPL文件(Borland Package Library)是否能够向ActiveX一样,
在脱离任何辅助文件的情况下使用?也就是在没有相关的.h、.bpi和.lib等文
件的支持下,是否也能使用,答案是肯定的,甚至是不在IDE中也能够载入bpl
并创建其中的对象和使用之,作个简单的试验便知道,编制一个包含任意用户
组件的bpl,然后复制到另一个与之无关的C++ Builder环境中,IDE能够载入,
并且能够创建设计时对象,修改属性,但是程序不能编译通过,因为编译器需
要关于组件的预定义头文件。因此可以肯定bpl文件本身是完整的,它包含了所
有运行时需要的信息。
既然IDE可以载入并使用任意的bpl,那么用户也就可以设计一个程序动态的载
入并使用bpl库包。不幸的是Borland公司并没有公开这些信息和使用方法,即
便是在联机帮助中,也只是指出ClassInfo是共内部使用的……本程序是一个简
单的尝试,程序可以将任意的bpl载入并获取相关的ClassInfo,但并没有实现
从获取的ClassInfo中动态创建对象的功能。
最新的版本可以将任意用户使用C++ Builder5创建的pbl文件加载,并能够根据
pbl中的VCL信息动态创建对象,还没有提交,正在修改。
下载地址:http://www.csdn.net/cnshare/soft/16/16244.shtm
源代码只有400多行,一并提供。
新的版本也已经提交,为Build 0.002 代码1000多行,估计明天一早就可以在csdn下载。
各位网友,“VCL揭密”第二版“Build 0.002--看起来有点象C++ Builder”,已经提交,估计明天就可以下载。
在新的 Build 0.002 中:
实现了动态创建bpl中的VCL组件对象(以汇编实现) .
增加了About对话框。
扩展了 TClassCreateInfo 类用于记录注册的VCL组件信息
增加了编辑窗体,一个类似C++ Builder中的设计Form,有网格,可以将对象放在上面。
增加了用于观察被选择控件的Object Inspector,没有将属性编辑器注册,不能观察对象属性和事件的取值。
增加了修改对象ComponentState属性的方法(使用汇编实现)。
增加了选择动态创建对象的能力
可以使用鼠标拖动被选中的对象的属性控制点,来改变被选中对象的大小和位置等
It Just Looked Like C++ Builder。
在脱离任何辅助文件的情况下使用?也就是在没有相关的.h、.bpi和.lib等文
件的支持下,是否也能使用,答案是肯定的,甚至是不在IDE中也能够载入bpl
并创建其中的对象和使用之,作个简单的试验便知道,编制一个包含任意用户
组件的bpl,然后复制到另一个与之无关的C++ Builder环境中,IDE能够载入,
并且能够创建设计时对象,修改属性,但是程序不能编译通过,因为编译器需
要关于组件的预定义头文件。因此可以肯定bpl文件本身是完整的,它包含了所
有运行时需要的信息。
既然IDE可以载入并使用任意的bpl,那么用户也就可以设计一个程序动态的载
入并使用bpl库包。不幸的是Borland公司并没有公开这些信息和使用方法,即
便是在联机帮助中,也只是指出ClassInfo是共内部使用的……本程序是一个简
单的尝试,程序可以将任意的bpl载入并获取相关的ClassInfo,但并没有实现
从获取的ClassInfo中动态创建对象的功能。
最新的版本可以将任意用户使用C++ Builder5创建的pbl文件加载,并能够根据
pbl中的VCL信息动态创建对象,还没有提交,正在修改。
下载地址:http://www.csdn.net/cnshare/soft/16/16244.shtm
源代码只有400多行,一并提供。
新的版本也已经提交,为Build 0.002 代码1000多行,估计明天一早就可以在csdn下载。
各位网友,“VCL揭密”第二版“Build 0.002--看起来有点象C++ Builder”,已经提交,估计明天就可以下载。
在新的 Build 0.002 中:
实现了动态创建bpl中的VCL组件对象(以汇编实现) .
增加了About对话框。
扩展了 TClassCreateInfo 类用于记录注册的VCL组件信息
增加了编辑窗体,一个类似C++ Builder中的设计Form,有网格,可以将对象放在上面。
增加了用于观察被选择控件的Object Inspector,没有将属性编辑器注册,不能观察对象属性和事件的取值。
增加了修改对象ComponentState属性的方法(使用汇编实现)。
增加了选择动态创建对象的能力
可以使用鼠标拖动被选中的对象的属性控制点,来改变被选中对象的大小和位置等
It Just Looked Like C++ Builder。