Инкрементальный поиск в 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) элемента.
|