Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
ВнизCheckBox Найти похожие ветки
← →
Fostr (2006-10-05 11:26) [0]Господа! Есть четыре CheckBox-а (B1, B2, B3, B4 : TCheckBox). Стоит задача следующая:
При нажатии на B1 значения B2, B3 и B4 (независимо от их текущего состояния) должны стать Checked=True если B1 стал Checked=True и False, если B1 стал False. ЭТА ЗАДАЧА В НАСТОЯЩИЙ МОМЕНТ РЕШЕНА, но пользователю так же дается возможность присваивать (то есть, кончено, кликать по ним) B2, B3, B4 в состояние Checked=True или False.
При этом нужно что бы при кликании по какаому-то из указанных CheckBox-ов проверялось, выбраны ли B2, B3, B4 в состояние Checked=True или False. В первом случае автоматически B1 должен переключиться в состояние Checked=True, во втором - Checked=False.
Прошу подсказать как это реализовать. Простая проверка
If (B2.Checked=True) and (B3.Checked=True) and (B4.Checked=True) then
(B1.Checked:=True) не дает желаемогло результата, так как при присваивании B1 состояние Ckecked= True срабатывает событие OnClick для B1 и выбираются все CheckBox-ы.
← →
Sergey13 © (2006-10-05 11:37) [1]Я запутался. 8-)
1. Делай все в одном обработчике на все боксы.
2. Писать If (B2.Checked=True) не стоит достаточно просто If B2.Checked
← →
clickmaker © (2006-10-05 11:38) [2]CheckBox1.OnClick := nil;
if CheckBox2.Checked and CheckBox3.Checked and CheckBox4.Checked then
CheckBox1.Checked := true
else if not (CheckBox2.Checked or CheckBox3.Checked or CheckBox4.Checked) then
CheckBox1.Checked := false;
CheckBox1.OnClick := CheckBox1Click;
← →
Fostr (2006-10-05 11:45) [3]Всем спасибо большое! Буду реализовывать ваши советы!
← →
Ketmar © (2006-10-05 16:38) [4]я в словесное описание "не въехал". ты думаешь, юзер "въедет" в подобную логику?
← →
Fostr (2006-10-05 18:22) [5]Юзер не должен в нее "въезжать". Согласен, словесное описание хреновое...
Юзер может жать либо на B2, либо на B3, либо на B4. Если после нажатия юзера на какой-то из этих Checkbox все три (B2, B3, B4) "встают" в состояние Checked, то B1 автоматом (без вмешательства юзера) должен "встать" в состояние Checked. И наоборот, если все три (B2, B3, B4) "встают" в состояние Not Checked, то B1 автоматом (без вмешательства юзера) должен "встать" в состояние Not Checked.
← →
Fostr (2006-10-05 18:24) [6]Слово "встают" читать "оказываются" в состоянии... так более правильно.
← →
Ketmar © (2006-10-05 18:32) [7]а может, всё-таки переделать интерфейс? если я правильно понял, то обычно такое далется, например, при помощи запрещения всех checkbox"ов, если b1 не отмечен. имо, это более понятно и нормально, нежели самопроизвольно меняющийся checkbox.
← →
Fostr (2006-10-05 18:35) [8]Хм.. не подумал об этом - отличная мысль, так и сделаю! А в принцыпе, то, что я описывал выше реально сделать? (Так, на будущее)
← →
Ketmar © (2006-10-05 20:22) [9]>[8] Fostr 5-Oct-2006, 18:35
>А в принцыпе, то, что я описывал выше
>реально сделать? (Так, на будущее)
в принципе -- реально сделать почти всё. вопрос в целесообразности. %-)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c