Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Быстрый поиск в TListBox


Автор: StayAtHome 5.5.2004, 00:26
Delphi 6 Enterprise Update pack 2 + WinXP SP1

Если в обычном TListBox включить AutoComplete:=True, то, согласно справке (и исходникам) когда я нажимаю в нем алфавитно-цифровые клавиши, он должен "искать" строку, которая начинается с введенных символов. (cм. procedure TCustomListBox.KeyPress) Но, если в списке есть две строки начинающиеся с одного символа -- фокус устанавливается всегда на ВТОРУЮ.
Думаю, дело в том, что после "поиска" строки методами VCL, срабатывет также стандартный поиск "виндовсовского" контрола List Box. Вроде-бы для предотвращения этого в указанной TCustomListBox.KeyPress есть следующие строки:
Код
if not Ord(Key) in [VK_RETURN, VK_BACK, VK_ESCAPE] then
     Key := #0;  // Clear so that the listbox's default search mechanism is disabled

Но они почему-то не срабатывают.

Если же отключить AutoComplete, то работает только стандарный "поиск" контрола Windows и все в порядке. Но искать он в отличие от TListBox умеет только по первой букве. :-(

Подскажите, ПОЧЕМУ так случается?! Я могу написать поиск сам, но это дело принципа. :-)

Автор: p0s0l 6.5.2004, 20:18
У меня Delphi7 и такой проблемы нет... smile.gif


Автор: Medved 6.5.2004, 22:15
Аналогично.

Автор: StayAtHome 7.5.2004, 00:14
Гм.. Что-ж мне на новую версию переходить из-за такой мелочи?! Эй, у кого шестая Делфи, отзовитесь! wink.gif

Автор: Akella 7.5.2004, 08:07
Переходи на Delphi-7, я тоже не хотел, но перешел и никаких проблем. Все проекты обновишь без проблем.

Автор: Maverick 7.5.2004, 08:43
Ага, а компоненты сторонние новые искать, а репортинг?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)