Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Вниз

DBComboBox   Найти похожие ветки 

 
Viktor   (2003-05-12 05:33) [0]

Привет мастерам!
Возникла такая проблема.
Необходимо выбрать из таблицы строку при помощи DBComboBox"a

его заполняю
while not Tab.Eof do
begin
DBComboBoxList.Items.Add(Tab.FieldByName("Name").Value);
Tab.Next;
end;

Проблема в том, что теперь я не знаю ID выбранного элемента

Как все это решить?
Заранее благодарен


 
ЮЮ   (2003-05-12 06:03) [1]

DBComboBox предназначен совсем для другого "Use TDBComboBox to allow users to change the value of a field on the current record in a dataset either by selecting an item from a list or by typing in the edit box part of the control."

Используй или DBLookupCombobox (см.KeyValue) или обычный ComboBox
(ComboBox.Items. AddObject(Tab.FieldByName("Name").Value,TObject(Tab.FieldByName("ID").asInteger));



 
Viktor   (2003-05-13 01:35) [2]

Я не очень все понял. DBLookupCombobox мне не нужен.
Нужен выпадающий список.
У меня есть запрос, который возвращает список комплектующих определенного типа (Id, Name, FullName).
мне необходимо выбрать из этого списка (по наименованию) строку
Пользователь видит только наименование.
Посоветуйте, что именно мне использовать в таком случае.


 
Zacho   (2003-05-13 01:41) [3]


> Viktor (13.05.03 01:35)
> Посоветуйте, что именно мне использовать в таком случае.

Что угодно. Зависит от задачи, твоих способностей и фантазии.
Собственно, ответ есть ЮЮ © (12.05.03 06:03)
" или обычный ComboBox
(ComboBox.Items.AddObject(Tab.FieldByName("Name").Value,TObject(Tab.FieldByName("ID").asInteger));"



 
ЮЮ   (2003-05-13 02:51) [4]

>DBLookupCombobox мне не нужен
Именно DBLookupCombobox позволяет показывать список, организованный на основании запроса и не надо самому бегать по НД и формировать список и при этом, если у него не указывать DataSource, то он уже не является DB-Aware компонентом а его св-во KeyValue содержит значение ключевого поля списка.

>Я не очень все понял. DBLookupCombobox мне не нужен.
Тогда по русски: используйте TDBComboBox, чтобы позволить пользователю изменять значение поля текущей записи набора данных как путём выбора элемента списка, так и непосредственным вводом в окно.
Т.е. тебе не нужен именно DBLookupCombobox, который предназначен именно для редактирования поля, а DBLookupCombobox кроме редактировния (но уже ключевого поля) можно использовать и просто для выбора записи из ListSource


 
Viktor   (2003-05-13 06:00) [5]

Вот попробовал и опять ничего не понял
вызываю своюпроцедуру:
QSash.Open;
ComboBoxItemsAdd(QSash, "Id", PESash);

procedure TFrmSelectionAccessories.ComboBoxItemsAdd(Tab: TADOQuery; FieldName: String; PickEdit: TDBComboBox);
begin
PickEdit.Items.AddObject(Tab.FieldByName("Name").Value,TObject(Tab.FieldByName(FieldName).asInteger));
end;

в выпадающем списке как и было только одна строка для выбора
объясните плиз подробнее


 
Viktor   (2003-05-13 06:15) [6]

Если в DBLookupCombobox не указывать DataSource и DataField,
то можно работать как с обычным List?


 
ЮЮ   (2003-05-13 07:46) [7]

>в выпадающем списке как и было только одна строка для выбора
объясните плиз подробнее
А где сканирование НД?
Tab.First;
While not Tab.EOF do begin
PickEdit.Items.AddObject(
Tab.FieldByName("Name").Value,
TObject(Tab.FieldByName(FieldName).asInteger)
);
Tab.Next;
end;
А чтобы этого не делать и используют DBLookupCombobox

И ещё раз повторяю, этот компонент для редактирования текущей записи набора данных

>Если в DBLookupCombobox не указывать DataSource и DataField,
то можно работать как с обычным List?
Ну не совсем обычным, но практически.





 
Leshiy   (2003-05-13 07:58) [8]

Возьми DBComboBoxEh из EhLib.


 
Viktor   (2003-05-13 17:08) [9]

Спасибо всем - разобрался.
Не туда смотрел.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-2903
KA-87
2003-05-22 21:08
2003.06.02
Как засунуть свою прогу в меню


14-3055
Александр из Минска
2003-05-15 22:22
2003.06.02
Бегущая строка...


14-3156
АлеКо
2003-05-15 03:53
2003.06.02
InstallShield


14-3050
Карлсон
2003-05-15 21:16
2003.06.02
мониторы SyncMaster


14-3088
iFot
2003-05-13 22:23
2003.06.02
D7->D5 convert





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский