Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
22 / 4 / 1
Регистрация: 25.03.2012
Сообщений: 199

Открытие той или иной формы в зависимости от выбора в DBLookupComboBox

09.10.2012, 07:34. Показов 5351. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Люди помогите, пожалуйста. Надо построить логику так, чтобы:
1) Есть Forma1 в ней есть DBLookupComboBox из двух строк;
2) Есть Forma2 на ней кнопка, при нажатии должно выполняться логическое действие:
если DBLookupComboBox = 1 строка, то должна открыться Forma3;
если DBLookupComboBox = 2 строка, то должна открыться Forma4.
Помогите, у меня не получается
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.10.2012, 07:34
Ответы с готовыми решениями:

Отображение той или иной DataGridview в зависимости от выбора в TreeView
Есть у меня на форме элемент TreeView и в нем узлы Node1, Node2 и т.д. Также планирую сделать DataGridview1, DataGridview2 с привязкой к...

Я хочу сделать расширение, которое выводило бы расписание занятий той или иной группы в зависимости от выбора.
Добрый день! По учебе стоит задача разработать расширение и интегрировать его в учебный процесс института. Я хочу сделать расширение,...

Создание формы с возможностью выбора отображения той или иной таблицы.
Здравствуйте. Существует несколько(n) таблиц, количество и имя полей в них разные, НО в каждой существует 3 поля общих для всех таблиц....

22
 Аватар для notsliva
15 / 15 / 7
Регистрация: 25.06.2012
Сообщений: 95
09.10.2012, 08:03
Delphi
1
2
3
4
if Forma1.DBLookupComboBox1.ListFieldIndex = 1 then
  Forma3.Show()
else if Forma1.DBLookupComboBox1.ListFieldIndex = 2 then
  Forma4.Show();
1
22 / 4 / 1
Регистрация: 25.03.2012
Сообщений: 199
09.10.2012, 08:07  [ТС]
Хорошо, приду домой с работы попробую, я что то на подобии делал. Надо проверить
0
 Аватар для notsliva
15 / 15 / 7
Регистрация: 25.06.2012
Сообщений: 95
09.10.2012, 08:14
Только в разделе uses у Form2 не забудьте прописать модули Forma1,3,4
1
22 / 4 / 1
Регистрация: 25.03.2012
Сообщений: 199
09.10.2012, 19:43  [ТС]
Проверил. Проблема в том, что в инспекторе объектов, во вкладке свойства, в строке ListFieldIndex стоит значение 0 (нуль). Поэтому открывается форма только KomPredlojenieTEO_Form.ShowModal.
Другая форма открываться не хочет. Как быть ?

Delphi
1
2
3
4
5
6
7
   begin
   if ZaprosRascheta_Form.DBLookupComboBox3.ListFieldIndex =0 then
   KomPredlojenieTEO_Form.ShowModal
   else
   if ZaprosRascheta_Form.DBLookupComboBox3.ListFieldIndex =1 then
   KomPredlojeniePredost_Form.ShowModal;
   end;
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 42
02.04.2013, 11:44
у меня похожая ситуация, мне необходимо сделать, что при выборе строчки в dblookupcombobox на форме добавления, GroupBox становился либо видимым, либо не видимым (это нужно для того чтобы, заполнять дополнительную информацию). Я делаю так, как у вас написано, видимость GRoupBox не меняется, вот код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
     Form3.ADOTable1.Insert;
      Form3.ADOTable1.FieldBYName('familiy').AsString:=Edit1.Text;
      Form3.ADOTable1.FieldBYName('imy').AsString:=Edit2.Text;
      Form3.ADOTable1.FieldBYName('otchestvo').AsString:=Edit3.Text;
      Form3.ADOTable1.FieldBYName('adres').AsString:=Edit4.Text;
      Form3.ADOTable1.FieldBYName('telefon').AsString:=Edit6.Text;
      Form3.ADOTable1.FieldByName('idtipa').Value := DBLookupComboBox1.KeyValue;
 begin
       DBLookupCombobox1.ListFieldIndex=1 then GroupBox9.Visible:=False;
 end;
      Form3.ADOTable1.FieldByName('datarojdeniy').Value:=DateTimePicker1.Date;
      Form3.ADOTable1.Post;
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
02.04.2013, 11:53
balslu, вставляйте код для отображения/скрытия своего GroupBox в событие DBLookupComboBox1Click:

