我正在尝试将新属性(图片:TImageList)添加到TMS控件“TAdvSmoothDock”,但该属性未出现在对象检查器中
我在“已发布”下定义如下:
Published
property Images: TImageList read GetImages write SetImages;
我可以编译它,但该属性不会出现在Object Inspector中。 在代码中使用控件时,它确实出现在delphi IDE中:
喜欢:
AdvSmoothDock1.Images := ImageList1;
目前我正在使用Delphi XE2 VCL。
问候。
答案 0 :(得分:4)
您需要重建包含该组件的TMS包,而不仅仅是更改源代码。
Object Inspector不使用代码源来确定要显示的内容。它使用RTTI(运行时类型信息),它从包含组件的运行时包中的编译版本获取(如果没有可用的运行时包,则使用设计时包。
找出TMS组件所在的包,在IDE中打开该包的源(包的.dproj文件),然后构建该包。确保它看到的是您的源版本而不是正常的TMS版本,因此您的更改将被使用。
(当然,正确这样做的方法是创建自己的TAdvSmoothDock后代,添加属性,将其放入您自己的使用TMS的包中,从不触摸TMS源代码。)