Цитата(Нитонисе @ 12.8.2012, 15:20) | volvo877, ваш код не переключает кнопки.
Добавлено @ 15:30 Вот нашел немного извратный способ.
Код | TNotifyEvent cl = RadioButton1->OnClick; RadioButton1->OnClick = NULL; RadioButton1>Checked = true; RadioButton1->OnClick = cl;
|
Работает, пока буду это использовать... |
На самом деле всё гораздо проще. У меня тоже возникла потребность в снятии Checked с RadioButton (он открывал новую форму, а в её методе OnClose() висело FormShow() исходной формы, и когда возвращалось управление этой форме - дебаг прыгал на FormActivate, после которого checked выбранного радиобаттона срабатывал, даже с добавлением этого кода, что вы привели). Вся проблема в том, что когда вы снимаете checked, у Radiobutton остаётся фокус нажатия, поэтому нужно снимать и его:
Код | TNotifyEvent cl = Form1->RadioButton1->OnClick; Form1->RadioButton1->OnClick = NULL; Form1->RadioButton1->Checked = false; //принудительное снятие выбора с радиобаттон в обход OnClick Form1->RadioButton1->OnClick = cl; Form1->DefocusControl(Form1->RadioButton1, 0); //снятие фокуса
|
или что ещё проще, т.к. дебаг показывает аналогичное поведение, а кода меньше:
Код | Form1->RadioButton1->Checked = false; Form1->DefocusControl(Form1->RadioButton1, 0);
|
|