Delphi Search Редактировать компонент - PullRequest
4 голосов
/ 20 апреля 2010

Мне нужен компонент Delphi для Win32 Delphi 2007, который имеет такие функции, как текстовое поле поиска Google.

** Пока пользователь пишет ключ поиска, он должен заполнить / обновить список значениями, и пользователь может выбрать одно из них.

** Пользователь может перемещаться вверх и вниз по списку и выбирать один из них.

** Список должен содержать коды и текстовую пару, чтобы пользователь мог выбирать текст, а я - код для операций с базой данных.

(Google может выделить текст поиска в списке, но я думаю, что это невозможно с Delphi 2007, поэтому это не ожидается.)

Я попробовал Dev Express TcxMRUEdit, однако он не соответствует моим потребностям

Ответы [ 3 ]

2 голосов
/ 20 апреля 2010

Поскольку у вас есть DevExpress, почему бы вам не попробовать cxLookupComboBox в lsEditMode и с ImmediateDropDown = True?

1 голос
/ 30 июня 2015

Проверьте компоненты woll2woll. TLookupcombobox делает это начиная с Delphi 3 (или ранее). Это не спам, я просто использую библиотеку.

http://www.woll2woll.com/

0 голосов
/ 18 мая 2010

У меня тоже была такая же проблема, и, к сожалению, я не нашел подходящий компонент. Я также был вдохновлен от Google.

Так что мне оказалось проще "смоделировать компонент", используя поле редактирования и сетку, расположенную под ним. Когда пользователь вводит что-то в поле ввода, запрос обновляется, и в таблице отображаются правильные результаты. У меня есть много столбцов в сетке, результаты запроса пытаются сопоставить все поля (поэтому, если я наберу 'po', запрос вернет все записи, где любое поле похоже на 'po%'). Я также добавил задержку в 500 мс после того, как пользователь печатает, чтобы избежать слишком большого количества ненужных запросов (другой подход может заключаться в том, чтобы завершить поток, когда пользователь нажимает новый ключ, если запрос выполняется в потоке).

Таким образом, я получил требуемую функциональность, даже если без выделения текста поиска все равно мои пользователи будут в восторге от этого.

В каждом месте, где я использую этот «компонент», я прикрепляю запрос во время выполнения, чтобы он мог использоваться во многих различных формах.

Меня почему-то также вдохновил пользовательский интерфейс Skype: когда вы отображаете список контактов, вы можете что-то напечатать, и контакты будут отфильтрованы соответствующим образом (Skype использует поле редактирования + сетка / список).

...