Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1159620235
Сатир
2006-09-30 16:43
2006.10.22
Пересылка сообщения на мобильник посредством Bluetooth


3-1156168884
Bless
2006-08-21 18:01
2006.10.22
ADO и обрыв соединения с SQL-сервером


15-1159866468
VitV
2006-10-03 13:07
2006.10.22
Посоветуйте програму.


2-1159966585
WoW
2006-10-04 16:56
2006.10.22
Указатели....


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский