gpt4 book ai didi

delphi - 为什么不为不可见组件触发 OnUpdate

转载 作者:行者123 更新时间:2023-12-03 18:23:58 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How can I use an action to determine a control's visibility?

(3 个回答)


7年前关闭。




当我通过将连接的 TAction 设置为不可见使组件不可见时,onupdate 事件将不再触发。要重新创建,请执行以下操作。

  • 创建一个新的 VCL 表单应用程序
  • 在表单上放置一个按钮、一个复选框和一个操作列表。
  • 创建一个新 Action ,并将按钮连接到它。
  • 为操作 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 中放置断点,您将永远无法到达它。为什么会这样,我该如何解决?

    最佳答案

    无需解决此问题,它按设计工作。只有可见控件需要更新其状态,因此只有链接控件可见的操作才会更新。当您隐藏按钮时,没有更多理由更新操作。

    关于delphi - 为什么不为不可见组件触发 OnUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8447127/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com