gpt4 book ai didi

delphi - 当选择多个项目时,为什么某些属性在对象检查器中隐藏?

转载 作者:行者123 更新时间:2023-12-03 15:07:26 25 4
gpt4 key购买 nike

我注意到,当选择多个项目时,某些属性会从对象检查器中消失。

为什么会发生这种情况以及在创建组件时如何控制这种行为?

示例:

向表单添加 2 个按钮 (TButton) 并选择其中一个。

enter image description here

对象检查器中,您可以看到所有TButton的已发布属性(请注意,还有Constraints属性)。

enter image description here

将另一个按钮添加到当前选择(按 Shift 键的同时单击)。

enter image description here

正如您所看到的,一些属性已从对象检查器中隐藏(请注意,约束不再可见)。

enter image description here

最佳答案

选择多个对象时是否显示某个属性由为该属性配置的属性编辑器控制。属性编辑器(源自 DesignEditors.pas 中的 TPropertyEditor)有一个 GetAttributes 方法,该方法返回一组适用于编辑器的属性。如果该集合包含 paMultiSelect,则将显示该属性。

鉴于属性值显示为约束值,而不仅仅是(TSizeConstraints),我得出结论,该属性没有使用通用的 TClassProperty 编辑器。该编辑器设置了 paMultiSelect,但根据您的图片,属性编辑器设置为 TSizeConstraints 却没有。这可能是一个疏忽。

您可以尝试注册自己的属性编辑器。查找当前为 TSizeConstraints 注册的属性编辑器(例如,通过搜索 TSizeConstraints 的源代码),并在设计时包中声明一个派生自该属性的新类一。重写GetAttributes以返回您需要的值。最后,按照代码中其他地方的示例调用 RegisterPropertyEditor

关于delphi - 当选择多个项目时,为什么某些属性在对象检查器中隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40612848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com