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

Вниз

Вопрос простой, аж смешно по DBComboBox   Найти похожие ветки 

 
Rule ©   (2004-12-10 16:08) [0]

значит надо такой комбобокс чтобы содержимое его небыло привязнао к источнику БД, а список заполнялся из источника из определенного поля ...
DBComboBox и DBLookupComboBox  это немного другое, в первом случае, содержимое, это из источника, а список выпадающий, статические значения а во втором случае и первое и второе из бд берется ....

конечно есть обходные пути, типа при открытии датасета и при его изменении заливались значения ...

но мож есть другие варианты ?


 
Johnmen ©   (2004-12-10 16:30) [1]

TComboBox
:)


 
Соловьев ©   (2004-12-10 16:35) [2]

DBComboBox ... это немного другое, в первом случае, содержимое, это из источника, а список выпадающий, статические значения

Нутак и заполни их программно


 
Dmitriy O. ©   (2004-12-10 16:35) [3]

Tcombobox.item.add()


 
Rule ©   (2004-12-10 16:43) [4]

отвечаю всем сразу так как у все ответ одинаковый :)))
и его я написал в воросе
конечно есть обходные пути, типа при открытии датасета и при его изменении заливались значения ...

но если других предложений нет, то проще будет свой комбобокс написать, наследник от TComboBox
:)))
ну в принципе я так и думал


 
Leksiy ©   (2004-12-10 16:55) [5]

ересь сжечь ... тебе же ответили по человечески заполняй его програмно из одно таблицы что тебя не устраивает ? нормально скажи


 
DSKalugin ©   (2004-12-10 18:40) [6]


Procedure Field2ComboBox(var fld:TFIBStringField; cbm:TComboBox);
var bkm:TBookmark; // (c)DSKalugin
begin
  cbm.Clear;
  bkm:=fld.DataSet.GetBookmark;
  fld.DataSet.DisableControls;
  fld.DataSet.First;
  try
  while not fld.DataSet.EOF do begin
    cbm.Items.Add(fld.AsString);
    fld.DataSet.Next;
  end;
  cbm.ItemIndex:=0;
  fld.DataSet.GotoBookmark(bkm);
  finally
    fld.DataSet.EnableControls;
    fld.DataSet.FreeBookmark(bkm);
  end;
end;

Вызывать так
Field2ComboBox(fmDM.tbSellListSELLER_NAME, cbSellist);


 
Vemer ©   (2004-12-10 18:50) [7]

В похожих случаях использую DBLookupComboBox с незаполненным DataSource и ручками пихаю его .KeyValue куда надо. Работает на ура.


 
Соловьев ©   (2004-12-10 19:01) [8]

DBComboBox ... это немного другое, в первом случае, содержимое, это из источника, а список выпадающий, статические значения

Нутак и заполни их программно


 
Dell3r ©   (2004-12-11 10:32) [9]

Form.OnCreate
with Table2 do
 begin
   Close;
   IndexName:="";
   Open;
   while not EOF do
    begin
     ComboBox1.Items.Add(FieldByName("NameOld").AsString);
// в комбобокс добавляются все записи из колонки NameOld.
     Next;
    end;
   First;
 end;

ComboBox1.OnChange
//для отображения в Гриде записи с номером выбранным в Комбобоксе
 with ComboBox1 do   begin
  if ItemIndex <> -1 then
     if not Table2.Locate("NameOld", Items[ItemIndex], []) then  
    ShowMessage(Items[ItemIndex -1] + "Последняя запись");  end;


 
Rule ©   (2004-12-11 12:08) [10]

Соловьев ©   (10.12.04 19:01) [8]
так  мне как раз наоборот надо тоесть содержимое не должно быть привязано к бд, тоесть оно мне надо только для анализа, в принципе решение предложено
Vemer ©   (10.12.04 18:50) [7]

2Dell3r ©   (11.12.04 10:32) [9]
а как же случаи изменения добавления, и редактирования .... не предусмотрено и вот вторая часть как раз не надо чтобы в таблице позиционровалось на записи, просто не нада ...

2DSKalugin ©   (10.12.04 18:40) [6]
ну это извините прямо в лоб, спасибо конечно за совет, но в принципе до этого так и делал ... хотелось бы более эффективные способы найти ...


 
ЮЮ ©   (2004-12-14 05:16) [11]

> значения а во втором случае и первое и второе из бд берется

Cм. Vemer ©   (10.12.04 18:50) [7]
Выпадающий список - обязательно, а DataSource и DataField могут ьыть незаполнены, в этом случае получаешь именно то, что тебе надо


 
Submarine   (2004-12-14 08:01) [12]

Ну самый простой способ и наиболее рациональный, когда нужно воспользоваться записями помещеными в Combobox, а именно брать не имена а коды этих обьектов (например таблица в нем 2 поля Id, Name), и мы хотим видеть в Combobox Name, а подставлять id, используйте обьекты:
 fmdtmdl.help.sql.Add("Select *");
 fmdtmdl.help.sql.Add("From CATALOGCONTENT");
  irec:=0;
   with fmDTMDL.help do
 begin
   open;
   while not EOF do
   begin
     Combobox1.items.add(FieldByName("name").AsString);
     idd:=tidd.create;
     idd.Iobject := FieldByName("ID").value;
   ComboBox1.Items.Objects[IRec] := idd;
      irec:=irec+1;
     next;
      end;
    end;
А использовать запись, вернее ее код
i1:=Tidd(ComboBox1.Items.Objects[ComboBox1.ItemIndex]).Iobject


 
Submarine   (2004-12-14 08:02) [13]

Ну и соответственно вначале обьявить
type
   TIDD = class
   Iobject: integer;
      end;



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

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

Наверх




Память: 0.48 MB
Время: 0.037 c
3-1103017628
anatolyk
2004-12-14 12:47
2005.01.16
Ускорить получение данных


3-1102943626
AlexRush
2004-12-13 16:13
2005.01.16
Oracle 9.2 as TDataSet


1-1104212175
Mate_ru
2004-12-28 08:36
2005.01.16
параметры


1-1103702835
Lister
2004-12-22 11:07
2005.01.16
Программная настройка компонента


1-1104516664
Cheguevara
2004-12-31 21:11
2005.01.16
Как создать компоненту в координатах клика мыши?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский