我正在使用Delphi XE5。
我正在尝试按照Delphi对TToolButton组件的帮助进行锻炼。
Delphi帮助说TToolButton.AllowAllUp属性:
指示是否可以同时取消选中组中的所有工具按钮。
如果AllowAllUp设置为true,则可以取消选择组中的所有工具按钮。如果AllowAllUp设置为false,则必须随时选择组中的至少一个工具按钮。 (通过将其Down属性设置为true,确定最初选择的工具按钮。)
仅当Grouped为true且Style设置为tbsCheck时,AllowAllUp才有效。更改组中一个按钮的AllowAllUp值会自动更改组中所有按钮的值。
我所做的是在表格上放置了一个TToolBar,并在其中创建了三个TToolButtons。然后AllowAllUp和Grouped属性设置为True。另外,将Style属性设置为tbsCheck。
当我运行应用程序时,当我继续逐个单击所有按钮时,任何一个按钮都显示为已选中,如果我尝试选择或单击其他TToolButton,则前一个按钮将变为未选中状态。
如何让AllowAllUp属性正常工作?
答案 0 :(得分:4)
这些属性都按预期工作。您似乎误解了这些属性的意图。
Grouped
属性的文档说:
当不间断的相邻工具按钮序列各自将其Grouped属性设置为true且Style设置为tbsCheck时,则可以同时选择不超过一个按钮。
AllowAllUp
属性是相关的,如下所示:
指示是否可以取消选择组中的所有工具按钮 同时。
如果AllowAllUp设置为true,则组中的所有工具按钮都可以 未被选中。如果AllowAllUp设置为false,则至少有一个工具按钮 在组中必须随时选择。 (确定哪个工具 最初通过将其Down属性设置为true来选择按钮。)
仅当Grouped为true且Style设置为时,AllowAllUp才有效 tbsCheck。更改组中一个按钮的AllowAllUp值 自动更改组中所有按钮的值。
此属性仅在对按钮进行分组时产生影响,它的作用是控制是否可以按下零按钮。但是一旦你有按钮分组,任何时候都不能超过一个组。
您需要执行以下操作:
Grouped
设为False
。AllowAllUp
设置为False
,并非真正重要,但您也可以恢复默认值以避免混淆。tbsCheck
。完成此操作后,您可以相互独立地选中和取消选中按钮。