我在使 TToolbar 按钮显示为“启用”时遇到问题
该按钮分配有一个操作 - 由 OnClick 事件触发
它还设置了一个下拉菜单,其中有 2 个选项,这两个选项均已启用,并且单击时都会触发。
尽管如此,TToolbar 按钮始终保持灰色,但接受点击。
有什么建议吗?
你做错事了。 :-)
使用操作时,您不使用按钮的
OnClick
事件 - 而是将代码放入操作的 OnExecute
事件中(因为这是正在执行的操作 - 而不是按钮)。将操作分配给控件后,只有存在 TAction.OnExecute
的处理程序才能启用该控件。
使用操作的原因是,您可以将代码放在一个位置(与操作相关的事件),然后附加到该操作的每个控件都使用该通用代码来执行相同的功能。在该单个位置编辑代码意味着附加到该操作的所有控件都会看到相同的更改。
如果
TAction.OnExecute
事件没有附加任何内容,则该控件在被选择(单击)时不会执行任何操作,因此没有理由首先启用它。
万一其他人遇到这个问题,我刚刚遇到了这个问题(使用 Delphi 10.2 Tokyo)。
由于某种原因,TToolButton 上的“EnableDropdown”属性设置为 true 时导致按钮灰显。将此属性设置为 false 似乎已经解决了我的问题(无论如何,下拉菜单仍然有效)。
对我来说,正是“不确定”属性为“True”导致了这种恼人的效果