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

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

Поиск в TList [D6, WinXP]


Страницы:   1 2

Чипырик ©   (2006-10-23 16:44:00) 

Доброго времени суток....
Как осуществить поиск Записи в компоненте TList.
например: в TEdit пишем слово, в TList курсор автоматически перебрасывается на нужную запись (что-то типа FindNearest)


Ketmar   (2006-10-23 19:30:00) [1]

>[22] Anatoly Podgoretsky(c) 23-Oct-2006, 19:22
>другой конференции у нас нет.
есть "Журнал" aka "бредосборник". %-))


Anatoly Podgoretsky   (2006-10-23 19:22:00) [2]

Надеялся, что раз изначально вопрос был задан не в "Начинающим" (где ему самое место),

Вообще то ему здесь не место, но другой конференции у нас нет. Это самый нижний уровень к сожалению.


Ketmar   (2006-10-23 18:44:00) [3]

телепатор подсказывает, что там просто нет буквального совпадения. например, пробел где-то в конце затесался. или регистр букв не одинаковый.


MetalFan   (2006-10-23 18:35:00) [4]

выкладывай код, так бесполезно разговаривать...


Чипырик   (2006-10-23 18:14:00) [5]


> MetalFan


ListBox1.ItemIndex := ListBox1.Items.IndexOf( Edit4.Text );
Так по прежнему не пашет...
строку ввожу ОнЧанж на Едите4 (в котором ввожу поисковую строку)... Лист бокс у меня всего один на форме.... не пашет


Чипырик   (2006-10-23 18:12:00) [6]


> Джо

Заработало
Пасиба большое


Джо   (2006-10-23 18:10:00) [7]

> [16] Чипырик ©   (23.10.06 18:09)
> ща попробую 2-ой вариант

Второй вариант это — поиск по вхождению в строку. Ты с этим бы разобрался :)


Чипырик   (2006-10-23 18:09:00) [8]

описался вписывал я естественно в Едит4... я не хамлю... , но все равно прошу прощения если что не так....
ща попробую 2-ой вариант


MetalFan   (2006-10-23 18:06:00) [9]

на форме ListBox: TListBox; Edit: TEdit;
в OnChange
 ListBox.ItemIndex := ListBox.Items.IndexOf( Edit.Text );

все работает с твоей какой...


Джо   (2006-10-23 18:01:00) [10]

> [12] Чипырик ©   (23.10.06 17:51)
> > Джо
> Тебе 4-ка не понятна или что?

Мне 4-ка понятна. Мне непонятно, почему OnChage у тебя для Edit 1, а поиск строки из Edit 4. И хамить не стоит.

К слову, мой код буквально воспринимать не следовало. Надеялся, что раз изначально вопрос был задан не в "Начинающим" (где ему самое место), то приложить мозговые усилия для подгона кода к своим нуждам не составит труда. Составило. Разжевываю, тем более, уже в "Начинающим".
function FindPartial (const S: string; Items: TStrings): Integer;
var
 I: Integer;
begin
 Result := -1;
 for I := 0 to Items.Count-1 do
   if Pos (S,Items[I]) <> 0 then
   begin
     Result := I;
     Break
   end
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
 ListBox1.ItemIndex := FindPartial(Edit1.Text,ListBox1.Items)
end;

Просьба опять не перепутать Edit1 и Edit4...


Чипырик   (2006-10-23 17:56:00) [11]

От того что Ветку перенесли в раздел для начинающих, проблема так и не решилась


Чипырик   (2006-10-23 17:51:00) [12]

> SpellCaster
Конечно есть.
В списке
Бука
Бяка
Кака
Мака

В Edit4 набираю Кака, выделение остается на Бука (точнее ничего не выбирается)

> Джо
Тебе 4-кане понятна или что?


MetalFan   (2006-10-23 17:49:00) [13]

что курил автор? ужасно вопрос поставлен %)


SpellCaster   (2006-10-23 17:46:00) [14]

А нужная строка-то в списке есть? ;)


Джо   (2006-10-23 17:46:00) [15]

> [8] Чипырик ©   (23.10.06 17:43)
> Вписал в Edit 1.OnChange


> .IndexOf(Edit 4.Text)

Как понимать тебя?


Чипырик   (2006-10-23 17:43:00) [16]

Вписал в Edit1.OnChange
ListBox1.ItemIndex := ListBox1.Items.IndexOf(Edit4.Text)
Результат нулевой. На нужную строку выделение не скачет, как было на 1 строке, так там и осталось


Чипырик   (2006-10-23 17:40:00) [17]

ща попробую


Джо   (2006-10-23 17:13:00) [18]

В общем, сошлись, вроде, что имеется в виду TListBox. :) Автору: в событии OnChage для TEdit напиши что-то в духе:
ListBox1.ItemIndex := ListBox1.Items.IndexOf(Edit1.Text)
Дополнить в соответствии с логикой поиска.


default   (2006-10-23 17:09:00) [19]


>  в компоненте TList.

а ещё TList это компонент


Джо   (2006-10-23 17:07:00) [20]

> [3] Сергей М. ©   (23.10.06 17:04)
>
> > Выделенный элемент (строка)
>
>
> Какие м.б. строки в TList ?

К тому же, еще и "выделенные". :)


Страницы:   1 2

Наверх

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