TToolButton的AllowAllUp属性不起作用

时间:2016-03-09 08:46:57

标签: delphi delphi-xe5

我正在使用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属性正常工作?

1 个答案:

答案 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

完成此操作后,您可以相互独立地选中和取消选中按钮。