我购买了TMS组件包,并希望隐藏一些组件属性,使其不显示在对象检查器中。
我正在使用UnlistPublishedProperty
隐藏它们。
大部分时间都有效。但出于某种原因,例如仍会显示Anchors
或StyleSettings
。
我这样称呼它:
UnlistPublishedProperty(TAdvEdit, 'StyleElements');
奇怪的是,它适用于90%的属性,我无法弄清楚为什么它不会隐藏对象检查器中的其他属性。
我可以编辑源代码并注释掉它从TCustomEdit发布的行,但我想知道为什么UnlistPublishedProperty
的方法不起作用。
谢谢!
答案 0 :(得分:1)
您尝试删除的属性是从更高的祖先类继承的。如果您希望使用UnlistPublishedProperty
删除这些特定属性,则必须将其从祖先中删除。但是,这适用于所有控件,而不仅仅是您正在处理的控件。
答案 1 :(得分:0)
除了杰里的回答;有一个从子组件中删除属性的解决方案。 my answer here的第三部分演示了如何通过注册组件PropertyEditor并覆盖GetProperties
来过滤特定属性名称来过滤掉自定义组件的子组件的属性。