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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2016, 00:12   #1
byaka2405
Новичок
Джуниор
 
Регистрация: 06.05.2016
Сообщений: 2
По умолчанию Проблемы с ComboBox

Всем добрый вечер, обыскала кучу форумов в поиске ответа, но ничего подходящего не нашла.
Есть на форме функция добавления, и парочка комбобоксов, нужно реализовать связь первого комбобокса со вторым, чтобы при выборе параметров в первом (в моем случае структура отдела) во втором автоматически появлялись только отделы, которые находятся в этой структуре, это все реализовано, но работает коряво, список во втором появялется только при выборе отдела и обновления таблицы, и еще проблема в том, что эта функция не работает как добавление, т.е. во втором комбо боксе просто появляется список, но выбрать значение нельзя, не отображается((
Цитата:
void __fastcall TForm5::FormCreate(TObject *Sender)
{
Form2->ADOQuery2->First();
while(!Form2->ADOQuery2->Eof)
{
bool b=false;
String Text= Form2->ADOQuery2->FieldByName("структура")->AsString;
for(int i=0;i<ComboBox1->Items->Count;i++)
if( ComboBox1->Items->Strings[i]==Text ) b=true;
if( !b ) ComboBox1->Items->Add(Text);

Form2->ADOQuery2->Next();




}


Form2->ADOQuery2->First();
while(!Form2->ADOQuery2->Eof)
{
bool a=false;
String Text= Form2->ADOQuery2->FieldByName("Название отдела")->AsString;
for(int i=0;i<ComboBox2->Items->Count;i++)
if( ComboBox2->Items->Strings[i]==Text ) a=true;
if( !a ) ComboBox2->Items->Add(Text);
Form2->ADOQuery2->Next();
}







}

Цитата:
void __fastcall TForm5::ComboBox1Change(TObject *Sender)
{
//Очистили и заполнили 2-й Комбобокс
ComboBox2->Items->Clear();
ComboBox2->Text = "";
Form2->ADOQuery2->Close();
Form2->ADOQuery2->SQL->Clear();
Form2->ADOQuery2->SQL->Add("SELECT * FROM СправочникПК where структура = '" + ComboBox1->Text+"' ");




Form2->ADOQuery2->Open();

Form2->ADOQuery2->First();
for(int i = 0; i < Form2->ADOQuery2->RecordCount; i++)
{
ComboBox2->Items->Add( Form2->ADOQuery2->FieldValues["Название отдела"]);




Form2->ADOQuery2->Next();
}



}
byaka2405 вне форума Ответить с цитированием
Старый 06.05.2016, 04:11   #2
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Всем добрый вечер, обыскала кучу форумов в поиске ответа, но ничего подходящего не нашла
Книгу надо почитать или полистать и потом подумать
Цитата:
нужно реализовать связь первого комбобокса со вторым, чтобы при выборе параметров в первом (в моем случае структура отдела) во втором автоматически появлялись только отделы, которые находятся в этой структуре, это все реализовано, но работает коряво,
Код:
void __fastcall TForm5::ComboBox1Change(TObject *Sender)
{
//Очистили и заполнили 2-й Комбобокс
ComboBox2->Items->Clear();
ComboBox2->Text = "";
Form2->ADOQuery2->Close();
Form2->ADOQuery2->SQL->Clear();
Form2->ADOQuery2->SQL->Add("SELECT * FROM СправочникПК where структура = '" + ComboBox1->Text+"' ");
//Очистили и заполнили 2-й Комбобокс это код кто так закоментировал ?
Код:
ComboBox2->Items->Clear(); // здесь очистили да! Там уже нечего нету
ComboBox2->Text = ""; // и здесь уже это не надо
потом
Код:
// начинайте запрос в таблице СправочникПК и это запрос правильно работаеть ?
Form2->ADOQuery2->Close();
Form2->ADOQuery2->SQL->Clear();
Form2->ADOQuery2->SQL->Add("SELECT * FROM СправочникПК where структура = '" + ComboBox1->Text+"' ")
xxbesoxx вне форума Ответить с цитированием
Старый 07.05.2016, 23:32   #3
byaka2405
Новичок
Джуниор
 
Регистрация: 06.05.2016
Сообщений: 2
По умолчанию

Книгу листала, думать - думала
Запрос правильно работает.
Проблема была в том, что события не правильно раскидала
byaka2405 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Combobox проблемы TIXIY Помощь студентам 4 15.05.2012 19:50
Webbrowser и combobox: сделать чтобы в combobox-е оставалась история посещенных сайтов uasya2 Общие вопросы Delphi 6 06.03.2011 20:24
Проблемы с ComboBox bugemister Компоненты Delphi 4 14.12.2010 17:39
Проблемы с combobox Arteom Помощь студентам 3 05.09.2007 08:24