Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
3-1156277627
иван8511
2006-08-23 00:13
2006.10.22
Фильтр для символов


15-1159783478
Slider007
2006-10-02 14:04
2006.10.22
С днем рождения ! 1 октября


15-1159431050
euru
2006-09-28 12:10
2006.10.22
Веб-дизайн


2-1160276062
m-kirill-2003
2006-10-08 06:54
2006.10.22
Кнопка на новую форму.


6-1148550756
борменталь
2006-05-25 13:52
2006.10.22
широковещательные сообщения