Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
3 / 3 / 1
Регистрация: 18.11.2008
Сообщений: 61

Записи в ComboBox

20.09.2009, 12:15. Показов 2666. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! У меня есть ComboBox и в нем определенное кол-во записей, т.е в моем случае названий таблиц БД. Возникла проблема вывода этих записей при кол-ве таблиц например >15, до этого выводил так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{       switch (ComboBox1->ItemIndex)
        {case 0: Table->Active=false;Table->TableName="Table1";Table->Active=true;
                 break;
         case 1: Table->Active=false;Table->TableName="Table2";Table->Active=true;
                 break;
         case 2: Table->Active=false;Table->TableName="Table3";Table->Active=true;
                 break;
         case 3: Table->Active=false;Table->TableName="Table4";Table->Active=true;
                 break;
         case 4: Table->Active=false;Table->TableName="Table5";Table->Active=true;
                 break;
         case 5: Table->Active=false;Table->TableName="Table6";Table->Active=true;
                 break;
}
До тех пор пока таблиц не стало больше... Может кто подскажет как эту запись унифицировать к n-ому кол-ву таблиц??
Заранее спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.09.2009, 12:15
Ответы с готовыми решениями:

Отображение элемента записи БД в TextBox при выборе id его записи в ComboBox
... Я реализовал редактирование записи в БД, но мне нужно что бы при выборе в ComboBox id записи, которая будет изменена, её текущие...

Записи в ComboBox
Здравствуйте, у меня возникла вот такая проблемка: есть ComboBox, в нем уже есть некоторое количество записей (по умолчанию) и мне надо...

Записи в БД и ComboBox
Добрый вечер. Вообще суть проблемы такова. Хочу запихнуть в ComboBox список менеджеров из БД. Делаю добавление при активации формы, т.к. в...

8
0 / 0 / 0
Регистрация: 09.03.2008
Сообщений: 14
20.09.2009, 13:58
Возможно, я немного не правильно понял, но...
Можно использовать объект в итеме ComboBox'a.
Например (создаем список, и на каждый итем вешаем определенную таблицу):
C++
1
ComboBox->Items-AddObject("table1",Table1);
Теперь, для выбора таблицы достаточно в ComboBox1Change вписать
C++
1
TTable *some_table = (TTable *)ComboBox1->Items->Objects[ComboBox1->ItemIndex];
,где some_table - это таблица, которая будет равна выбранной таблице
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
20.09.2009, 14:10
если у теб там имена таблиц. то все гораздо проще:
C++
1
2
3
4
5
6
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
    Table->Active=false; 
    Table->TableName=ComboBox1->Text; 
    Table->Active=true;
}
0
3 / 3 / 1
Регистрация: 18.11.2008
Сообщений: 61
20.09.2009, 14:35  [ТС]
В ComboBox1Change у меня происходит выбор таблиц для отображения в DBGrid'e
ComboBox1->Items у меня задается из INI файла в другом месте.
Мне нужно как то переделать выбор,т.е не через switch, а как нибудь еще...чтобы не зависило от кол-ва табличек.
0
Псевдо программист
 Аватар для R0mm
192 / 113 / 37
Регистрация: 19.09.2009
Сообщений: 303
20.09.2009, 14:47
Цитата Сообщение от FeNr1z Посмотреть сообщение
Мне нужно как то переделать выбор,т.е не через switch, а как нибудь еще...чтобы не зависило от кол-ва табличек.
Чем тебе вариант ГвОСТЬ'я не подходит?
0
3 / 3 / 1
Регистрация: 18.11.2008
Сообщений: 61
20.09.2009, 14:57  [ТС]
Цитата Сообщение от R0mm Посмотреть сообщение
Чем тебе вариант ГвОСТЬ'я не подходит?
Ну если честно не очень понятно...Как задавать объекты если их кол-во всегда разное...Например в одной БД 3 таблицы, в другой 20 таблиц...
0
0 / 0 / 0
Регистрация: 09.03.2008
Сообщений: 14
20.09.2009, 15:02
Значит, я все-таки более-менее правильно понял.
Итак, ты из *.ini вытаскиваешь названия таблиц, строишь список с объектами, а потом просто напросто делаешь так, как я писал.
Ну или так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void __fastcall TForm1::CreateCBList()
 {   
  TIniFile *ini = new TIniFile("some_path");
 TStringList *list = new TStringList();
 ini->ReadSectionValues("some_section_where_table_names",list);
 /*    Так как я не знаю струтуры ини файла, предположим,  что в секции key - название, value - имя объкта TTable.  Так же предположу, что все таблицы на форме (хотя, бред ИМХО)   */
 for(int z=0;z<list->Count;z++)
 { 
     ComboBox->Items-AddObject(list->Values[list->Names[z]],(TTable *)Form1->FindComponent(list->Names[z]));
 } 
  delete ini,list;
 } 
 //---------------------------------------------------------- 
 void __fastcall TForm1::ComboBox1Change(TObject *Sender)
 { 
  MainDataSource->DataSet = (TTable *)ComboBox1->Items->Objects[ComboBox1->ItemIndex];
 }
Вот и смотрите далее как от этого плясать. А вообще надо было более подробно описать. Ну хотя бы сказать, зачем вам столько компонентов, и почему Вы не создаете их динамически, а занимаетесь таким гемморным делом.
0
3 / 3 / 1
Регистрация: 18.11.2008
Сообщений: 61
20.09.2009, 15:03  [ТС]
Это таблицы содержащиеся в БД, Баз много и их содержание разное по кол-ву таблиц...
0
0 / 0 / 0
Регистрация: 09.03.2008
Сообщений: 14
20.09.2009, 15:17
Цитата Сообщение от FeNr1z Посмотреть сообщение
Это таблицы содержащиеся в БД, Баз много и их содержание разное по кол-ву таблиц...
ну вот можно и функцию сделать :
C++
1
2
3
4
5
6
7
 void __fastcall TForm1::OpenTable(TTable *container,AnsiString DataBase,AnsiString TableName)
  {
   container->Active = false;
   container->DatabaseName = DataBase;
   container->TableName = TableName;
   container->Active = true;
  }
А используем так:
C++
1
2
OpenTable(Table,"db_one","table_two");
/*делаем с таблицей то, что хочем */
И в ини файле храним данные про алиас, назв. таблицы, и текст в CB.
при создании списка вместо TTable, в объект итема суем TStringList. В CBChange немного меняем код, но почти все тоже самое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.09.2009, 15:17
Помогаю со студенческими работами здесь

Повторяющиеся записи в ComboBox
Здравствуйте!!!Возник вопрос на форме есть ComboBox в него по ножатию кнопки добовляються данные из Edit'a.как избавиться от повторяющихся...

Удаление записи из ComboBox
Всем доброго дня! Помогите пожалуйста решить данную проблему. Есть форма, на ней TextBox1, TextBox2, label, ComboBox1, Button1 b Button2,...

Добавление записи в БД из ComboBox
Использую С++ builder, SQL 2005. Имеется таблица с 4 полями, необходимо выбранные текстовые данные в 4-х комбобоксах, соотвествующие полям...

Сохранение записи в ComboBox
Добрый день У меня проблема с записью в Items ComboBox-a Мне надо сделать так, чтобы если запись уже есть в ComboBox-е то её не...

Добавление Записи в ComboBox
Привет всем ))) У меня возникла такая проблема, есть ComboBox, в нем уже есть некоторые записи по умолчанию и мне надо чтоб по кнопке...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru