У меня есть две радиокнопки rdoA & rdoB. Мое требование - каждый раз, когда пользователь щелкает rdoA, я должен проверять определенные параметры, и если они не удовлетворяются, верните выделение в rdoB. У меня есть код, как этотВыбор другой радиокнопки внутри события OnClick
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 запускается снова.
Что я здесь делаю неправильно? Есть ли лучший способ решить эту проблему? Любая помощь будет оценена.
Можно ли проверить состояние в другом месте (когда произойдет какое-то событие) и отключить переключатель? – MBo
Да, почему вы разрешаете пользователю нажимать? –
* «Если я переключу фокус окна и вернусь к форме, событие rdoAClick будет запущено снова». * Может быть связано с этим: [Скрытые опасности TradioButton.TabStop] (http://blogs.teamb.com)/craigstuntz/2009/02/02/37987 /) и это: [RadioGroup.TabStop не контролирует, получают ли радиокнопки фокус] (http://qc.embarcadero.com/wc/qcmain.aspx?d=1860) , Это просто причуда в том, как RadioGroups обрабатывают фокус ввода. –