Board logo

Subject: 从bpl中继承窗体并将bpl发布至Delphi IDE [Print This Page]

Author: gogogle    Time: 2008-6-5 01:20     Subject: 从bpl中继承窗体并将bpl发布至Delphi IDE

问题是这样的,我想用Delphi做一个分布式的系统,系统所有子模块全部采用bpl方式进行连接,所有子系统的窗体均从BaseForm.bpl中继承,但又遇到bpl封装窗体后在Delphi环境下又不能可可视化继承的问题,对于将此bpl分发给开发小组成员开发各自子系统时造成麻烦,所以想到Delphi专家工具,于是网上找了个Expert的例子ccpack50.bpl,通过ccpack50.bpl发布BaseForm.bpl到Delphi的IDE中,这样开发成员只需将ccpack50.bpl及BaseForm.bpl安装在自己的IDE中就可以可视货继承创建BaseForm.bpl中的窗体基类了,但创建时却报error creating form:Ancestor for 'TFrmAncesterTop' not found的错误(在BaseForm.dpk打开的情况下则不会报错,但打开dpk然后再继承创建则没有意义),实在找不出原因,还是烦请大师百忙之中抽空给予指点,附件里是这二个bpl的源码,修正后请发回邮件,我的邮箱:jxrichar@hotmail.com,谢谢!

Attachment: [baseform.bpl] BaseForm.rar (2008-6-5 01:20, 959.61 K) / Download count 2091
http://bbs.cnpack.org/attachment.php?aid=423
Author: jAmEs_    Time: 2008-6-5 09:20

你的'TFrmAncesterTop'没有注册吧,另外,bpl里面的Form不能带.dfm,只能用代码写的,参考http://www.2ccc.com/article.asp?articleid=4408里面的TntForm注册。
Author: gogogle    Time: 2008-6-5 11:37

谢谢,太感谢了!问题应该可以解决了!
Author: dejoy    Time: 2008-6-10 13:33

二楼的应该是正解了,每个窗体,每个类好像都要先注册
Author: gogogle    Time: 2008-8-18 13:13

jAmEs,你好,谢谢你的解答,可视化继承的问题解决了,但还有个问题搞了好多天还无法解决,就是我在父窗体内创建一些公共的控件,比如工具条等,发布至BPL专家包中,在Delphi环境下新增一此窗体,更改了公共控件的属性,并又在新窗体上加了几个新控件,保存后再次在Delphi环境中打开此窗体时报公共控件己经存在的错误,并且之前对公共控件更改的属性都还原了,增加的新控件也不见了,不知是何原因?但如果是在运行期调用此窗体却不会出错,但设置的属性和新增的控件同样也都不见了,BPL中窗体要如何创建公共控件并初始化才不会出现此种问题,望指教,将不胜感激!

[ 本帖最后由 gogogle 于 2008-8-18 13:17 编辑 ]
Author: lancechu    Time: 2012-2-2 23:15

请问你是如何解决的 Bpl继承窗体的问题?我也遇到了这个问题




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0