【发布时间】:2011-12-09 14:44:08
【问题描述】:
当我通过将连接的 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 中放置断点,您将永远无法到达它。为什么会这样,我该如何解决?
【问题讨论】:
-
stackoverflow.com/questions/10127685/…有更好的回答这个问题
标签: delphi tcheckbox tactionlist