скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Инкрементальный поиск в ListBox



Предположим, что ListBox сортируется, это не трудно. Вы должны разместить компонент Edit выше ListBox и создать следующий обработчик его случая OnChange:


procedure TForm1.Edit1Change(Sender: TObject);
var
  Ndx: Word;
begin
  with Sender as TEdit do
  begin
    Ndx := ListBox1.Items.Add(Text);
    ListBox1.Items.Delete(Ndx);
    if CompareText(Text, Copy(ListBox1.Items[Ndx], 1, Length(Text))) = 0 then
      ListBox1.ItemIndex := Ndx
    else
      ListBox1.ItemIndex := -1;
  end;
end;

Пытаясь вставить часть текста, вы просто просматриваете список на предмет его наличия. Если актуальный элемент в этой позиции содержит "частичный" текст, мы выводим его, в противном случае делаем так, чтобы ListBox не имел выделенного (ItemIndex) элемента.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook