Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.04;
Скачать: CL | DM;

Вниз

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

 
Valerik ©   (2008-11-20 09:04) [0]

Подскажите пожалуйста как занести в ComboBox список названий из таблицы, причем названия не должны повторяться.
Пытался и с помощью другого компонента. не получилось!!!!


 
Palladin ©   (2008-11-20 09:09) [1]

что конкретно вызывает затруднения?


 
Григорьев Антон ©   (2008-11-20 09:22) [2]

А не проще будет использовать TDBLookupComboBox?


 
Anatoly Podgoretsky ©   (2008-11-20 09:37) [3]

> Valerik  (20.11.2008 9:04:00)  [0]

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


 
Ega23 ©   (2008-11-20 10:00) [4]

Берём TDataSet, выполняем запрос select distinct Name from Table

Далее:
Вариант 1. TComboBox
ComboBox.Items.Clear;
with DataSet do
begin
 First;
 while not Eof do
 begin
   ComboBox.Items.Add(FieldByName("Name").AsString);
   Next;
 end;
end;


Вариант 2. TDBLookupCombo
Берём TDataSource, ему в качестве TDataSet прописываем наш.
Берём TDBLookupCombo, прописываем ему ListSource, KeyField и ListField.
Наслаждаемся.


 
Valerik ©   (2008-11-20 10:06) [5]

Напишите по подробнее, что должно содержать ListSource, KeyField и ListField?
Потому что я попробовал и компонент как буд то не активным, хотя Enabled стоит в True.


 
Valerik ©   (2008-11-20 10:12) [6]

И еще выдает ошибку при изменении знасений в KeyField и ListField: "Circular datalinks are not allowed"


 
Ega23 ©   (2008-11-20 10:13) [7]


> Напишите по подробнее, что должно содержать ListSource,
> KeyField и ListField?


TDBComboBox + F1


 
Valerik ©   (2008-11-20 13:40) [8]

А как сделать, что бы не повторялись?


 
Ega23 ©   (2008-11-20 13:44) [9]


> А как сделать, что бы не повторялись?


У тебя как, с глазами проблемы? Ты [4] прочитал, или как?


 
NieL ©   (2008-11-20 14:11) [10]

Вот как вариант:


procedure Tform_Main.Button1Click(Sender: TObject);
var
 ListNames: TStringList;
begin
 ListNames := TStringList.Create;
 try
   ListNames.Sorted := True;
   ListNames.Duplicates := dupIgnore;
   with Table1 do
   begin
     First;
     while not EOF do
     begin
       ListNames.Add(FieldByName("Name").AsString);
       Next;
     end;
   end;
   ComboBox1.Items.AddStrings(ListNames);
 finally
   ListNames.Free;
 end;
end;


Но правильнее использовать DBComboBox


 
Ega23 ©   (2008-11-20 14:23) [11]


> NieL ©   (20.11.08 14:11) [10]
>
> Вот как вариант:


Ещё один...
Ты [4] причитал, или нет?


 
Valerik ©   (2008-11-25 08:41) [12]

Он на такой запрос (в [4]), выдает ошибку. почему?


 
Valerik ©   (2008-11-25 09:23) [13]

Все разобрался! спасибо большое за помощь!!!!!!!



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

Текущий архив: 2009.01.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
15-1225786628
Translator
2008-11-04 11:17
2009.01.04
Словарик


15-1225451619
KSergey
2008-10-31 14:13
2009.01.04
Беда с компьютером: винчестер постоянно занят


2-1226488903
Vova
2008-11-12 14:21
2009.01.04
DeleteFile


2-1227463627
Nastya
2008-11-23 21:07
2009.01.04
Создание у уничтожение компонентов в RunTime


15-1225992268
palva
2008-11-06 20:24
2009.01.04
Гастарбайтеров станет больше