加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 为什么在选择多个项目时会从Object Inspector中隐藏某

发布时间:2020-12-15 04:14:31 所属栏目:大数据 来源:网络整理
导读:我注意到在选择多个项目时,一些属性会从Object Inspector中消失. 为什么会发生这种情况以及如何在创建组件时控制此行为? 例: 将2个按钮(TButton)添加到表单并选择其中一个. 在Object Inspector中,您可以看到所有TButton发布的属性(请注意,还有Constraints
我注意到在选择多个项目时,一些属性会从Object Inspector中消失.

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

例:

将2个按钮(TButton)添加到表单并选择其中一个.

在Object Inspector中,您可以看到所有TButton发布的属性(请注意,还有Constraints属性).

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

如您所见,Object Inspector中隐藏了一些属性(请注意,Constraints不再可见).

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读