gpt4 book ai didi

Delphi: Hook ToggleSwitch 手动状态更改以避免 Click 调用

转载 作者:行者123 更新时间:2023-12-02 03:03:44 31 4
gpt4 key购买 nike

德尔福里约10.3.2

使用 TToggleSwitch 组件,当您手动更改 State 属性时,即

ToggleSwitch1.State := tssOff 

调用 OnClick 事件。我怎样才能防止这种情况发生?

最佳答案

您有几个选择:

  • 在设置State之前将OnClick属性设置为nil,然后恢复事件处理程序。

    ToggleSwitch1.OnClick := nil;
    try
    ToggleSwitch1.State := ...;
    finally
    ToggleSwitch1.OnClick := ToggleSwitch1Click;
    end;
  • 在设置State之前设置一个标志,然后清除该标志,并让OnClick事件处理程序在执行任何操作之前检查该标志。

    ToggleSwitch1.Tag := 1;
    try
    ToggleSwitch1.State := ...;
    finally
    ToggleSwitch1.Tag := 0;
    end;

    procedure TMyForm.ToggleSwitch1Click(Sender: TObject);
    begin
    if ToggleSwitch1.Tag <> 0 then Exit;
    ...
    end;
  • 使用访问器类来访问 protected FClicksDisabled成员,以便您可以在更改 State 时临时将其设置为 True:

    type
    TToggleSwitchAccess = class(TToggleSwitch)
    end;

    TToggleSwitchAccess(ToggleSwitch1).FClicksDisabled := True;
    try
    ToggleSwitch1.State := ...;
    finally
    TToggleSwitchAccess(ToggleSwitch1).FClicksDisabled := False;
    end;

关于Delphi: Hook ToggleSwitch 手动状态更改以避免 Click 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57486225/

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