繁体   English   中英

在OnClick事件中选择另一个单选按钮

[英]Selecting another radio button inside OnClick event

我有两个单选按钮rdoA和rdoB。 我的要求是,每当用户单击rdoA时,我都必须检查某些参数,如果不满意,请将选择还原为rdoB。 我有这样的代码

MyForm.rdoAClick
var
  Save: TNotifyEvent;
begin
 if //some condition then
 begin
     Save := rdoB.OnClick;
     rdoB.OnClick := nil;
     rdoB.Checked := true;
     rdoB.OnClick := Save;
     Exit;
 End;
 //Other stuff
End;

问题是此代码有效,但是在某些情况下,当已经选择rdoB时,如果将其更改为rdoA,并且条件满足rdoB的情况又被选择,并且如果我切换窗口的焦点并返回到形式rdoAClick事件,则是这样再次触发。

我在这里做错了什么? 有没有更好的方法来解决这个问题? 任何帮助将不胜感激。

我曾经遇到过类似的问题,并且发现解决方案要适应您的代码

procedure TForm6.rdoAClick(Sender: TObject);
var
  save: TNotifyEvent;
begin
  if MessageDlg('Allow change?',mtConfirmation, [mbYes,mbNo],0) = mrNo then
  begin
    save := rdoB.OnClick;
    rdoB.OnClick := nil;
    rdoB.SetFocus;
//    rdoB.Checked := True;
    rdoB.OnClick := save;
  end;
end;

设置焦点而不是“已检查”(由于设置了“焦点”而已设置),以确保RadioButton处于正确的内部状态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM