读书人

invalid property path是咋回事

发布时间: 2012-04-28 11:49:53 作者: rapoo

invalid property path是怎么回事
我自己写了个控件,编译安装没问题,但在测试程序的表单添加该控件也没问题,这个控件我有个bitmap属性,如果在设计期给定位图,则运行时就报“invalid property path”,实际上在运行时在构造这个控件的时候就报错了,请大虾指导。

[解决办法]
差不多和这个函数有关,这个函数在写组件的时候很主要,虽然写部分组件用不到这个函数
virtual void __fastcall Notification(TComponent *AComponent, TOperation Operation);

还有你这个bitmap是路径还是一个bitmap资源???
SetBitmap的时候可能把图像没有写入.dfm文件里面,我记得有相关的函数,不过忘了,半年多没用cb了。

// 如果组件在设计期,这个在编写组件的时候也经常用到
ComponentState.Contains(csDesigning)
[解决办法]
在控件构造函数里添加 bitmap = new Graphics::TBitmap();

如果bitmap __published了,并且要在设计期赋值(理论上你的控件既然这么设计肯定是不应阻止这种需求),就必须在控件构造函数中就 new好 bitmap实例(不需加载图片),而不是到赋值的时候再分配。

另外某些类型如果__published了,不管你需不需要在设计期赋都需要在构造时候实例化,因为IDE属性编辑器也是可能需要读取属性并做相应处理的。

读书人网 >C++ Builder

热点推荐