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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2017, 10:09   #1
Stepan_P
Пользователь
 
Регистрация: 17.12.2015
Сообщений: 14
По умолчанию Использование ComboBox и RadioGroup

Доброго времени суток!
Нужна помощь людей разбирающихся в Delphi. Задачка такова: на одной форме имеются компоненты RadioGroup и ComboBox. Нужно запрограммировать RadioGroup таким образом, чтобы при выборе, например, 1-го из них (Корпус А) были недоступны оставшиеся ComboBox, кроме расположенного прямо напротив RadioGroup "Корпус А" Подскажите пожалуйта, как это записать на Delphi? Сам в Delphi новичок и найти что-то подобное не удалось
Спасибо
Изображения
Тип файла: jpg Снимок.JPG (25.8 Кб, 77 просмотров)

Последний раз редактировалось Stepan_P; 16.05.2017 в 10:45.
Stepan_P вне форума Ответить с цитированием
Старый 16.05.2017, 11:03   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Размести комбобоксы в одном контейнере, например панели Panel1, сбрось доступность каждого из них в False, в свойство Tag помести 0, 1, 2 и 3 сверху вниз. И такой обработчик для клика на радиогруппе
Код:
procedure TForm1.RadioGroup1Click(Sender: TObject);
var i: Integer;
begin
  for i:=0 to Panel1.ControlCount - 1 do
    if Panel1.Controls[i] is TComboBox then Panel1.Controls[i].Enabled:=(Panel1.Controls[i].Tag=RadioGroup1.ItemIndex);
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.05.2017, 11:07   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Наверно, так : при выборе, к примеру, Корпус А
Код:
ComboBox1.Enabled := True ;
ComboBox2.Enabled := False ; ...  и т.п.
Это без цикла - если их немного и число их не будет меняться динамически в процессе работы.
digitalis вне форума Ответить с цитированием
Старый 16.05.2017, 11:16   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Это без цикла
Как-то по пионерски )) Тогда уж так без цикла
Код:
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  ComboBox1.Enabled:=(RadioGroup1.ItemIndex=0);
  ComboBox2.Enabled:=(RadioGroup1.ItemIndex=1);
  ComboBox3.Enabled:=(RadioGroup1.ItemIndex=2);
  ComboBox4.Enabled:=(RadioGroup1.ItemIndex=3);
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.05.2017, 11:24   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Я бы сделал так

1) Процедур
Код:
  private
    { Private declarations }
     procedure ComboSelect;
2) тела это процедур
Код:
procedure TForm1.ComboSelect;
begin
  if (RadioButton1.Checked)   then
  begin
   ComboBox1.Enabled := true;
   ComboBox1.SetFocus;
   ComboBox2.Enabled := false;
   ComboBox3.Enabled := False;
   ComboBox4.Enabled := False;
  end
  else
  if (RadioButton2.Checked) then
  begin
   ComboBox1.Enabled := False;
   ComboBox2.Enabled := true;
   ComboBox2.SetFocus;
   ComboBox3.Enabled := False;
   ComboBox4.Enabled := False;
  end
  else
  if (RadioButton3.Checked) then
  begin
   ComboBox3.Enabled := true;
   ComboBox3.SetFocus;
   ComboBox1.Enabled := false;
   ComboBox2.Enabled := false;
   ComboBox4.Enabled := False;
  end
  else
  if (RadioButton4.Checked) then
  begin
   ComboBox4.Enabled := True;
   ComboBox4.SetFocus;
   ComboBox1.Enabled := false;
   ComboBox2.Enabled := false;
   ComboBox3.Enabled := False;
  end
end;
3) Вызиваю эту процедур на все RadioButton --OnClick
Вложения
Тип файла: rar RadioSelect.rar (167.8 Кб, 5 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 16.05.2017, 11:29   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Тоже по пионерски ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 16.05.2017, 11:32   #7
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Тоже по пионерски ))
Быть пионером это ещё "достижения" )
xxbesoxx вне форума Ответить с цитированием
Старый 16.05.2017, 12:23   #8
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Аватар - cнимаю шляпу... Код значительно красивше моего.
Карги арис, генацвале ?
digitalis вне форума Ответить с цитированием
Старый 16.05.2017, 12:48   #9
Stepan_P
Пользователь
 
Регистрация: 17.12.2015
Сообщений: 14
По умолчанию

Аватар, спасибо. Все получилось!

P. S. Остальным тоже спасибо
Stepan_P вне форума Ответить с цитированием
Старый 16.05.2017, 13:01   #10
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Карги арис, генацвале ?
Да генацвале, можно снять шляпу! Но не забывайте одевать каску... Ж))) всё нормально.
xxbesoxx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование меню "Удалить","Вставить","Вырезать" в combobox Александр1459 C++ Builder 7 07.05.2016 19:57
Combobox и таблицы SQL (Delphi. Использование связанных DBLookupComboBox ) Максим1818 Помощь студентам 51 12.02.2014 08:59
Использование события OnChange ComboBox Lyubimov Помощь студентам 2 19.04.2011 15:46
Webbrowser и combobox: сделать чтобы в combobox-е оставалась история посещенных сайтов uasya2 Общие вопросы Delphi 6 06.03.2011 20:24
Использование ComboBox Василь Microsoft Office Excel 11 24.04.2009 17:16