![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Позиционирование в ListBox или любом другом списке. [D5, WinXP]
harismatik © (2002-11-25 11:25:00)У меня есть на форме компонент TEdit и TListBox с некоторым набором строк. Мне необходимо сделать так, чтоб при вводе определенного текста в TEdit выделялась соответствующая строка в списке (Аналогично как сделано в системе Хелпа на странице Find).
mukha (2002-11-26 10:46:00) [1]А может так?
Сначала установить Listbox1.Sorted:=true;
А затем:
procedure TForm1.Edit1Change(Sender: TObject);
begin
Listbox1.Perform( LB_SELECTSTRING ,0,LongInt(pchar(Edit1.Text)));
end;
harismatik (2002-11-25 12:23:00) [2]2 Alex YСпасибо. Получилось.
Alex Y (2002-11-25 12:14:00) [3]Попробуй
ItemIndex := Perform(LB_SELECTSTRING, -1, LongInt(S));
harismatik (2002-11-25 11:53:00) [4]По полному мне не подходит. Мне нужно именно по части сторки, начиная с первой буквы.
stone (2002-11-25 11:51:00) [5]попробуй
with ListBox1 do
ItemIndex := IndexOf(s);
но это только по полному значению строки
harismatik (2002-11-25 11:42:00) [6]Я использую такой код:
procedure TForm1.Edit1Change(Sender: TObject);
var s:string;
begin
s:=Edit1.Text;
with ListBox1 do
ItemIndex := Perform(LB_SELECTSTRING, ItemIndex, LongInt(S));
end;
Если есть какие соображения по этому поводу, то прошу выразить, бо задачу решить надо.
stone (2002-11-25 11:37:00) [7]смотря как ты находишь строку в листбоксе
harismatik (2002-11-25 11:33:00) [8]А если стираю букву? Оно прыгает дальше вниз по списку, а должно бы вверх. Как это сделать?
Song (2002-11-25 11:28:00) [9]TEdit.onChange
Чего не получается?