TComboBox c фильтром списка (как в интернет-поисковиках)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

TComboBox c фильтром списка (как в интернет-поисковиках)

Сообщение Unvictis » 24.08.2015 14:52:11

Доброго времени суток! Подскажите готовый компонент или способ как реализовать подобное поведение у стандартного TComboBox. Тоесть я хочу что-бы при вводе первых букв в списке комбобокса отображались только элементы содержащие введённые буквы своём тексте. К примеру, есть список:
    Иванов
    Иващенко
    Николаев
    Ковалёв
    Ивин
Когда пользователь наберёт "Ив" в раскрывающемся списке будут только:
    Иванов
    Иващенко
    Ивин
а не все подряд элементы списка. Подобную картину можно наблюдать во всех интернет-поисковиках, странно что до сих пор ни компоненты TComboBox Delphi XE8 ни Lazarus не научились автоматически фильтровать текст подобным образом.
Ах да, если пытаться изменять содержимое списка Items например в событии OnChange выпадающий список (dropdown list) просто закрывается. Можно конечно насильно его снова открывать устанавливая свойство Dropdown в True но тогда при вводе каждой новой буквы список на мгновение будет схлопываться и опять открываться (это явно не лучшая идея).
Аватара пользователя
Unvictis
новенький
 
Сообщения: 48
Зарегистрирован: 17.07.2015 18:59:12
Откуда: Kokshetau, Kazakshtan

Re: TComboBox c фильтром списка (как в интернет-поисковиках)

Сообщение sts » 24.08.2015 15:06:45

просто вы не вкурсе - VCL - в первую очередь удовлетворяла потребности Delphi, во вторую - Борланд писал свой бизнесс-софт и в третьих - демка как надо писать компоненты, по этому, в работе, пользуются альтернативными наборами компонентов, где собственно все есть, но это не Lazarus.
sts
постоялец
 
Сообщения: 455
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: TComboBox c фильтром списка (как в интернет-поисковиках)

Сообщение Снег Север » 24.08.2015 17:56:00

Напишите свой компонент - наследник комбобокса - с соответствующим функционалом и поделитесь с сообществом. Вам скажут спасибо.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3053
Зарегистрирован: 27.11.2007 16:14:47

Re: TComboBox c фильтром списка (как в интернет-поисковиках)

Сообщение vitaly_l » 25.08.2015 16:56:02

Unvictis писал(а):Когда пользователь наберёт "Ив" в раскрывающемся списке будут только:
Иванов
Иващенко
Ивин

Я же Вам писал, нужно делать выборку в базе данных, а не в TComboBox. И во всех интернет поисковиках, выборка делается из базы данных, а не из TComboBox. Иначе повиснет сервер, если каждый из 100000000 пользователей будет получать полностью все 55 555 ФИО. Вот Вам уже отвечали на похожий вопрос: viewtopic.php?f=5&t=10417&p=87275#p87275

С другой стороны, если у Вас всего лишь 111 ФИО..., а не 55 555, то используйте не onChange, а onKeyUp и onKeyDown, onMouseDown и т.д.


.

Добавлено спустя 15 минут 54 секунды:
Попробуйте над TComboBox разместить, TEdit и печатать текст там... а в нужный момент раскрывать список TComboBox... при этом список всех ФИО храните в отдельном массиве и выборку делайте оттуда (если Вас база данных не устраивает).
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: TComboBox c фильтром списка (как в интернет-поисковиках)

Сообщение pupsik » 25.08.2015 20:42:47

Unvictis в браузерах используется подобное комбобоксу "поделие". И оно не стандарное из набора готовых компонентов. Сам дельфин, как и лазарь используют стандартный набор компонентов для ОС (грубо говоря). Вам правильно посоветовали: написать свой.

п.с.
vitaly_l вот вы "послали" человека в неведомые края :lol: А сами не удосужились узнать что за бд у него. Вполне возможно локалка на дбфниках...
Ну да ладно. Бывает :wink:

Или вы из класса "спасите, помАгите" в класс "все могу" "поднялись" :lol:
п.с.п.с.
Не судите строго: просто, иногда, сарказм, проскакивает :D
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: TComboBox c фильтром списка (как в интернет-поисковиках)

Сообщение vitaly_l » 25.08.2015 20:54:05

pupsik писал(а):просто, иногда, сарказм, проскакивает

Пупсик... я ведь художник, я и программировать-то толком не умею.
Поэтому Ваш сарказм правильный и очень смешной :cry:

Добавлено спустя 10 минут 52 секунды:
А что к локальной базе на дбф - нельзя обращаться с выборкой???
Ну да ладно, бывает... :cry:

...

Автору(Unvictis): AutoDropDown и AutoCompleteText - Вам в помощь...

...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 234

Рейтинг@Mail.ru
cron