Главная страница
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.034 c
15-1159711479
alexsis
2006-10-01 18:04
2006.10.22
ЧТо такое ???


15-1159531000
BOA_KAA
2006-09-29 15:56
2006.10.22
Может, кто видел....


15-1159453810
Орион
2006-09-28 18:30
2006.10.22
Информационный объем фразы


3-1156234898
samone
2006-08-22 12:21
2006.10.22
Управление сервером


3-1156167774
Ольга
2006-08-21 17:42
2006.10.22
Удаление данных из таблицы с подзапросом