Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
ВнизПоиск в TList Найти похожие ветки
← →
Чипырик © (2006-10-23 16:44) [0]Доброго времени суток....
Как осуществить поиск Записи в компоненте TList.
например: в TEdit пишем слово, в TList курсор автоматически перебрасывается на нужную запись (что-то типа FindNearest)
← →
Ketmar © (2006-10-23 16:56) [1]а что такое "курсор в TList" и как он выглядит???
← →
Чипырик © (2006-10-23 17:01) [2]
> Ketmar
ну не курсор, а выделенный Item так сказать. Выделенный элемент (строка)
← →
Сергей М. © (2006-10-23 17:04) [3]
> Выделенный элемент (строка)
Какие м.б. строки в TList ?
Ты м.б. ведешь речь о TListBox, а не о TList ?
← →
Джо © (2006-10-23 17:07) [4]> [3] Сергей М. © (23.10.06 17:04)
>
> > Выделенный элемент (строка)
>
>
> Какие м.б. строки в TList ?
К тому же, еще и "выделенные". :)
← →
default © (2006-10-23 17:09) [5]
> в компоненте TList.
а ещё TList это компонент
← →
Джо © (2006-10-23 17:13) [6]В общем, сошлись, вроде, что имеется в виду TListBox. :) Автору: в событии OnChage для TEdit напиши что-то в духе:
ListBox1.ItemIndex := ListBox1.Items.IndexOf(Edit1.Text)
Дополнить в соответствии с логикой поиска.
← →
Чипырик © (2006-10-23 17:40) [7]ща попробую
← →
Чипырик © (2006-10-23 17:43) [8]Вписал в Edit1.OnChange
ListBox1.ItemIndex := ListBox1.Items.IndexOf(Edit4.Text)
Результат нулевой. На нужную строку выделение не скачет, как было на 1 строке, так там и осталось
← →
Джо © (2006-10-23 17:46) [9]> [8] Чипырик © (23.10.06 17:43)
> Вписал в Edit1.OnChange
> .IndexOf(Edit4.Text)
Как понимать тебя?
← →
SpellCaster (2006-10-23 17:46) [10]А нужная строка-то в списке есть? ;)
← →
MetalFan © (2006-10-23 17:49) [11]что курил автор? ужасно вопрос поставлен %)
← →
Чипырик © (2006-10-23 17:51) [12]> SpellCaster
Конечно есть.
В списке
Бука
Бяка
Кака
Мака
В Edit4 набираю Кака, выделение остается на Бука (точнее ничего не выбирается)
> Джо
Тебе 4-ка не понятна или что?
← →
Чипырик © (2006-10-23 17:56) [13]От того что Ветку перенесли в раздел для начинающих, проблема так и не решилась
← →
Джо © (2006-10-23 18:01) [14]> [12] Чипырик © (23.10.06 17:51)
> > Джо
> Тебе 4-ка не понятна или что?
Мне 4-ка понятна. Мне непонятно, почему OnChage у тебя для Edit1, а поиск строки из Edit4. И хамить не стоит.
К слову, мой код буквально воспринимать не следовало. Надеялся, что раз изначально вопрос был задан не в "Начинающим" (где ему самое место), то приложить мозговые усилия для подгона кода к своим нуждам не составит труда. Составило. Разжевываю, тем более, уже в "Начинающим".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...
← →
MetalFan © (2006-10-23 18:06) [15]на форме ListBox: TListBox; Edit: TEdit;
в OnChange
ListBox.ItemIndex := ListBox.Items.IndexOf( Edit.Text );
все работает с твоей какой...
← →
Чипырик © (2006-10-23 18:09) [16]описался вписывал я естественно в Едит4... я не хамлю... , но все равно прошу прощения если что не так....
ща попробую 2-ой вариант
← →
Джо © (2006-10-23 18:10) [17]> [16] Чипырик © (23.10.06 18:09)
> ща попробую 2-ой вариант
Второй вариант это — поиск по вхождению в строку. Ты с этим бы разобрался :)
← →
Чипырик © (2006-10-23 18:12) [18]
> Джо
Заработало
Пасиба большое
← →
Чипырик © (2006-10-23 18:14) [19]
> MetalFan
ListBox1.ItemIndex := ListBox1.Items.IndexOf( Edit4.Text );
Так по прежнему не пашет...
строку ввожу ОнЧанж на Едите4 (в котором ввожу поисковую строку)... Лист бокс у меня всего один на форме.... не пашет
← →
MetalFan © (2006-10-23 18:35) [20]выкладывай код, так бесполезно разговаривать...
← →
Ketmar © (2006-10-23 18:44) [21]телепатор подсказывает, что там просто нет буквального совпадения. например, пробел где-то в конце затесался. или регистр букв не одинаковый.
← →
Anatoly Podgoretsky © (2006-10-23 19:22) [22]Надеялся, что раз изначально вопрос был задан не в "Начинающим" (где ему самое место),
Вообще то ему здесь не место, но другой конференции у нас нет. Это самый нижний уровень к сожалению.
← →
Ketmar © (2006-10-23 19:30) [23]>[22] Anatoly Podgoretsky(c) 23-Oct-2006, 19:22
>другой конференции у нас нет.
есть "Журнал" aka "бредосборник". %-))
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.045 c