|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проверка (True or False for CheckBox)
Народ, как программно решить следующую задачу: Имеется 2 чекбокса. В случае если свойство одного из чекбоксов - Checked становиться равным True, то при повторном нажатии оставить прежнее состояние (то есть не выполнять Checked = False, (здесь же имееть ввиду то что при повторном нажатии не должны инициироваться никае действия выполняемые при Checked = True - они должны выполняться единожды при первоначальном назначении флага True)).
|
#2
|
|||
|
|||
Sorry за предыдущий мой вопрос это я видимо к вечеру тупить начинаю. Все как оказалось довольно легко. Я по началу просто перепутал некоторые обработчики
Теперь все выглядит как надо: procedure TForm1.MoveCheck(Sender: TObject); var i: Integer; begin for i := 0 to ControlCount - 1 do if (Controls[i] is TCheckBox) and (Components[i] <> Sender) and ((Sender as TCheckBox).State = cbChecked) then (Components[i] as TCheckBox).Checked := False; end; procedure TForm1.MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); // Общий обработчик OnMouseUp begin if (Sender as TCheckBox).Checked then (Sender as TCheckBox).Checked := True; else (Sender as TCheckBox).Checked := not (Sender as TCheckBox).Checked; end; |