Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2011, 17:26   #1
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
Вопрос RadioButton простые вопросы

Здравствуйте!

Пара вопросов по RadioButton.
1. Есть ли автосвязанные батоны, когда добавив хоть 100 штук на форму - автоматически контролируется, что выбранным может быть только один батон?
2. Если нужно не только выбрать лишь один из вариантов, но и скрыть все неактуальные для данного варианта поля ввода - есть ли что-то более автоматизированное, чем радио батоны? (типа вкладок с ограничением выбора одной вкладки, или тп)
3. Как наиболее кратко написать аналогичное действие на радио батон для скрытия полей?
Я пишу так, но утомляет кол-вом строк
EditField1.Enabled := rb1.Checked;
EditField2.Enabled := rb1.Checked;
EditField3.Enabled := rb1.Checked;
Можно ли это как-то в одну строку? типа [EditField1,EditField2,EditField3].Enabled := rb1.Checked; ?
4. Также что-то не могу понять как написать обращение boolean переменной? То есть если "a :=true", как "b" присвоить значение обратное "a", то есть false в одну строку?

Последний раз редактировалось delphicoding; 21.07.2011 в 17:46.
delphicoding вне форума Ответить с цитированием
Старый 21.07.2011, 19:18   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

1) Используй TRadioGroup
2) Так понимаю нужен TPageControl
3) Создай функцию наподобие SetState(const Value: Boolean); в ней перечисли нужные тебе контролы и присвой каждому состояние EditField1.Enabled := Value; и т.д., а затем вызывай функцию SetState(rb1.Checked); ... как-то так, если правильно понял что нужно....
4)
Код:
a :=true;
b :=not a;
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 21.07.2011, 20:30   #3
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

2 - разве соотносится с 1 ? То есть можно разве как-то сделать, чтобы при выборе радио батона 1 или 2 блокировался другой Page2 или Page1 ??
3 - вряд-ли, да и разницы с массивом нет
4 - круто! спасибо!
delphicoding вне форума Ответить с цитированием
Старый 21.07.2011, 20:53   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
скрыть все неактуальные для данного варианта поля ввода
Цитата:
типа вкладок с ограничением выбора одной вкладки
А причем тут вкладки? Выбрал вариант (радиобаттон) и открылась нужная вкладка?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 21.07.2011, 21:07   #5
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Просто как вариант, чтобы не перечислять все поля ввода в коде и не обрабатывать их все, чтобы при выборе радио батона вся вкладка блокировалась вместе со всем содержимым.

Кстати, подскажите, пожалуйста, для ряда объектов, например TDBEdit, TJvDBSpinEdit, TJvDBComboBox, идр, не подходит строка вида:
TDBEdit1.Value=null;
Как правильно очищать такие объекты от значений?
delphicoding вне форума Ответить с цитированием
Старый 22.07.2011, 11:52   #6
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Как правильно и желательно универсально очищать объекты текстового ввода и выпадающие списки от вписанных или выбранных значений?

За пост, подобный тому, что был ниже в следующий раз влеплю горчичник. Модератор.

Последний раз редактировалось Баламут; 22.07.2011 в 13:15.
delphicoding вне форума Ответить с цитированием
Старый 22.07.2011, 13:29   #7
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Массив тоже не прокатил, тк у некоторых полей очищение = Clear, а у других очищение = ClearValue. Идиоты, не могут стандарт сделать.

Нашёл вариант намного проще. Нужно просто группировать поля на одну Tpanel - которую можно сделать недоступной или вообще скрыть. Всё действие в одну строку - Tpanel.Visible := False.

Но это только блокирует (Enable) или скрывает (Visible), но не очищает поля...

Может есть функция "очистить все поля на панели Tpanel" ? Или типа того?

Последний раз редактировалось delphicoding; 22.07.2011 в 13:36.
delphicoding вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RadioButton 29_kapaT Компоненты Delphi 1 10.05.2010 03:30
radiobutton xxxn00bxxx Общие вопросы C/C++ 8 25.02.2010 08:06
radiobutton Bon'ka Компоненты Delphi 4 16.05.2009 21:56
RadioButton Pavelok Общие вопросы Delphi 3 14.05.2009 14:05
Простые вопросы по C++ ERASERROR Помощь студентам 3 24.03.2008 16:58