Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2009, 10:44   #1
kopoba
Пользователь
 
Регистрация: 01.06.2009
Сообщений: 18
По умолчанию из ADOTable в ListBox по Edit.OnChange

Здравствуйте. Подскажите, как из таблицы добавить поле в листбокс без повторений, а потом сделать так, чтобы листбокс отображал только те записи, которые соответствуют набираемому тексту в Edit.
Если уже был такой вопрос, то прошу прощения, но сколько искал - ничего не нашел =(
kopoba вне форума Ответить с цитированием
Старый 05.06.2009, 11:19   #2
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
как из таблицы добавить поле в листбокс
Поле или запись?
Если запись то так
Код:
ListBox1.Items.Add(AdoTable.Fields[0].AsString);
Цитата:
без повторений
предворительно сгрупировать данные в запросе
Код:
ADOQuery.Active:=False;
ADOQuery.SQL.Clear;
ADOQuery.SQL.ADD('SELECT Name FROM Tablica GROUP BY Name');
ADOQuery.Active:=True;

AdoQuery.First;
While NOT ADOQuery.Eof do
begin
  ListBox1.Items.Add(AdoQuery.Fields[0].AsString);
  ADOQuery.Next;
end;
Цитата:
чтобы листбокс отображал только те записи, которые соответствуют набираемому тексту в Edit
При формировании того же запроса делай выборку
Код:
ADOQuery.Active:=False;
ADOQuery.SQL.Clear;
ADOQuery.SQL.ADD('SELECT Name FROM Tablica GROUP BY Name HAVING Name LIKE "%'+edit1.Text+'%"');
ADOQuery.Active:=True;
ListBox1.Clear;
AdoQuery.First;
While NOT ADOQuery.Eof do
begin
  ListBox1.Items.Add(AdoQuery.Fields[0].AsString);
  ADOQuery.Next;
end;
S@fer вне форума Ответить с цитированием
Старый 05.06.2009, 11:59   #3
kopoba
Пользователь
 
Регистрация: 01.06.2009
Сообщений: 18
По умолчанию

Ох. Спасибо огромное. Прямо не нарадуюсь.
А можно как-нибудь управлять высотой листбокса, чтобы в зависимости от количества выводимых строк менялась высота листбокса?
kopoba вне форума Ответить с цитированием
Старый 05.06.2009, 12:06   #4
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
А можно как-нибудь управлять высотой листбокса, чтобы в зависимости от количества выводимых строк менялась высота листбокса?
Код:
ListBox1.Height:=ListBox1.Count*ListBox1.ItemHeight+5;
S@fer вне форума Ответить с цитированием
Старый 05.06.2009, 12:18   #5
kopoba
Пользователь
 
Регистрация: 01.06.2009
Сообщений: 18
По умолчанию

Спасибо еще раз большое. Я прямо себя глупеньким почувствовал и понял, что нужно что-то менять)
kopoba вне форума Ответить с цитированием
Старый 18.04.2012, 21:02   #6
Mech
Новичок
Джуниор
 
Регистрация: 04.02.2012
Сообщений: 1
Злость

бред не работает нехрина
Mech вне форума Ответить с цитированием
Старый 19.04.2012, 07:17   #7
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Цитата:
Сообщение от Mech Посмотреть сообщение
бред не работает нехрина
Открой глаза. код 100% рабочий. Что не получается?
S@fer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема ONCHANGE в IE mihali4 JavaScript, Ajax 11 25.11.2008 07:15
Просматривать данные из AdoTable в Edit Mishina БД в Delphi 2 15.06.2008 11:48
Как копировать данные из ADOTable в ADOTable? mauar БД в Delphi 1 10.05.2008 16:05
TEdit.Onchange azat Компоненты Delphi 1 27.11.2007 12:36
Вычисления по условию. Событие onChange Наташа Помощь студентам 13 27.12.2006 12:28