Delphi
1
2
if DBLookupCombobox1.ListFieldIndex=1 then GroupBox9.Visible:=False
else GroupBox9.Visible:=True;
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 42
02.04.2013, 12:02
спасибо большое вам за отклик)))я так делаю, но GrouPBox не меняется(((
0
Пишу на Delphi...иногда
 Аватар для cotseec
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
02.04.2013, 12:04
Delphi
1
GroupBox9.Visible:=(DBLookupCombobox1.ListFieldIndex<>1);
так красивше))))...
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 42
02.04.2013, 12:14
я вот не понимаю, почему не работает, все логично, кликаем по первой строчке- GroupBox не видимый(((вроде правильно, может я что-то не понимаю(
и красивый код тоже не помогает(((а можно сделать это еще как-нибудь???

Добавлено через 6 минут
я сделала, всем спасибо за помощь, нужно прописать код

if DBLookupCombobox1.ListFieldIndex=0 then GroupBox9.Visible:=False;
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
02.04.2013, 12:16
Ошибочка вышла. Прошу прощения: используем не свойство ListFieldIndex, а KeyValue
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 42
02.04.2013, 12:25
еще одная маленькая проблемка, при повторном клике, если groupbox убрался, он уже не появляется, что здесь можно сделать???

Добавлено через 1 минуту
он вообще при клике по любой строчке убирается теперь(
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
02.04.2013, 12:29
balslu, используйте свойство KeyValue, а не ListFieldIndex, и сравнивайте его с нужным значением.
1
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 42
02.04.2013, 12:46
begin
if DBLookupCombobox1.KeyValue=1 then GroupBox9.Visible:=False else GroupBox9.Visible:=True;
if DBLookupCombobox1.KeyValue=4 then GroupBox9.Visible:=False else GroupBox9.Visible:=True;
if DBLookupCombobox1.KeyValue=8 then GroupBox9.Visible:=False else GroupBox9.Visible:=True;
end;
при таком коде GroupBox убирается только при 8 строчке, как сделать. чтобы он убирался и при 1 и при 4, 8???
0
Пишу на Delphi...иногда
 Аватар для cotseec
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
02.04.2013, 12:50
Delphi
1
2
3
GroupBox9.Visible:=not ((DBLookupCombobox1.KeyValue=1) or
                    (DBLookupCombobox1.KeyValue=4) or 
                    (DBLookupCombobox1.KeyValue=8));
1
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 42
02.04.2013, 13:02
спасибо большое!!!Все получилось)))
может Вы знаете, как настроить 3 DBLookupCombobox.
Мне нужно настроить DBLookUPCombobox1,DBLookUPCombobox2,DBLo okUPCombobox3 так, чтобы при выборе значения в DBLookUPCombobox1 в DBLookUPCombobox2 высвечивался список соответсвуующий этому значения, а при выборе значения в DBLookUPCombobox2 высвечивался в DBLookUPCombobox3 данные связанные с этим полем.
DBLookUPCombobox1-здесь мне нужно вывести поле nazvanie с таблицы klas и положить поле kodklas в таблицу книга(при операции добавления книги)
DBLookUPCombobox2-здесь мне нужно вывести поле nazvanie с таблицы razdel.
DBLookUPCombobox3-здесь мне нужно вывести поле nazvanie с таблицы podrazdel.
Как настроить правильно мне эти компоненты??
Миниатюры
Открытие той или иной формы в зависимости от выбора в DBLookupComboBox  
0
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 42
02.04.2013, 14:10
может что-то нужно переделать в базе???(

Добавлено через 1 час 6 минут
а как сделать так, чтобы при выборе строчки из dblooupcombobox label меняло свое имя(caption)
procedure TForm9.DBLookupComboBox1Click(Sender: TObject);
begin
GroupBox9.Visible:=not ((DBLookupCombobox1.KeyValue=1) or
(DBLookupCombobox1.KeyValue=4) or
(DBLookupCombobox1.KeyValue=8));
GroupBox9.Visible:=(if DBLookupCombobox1.KeyValue=2 then label7.Caption:='Íàçâàíèå øêîëû');
end;
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
02.04.2013, 15:25
balslu, это вы полную ерунду написали. В одну строку запихнули условие для логического утверждения и изменение caption. Можно, например, так:

Delphi
1
2
3
4
5
6
   case DBLookupComboBox1.KeyValue of
      1: Label7.Caption:='1';
      4: Label7.Caption:='4';
      8: Label7.Caption:='8';
      else Label7.Caption:='Other';
   end;
1
0 / 0 / 0
Регистрация: 05.12.2012
Сообщений: 42
02.04.2013, 17:57
а как сделать, чтобы не сколько Label переменовалось???
case DBLookupComboBox1.KeyValue of
2: Label7.Caption:='Íàçâàíèå øêîëû';
2: Label8.Caption:='êëàññ';
4: Label7.Caption:='4';
8: Label7.Caption:='8';
else
Label7.Caption:='Other';
end;
0
 Аватар для Waddonator
969 / 644 / 97
Регистрация: 01.11.2012
Сообщений: 1,447
02.04.2013, 18:02
Ну посмотрите же структуру оператора case.
Delphi
1
2
3
4
5
6
case <числовая переменная> of
   1: begin <что-то делаем>; <еще что-то делаем>; end;
   2: begin <что-то делаем>; <еще что-то делаем>; end;
   ...
   else begin <что-то делаем>; <еще что-то делаем>; end;
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.04.2013, 18:02
Помогаю со студенческими работами здесь

Открытие и закрытие формы в зависимости от выбора элемента списка
Есть Главная форма, содержащая постоянные поля, которые являются общими и всегда находятся на экране, и есть необходимость открывать формы...

От чего зависит корректная работа той или иной операционной системы на том или ином оборудовании?
собственно кругозор расширяется, всё выше и шире углубляюсь в системное администрирование, поэтому возник такой вопрос. Даже не знаю туда...

Обратиться к той или иной колонке таблицы
Вот пишу такие строки не работает. Подскажите как правильно DBGrid2-&gt;Columns-&gt;Visible=true; ...

Открытие формы выбора элемента со сложным отбором (2 или 3 значения)
Сделала отбор по одному значению. Подскажите как реализовать по нескольким реквизитам отбор? &amp;НаКлиенте Процедура...

Обработать нажатие той или иной кнопки в MessageBox
Вообщем открывается MessageBox с двумя стандартными кнопками &quot;Да&quot; и &quot;Нет&quot;, прописываю, чтобы на &quot;Да&quot; выскакивал MessageBox с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru