从Object Inspector中删除属性

时间:2015-11-25 18:00:20

标签: delphi delphi-10-seattle

我购买了TMS组件包,并希望隐藏一些组件属性,使其不显示在对象检查器中。

我正在使用UnlistPublishedProperty隐藏它们。

大部分时间都有效。但出于某种原因,例如仍会显示AnchorsStyleSettings

我这样称呼它:

  UnlistPublishedProperty(TAdvEdit, 'StyleElements');

奇怪的是,它适用于90%的属性,我无法弄清楚为什么它不会隐藏对象检查器中的其他属性。

我可以编辑源代码并注释掉它从TCustomEdit发布的行,但我想知道为什么UnlistPublishedProperty的方法不起作用。

谢谢!

2 个答案:

答案 0 :(得分:1)

您尝试删除的属性是从更高的祖先类继承的。如果您希望使用UnlistPublishedProperty删除这些特定属性,则必须将其从祖先中删除。但是,这适用于所有控件,而不仅仅是您正在处理的控件。

答案 1 :(得分:0)

除了杰里的回答;有一个从子组件中删除属性的解决方案。 my answer here的第三部分演示了如何通过注册组件PropertyEditor并覆盖GetProperties来过滤特定属性名称来过滤掉自定义组件的子组件的属性。