在 IDE 对象检查器中动态显示/隐藏属性?
Posted
技术标签:
【中文标题】在 IDE 对象检查器中动态显示/隐藏属性?【英文标题】:Dynamically show/hide properties in the IDE Object Inspector? 【发布时间】:2016-12-08 14:19:12 【问题描述】:我在使用 Delhpi 10 Seattle 时遇到了一个有趣的功能。在 Firedac 中,特别是 TFDConnection
组件中,Params
属性具有一些巫术魔法,可以动态显示和隐藏 IDE 中的属性,具体取决于另一个特定属性的值。 (我不知道自从我刚开始使用 Firedac 以来它已经可用了多久)。当您更改 TFDConnection.Params
中的 DriverID
属性时,Params
中的其余属性会显示在 IDE 对象检查器中,以便能够指定特定于驱动程序的属性。
现在我研究了它是如何工作的,它是一堆接口定义,源自IFDStanDefinition
。我不知道它是如何在 IDE 中实际执行的,除了 TStringList
涉及使用名称/值对功能。
我很想在我自己的组件中实现相同的功能,特别是TCollectionItem
有一个属性ActionType
,它是一个枚举类型。我想根据为该属性选择的值动态显示/隐藏属性。
如何在我自己的组件的集合项中实现在 IDE 对象检查器中显示/隐藏属性的相同功能?
在旁注中,恐怕部分答案是它需要所有字符串值,根据您如何通过代码与此 Params
属性进行交互来判断。
【问题讨论】:
【参考方案1】:编写一个属性编辑器并在GetAttributes 返回时包含paVolatileSubProperties 属性。剩下的就是释放旧的子属性实例,并用新的子属性替换(但它们可以是任何TPersistent 类的后代,因此它与字符串列表类无关)。
【讨论】:
如果需要,我可以包含示例。以上是关于在 IDE 对象检查器中动态显示/隐藏属性?的主要内容,如果未能解决你的问题,请参考以下文章
从设计器中隐藏 WPF 控件的属性 (Visual Studio 2010)