Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 ComboBox в качестве параметра процедуры/функции  [new]
Sensor230
Member

Откуда: Ногинск
Сообщений: 37
Программисты, помогите кто чем может.
при создании формы список ComboBox.Items создается програmмно из SQL-запроса
Так как ComboBox-ов на форме несколько и все их надо заполнять, хочу засунуть это в процедуру или функцию
что то типа
procedure AddItemsCombo (Collum, Table, ComboBox: string);

Collum - Столбец в таблице из которого формируется Items
Table - таблица БД в которой этот столбец находится (для формирования SQL-запроса)
ComboBox - в который надо засунуть созданый список Items.

Сейчас работает в цикле с перебором и проверкой на дубликаты, как то так:
ComboBox1.Items.Add(ADOQuery1.FieldByName(Collum).AsString);

Подскажите как в этой строчке поменять ComboBox1 на другой, например ComboBox2.
Писать отдельный (одинаковый) блок на заполнение каждого ComboBox наверное не правильно.
Можно передавать процедуре/функции кроме параметров в какой таблице и из какого столбца создавать Items, ещё и в имя ComboBox-a в который этот Items будет записываться? спс.
16 июн 20, 19:45    [22151940]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1127
Sensor230
...
Можно передавать процедуре/функции кроме параметров в какой таблице и из какого столбца создавать Items, ещё и в имя ComboBox-a в который этот Items будет записываться? спс.

Можно имя, а можно комбобокс (ссылку на комбобокс).

procedure AddItemsCombo(const aColumn, aTableName: string; aComboBox: TComboBox);


aComboBox.Items.Add(ADOQuery1.FieldByName(aColumn).AsString);


Вызов
AddItemsCombo('username', 'users', ComboBox1);
16 июн 20, 20:00    [22151949]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
Sensor230
Member

Откуда: Ногинск
Сообщений: 37
s62,
Здесь самые программистые программисты! )))) СПАСИБО!!! Работает!!!
16 июн 20, 20:10    [22151950]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
энди
Member

Откуда: Киров, Россия
Сообщений: 1119
Лучше все же передавать не сам компонент, а его Items :)
Тогда не только в комбобокс данные пихать можно будет :)
16 июн 20, 21:24    [22151990]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
s62
Member

Откуда: Жуковский
Сообщений: 1127
энди
Лучше все же передавать не сам компонент, а его Items :)
Тогда не только в комбобокс данные пихать можно будет :)
Кстати да, согласен. TStrings передавать.
16 июн 20, 22:31    [22152017]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
DimaBr
Member

Откуда:
Сообщений: 11710
энди
Лучше все же передавать не сам компонент, а его Items :)
Тогда не только в комбобокс данные пихать можно будет :)

Лучше передавать Компонент, тогда можно заполнять не только TStrings

Сообщение было отредактировано: 16 июн 20, 22:58
16 июн 20, 23:00    [22152044]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
mkr
Member

Откуда: Беларусь, Минск
Сообщений: 214
Sensor230,

мне кажется, лучше не колонку и таблицу, а SQL запрос.
да и id, не помешал бы (но тут уже dbcombobox нужен)

p.s. сбросьте уже текст AddItemsCombo на код-ревью)
17 июн 20, 10:31    [22152185]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
Gerasimenko
Member

Откуда:
Сообщений: 4594
mkr
Sensor230,

мне кажется, лучше не колонку и таблицу, а SQL запрос.
да и id, не помешал бы (но тут уже dbcombobox нужен)

p.s. сбросьте уже текст AddItemsCombo на код-ревью)

А чем обычный ComboBox не устраивает?
17 июн 20, 11:03    [22152200]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
mkr
Member

Откуда: Беларусь, Минск
Сообщений: 214
Gerasimenko
mkr
Sensor230,

мне кажется, лучше не колонку и таблицу, а SQL запрос.
да и id, не помешал бы (но тут уже dbcombobox нужен)

p.s. сбросьте уже текст AddItemsCombo на код-ревью)

А чем обычный ComboBox не устраивает?


"из коробки" нет механизма прямого добавления keyvalue значений, поэтому необходима немногим более сложная логика добавления и работы с keyvalue.
17 июн 20, 11:13    [22152206]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
Gerasimenko
Member

Откуда:
Сообщений: 4594
mkr
Gerasimenko
пропущено...

А чем обычный ComboBox не устраивает?


"из коробки" нет механизма прямого добавления keyvalue значений, поэтому необходима немногим более сложная логика добавления и работы с keyvalue.
AddItem вам в руки
17 июн 20, 11:16    [22152212]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
alekcvp
Member

Откуда:
Сообщений: 2178
Gerasimenko
AddItem вам в руки

С AddItem() у компонентов, кстати, была какая-то засада. ЕМНИП, он не может запоминать значение -1, потому что оно внутри используется как маркер "нет значения"...
17 июн 20, 11:51    [22152244]     Ответить | Цитировать Сообщить модератору
 Re: ComboBox в качестве параметра процедуры/функции  [new]
Gerasimenko
Member

Откуда:
Сообщений: 4594
alekcvp
Gerasimenko
AddItem вам в руки

С AddItem() у компонентов, кстати, была какая-то засада. ЕМНИП, он не может запоминать значение -1, потому что оно внутри используется как маркер "нет значения"...
id = -1 суровая у Вас БД
17 июн 20, 11:53    [22152245]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить