Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Позиционирование в 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
Чего не получается?


Наверх

Титульная страница Поиск, карта сайта Написать письмо