Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Программно настроить DBLookupComboBox


Автор: scorp 2.1.2003, 03:16
Подскажите пожалуста как программно настроить компонент DBLookupComboBox на определённую таблицу ?
 Допустим, что в данный момент этот компонент уже настроен на какую-то таблицу. Надо в процессе работы программы перенастроить его на таблицу tbProducts (поле Name). Надо настроить свойства ListSource, ListField, KeyField на табилцу tbProducts и поле Name.

Как это сделать ???

Автор: Kleo 2.1.2003, 22:28
Если я правильно поняла, тебе просто ужно прописать в нужном месте что-то в таком роде: DBLookupComboBox1.DataSource:=
DBLookupComboBox1.DataField:=
DBLookupComboBox1.ListSource:=
DBLookupComboBox1.ListField:=
DBLookupComboBox1.KeyField:=
и рисуешь нужные тебе таблицы и поля....это и перенастроит твой DBLookupComboBox на что ты хочешь..
Тебе ведь это нужно? или я тебя не поняла? :))

Автор: scorp 3.1.2003, 07:23
Ну ты меня понял на половину.
Я понимаю что это это так записывается, проблема в выражении после присваивания. Я пробовал разные способы (особенно для ListField, KeyField), но что-то не получается.........

Автор: Kleo 3.1.2003, 21:23
не понял, а понялА :))
так ты пиши как обычно к полям обращаешься... может так
DBLookupComboBox1.ListSource:=tbProducts.FieldByName('Name').AsString; или как там у тебя? так что не работает? или? в чем проблема?

Автор: scorp 4.1.2003, 01:36
Если писать вот так, то компонент не активен
   (FOrders - форма
     dblcb.... - компонент DBLookupComboBox
     DM - модуль данных
     ds... - DataSource)

DM.tbProducts.Close;
 with FOrders.dblcbNameProduct do
  begin
    ListSource:=DM.dsProducts;
    ListField:=DM.tbProducts.FieldByName('name_product').AsString;
    KeyField:=DM.tbProducts.FieldByName('name_product').AsString;
  end;
  DM.tbProducts.Open;

Автор: Medved 4.1.2003, 01:54
так будет работать...
Код

 ListSource:=DM.dsProducts;
 ListField:='name_product';
 KeyField:='name_product';


Свойствам ListField и KeyField присваиваются не значения полей, а их наименования.

а вообще на будущее, напишите "ListField:=" и нажмите на Ctrl+Пробел, выскочит подсказка, и там видно, какого типа, должно быть значение, которое Вы собираетесь присваивать.

Автор: Medved 4.1.2003, 03:15
Так, для информации, если же требуется "обнулить" значение DBLookupComboBox, то это делается следующим способом:

Код

DBLookupComboBox1.KeyValue := null;



Автор: Kleo 4.1.2003, 05:21
мда :)) здорово :) на самом деле это так и просилось в ответ...там же когда из списка выбирать нужно что-то так в принципе и делается

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)