CnPack Forum » CnPack IDE 专家包(CnWizards) » 从bpl中继承窗体并将bpl发布至Delphi IDE


2008-6-5 01:20 gogogle
从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,谢谢!

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

2008-6-5 11:37 gogogle
谢谢,太感谢了!问题应该可以解决了!:handshake

2008-6-10 13:33 dejoy
二楼的应该是正解了,每个窗体,每个类好像都要先注册

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

[[i] 本帖最后由 gogogle 于 2008-8-18 13:17 编辑 [/i]]

2012-2-2 23:15 lancechu
请问你是如何解决的 Bpl继承窗体的问题?我也遇到了这个问题

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.