当我通过将连接的 TAction 设置为不可见使组件不可见时,onupdate 事件将不再触发。要重新创建,请执行以下操作。
- 创建一个新的 VCL 表单应用程序
- 在表单上放置一个按钮、一个复选框和一个操作列表。
- 创建一个新动作,并将按钮连接到它。
为操作 OnExecute 和 OnUpdate 事件编写以下代码:
procedure TForm1.Action1Execute(Sender: TObject); begin ShowMessage('Test'); end; procedure TForm1.Action1Update(Sender: TObject); begin TAction(Sender).Enabled := not CheckBox1.Checked; TAction(Sender).Visible := TAction(Sender).Enabled; end;
运行应用程序。该按钮是可见的,并且可以正常工作。选中复选框,按钮消失。取消选中复选框。按钮不出现。事实上,如果您在 Action1Update 中放置断点,您将永远无法到达它。为什么会这样,我该如何解决?