delphi – 为什么在选择多个项目时会从Object Inspector中隐藏某
我注意到在选择多个项目时,一些属性会从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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |