将TRadioButton设置为checked会导致OnClick事件

Tom*_*Tom 4 delphi

mybox.Checked := true;
Run Code Online (Sandbox Code Playgroud)

将TRadioButton设置为选中(通过代码)会导致调用OnClick事件处理程序.

如何识别用户是否通过GUI交互进行状态更改

klu*_*udg 11

您可以在以编程方式更改radiobutton状态时使OnClick事件处理程序无效:

procedure TForm1.Button6Click(Sender: TObject);
var
  Save: TNotifyEvent;

begin
  Save:= RadioButton2.OnClick;
  RadioButton2.OnClick:= nil;
  RadioButton2.Checked:= not RadioButton2.Checked;
  RadioButton2.OnClick:= Save;
end;
Run Code Online (Sandbox Code Playgroud)

  • 理想情况下,如果在`OnClick:= nil`和`OnClick:= Save;之间存在任何更复杂的逻辑,你应该将它包装在try..finally中. (2认同)