![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
На форме листбокс и эдит.
В листбоксе несколько строк: 0001, 0002, 0011, 1112. Как сделать чтобы при записи в эдит, в листбоксе отфильтровывались строки? Например. Эдит - 1, листбокс - 0001, 0011, 1112. Эдит - 2, листбокс - 0002, 1112. Эдит - 011, листбокс - 0011. |
|
#2
|
|||
|
|||
|
Код:
i:=0; repeat if (Pos(Edit1.text,listbox1.items[i])=0) then listbox1.items[i].delete; i++ until i=listbox1.count-1; |
|
#3
|
|||
|
|||
|
Цитата:
![]() |
|
#4
|
|||
|
|||
|
и else перед inc(i)/i++
|
|
#5
|
|||
|
|||
|
Можно так. Чтобы покороче.
Код:
For i:= 0 to (listbox1.count - 1) do if (Pos(Edit1.text,listbox1.items[i])=0) then listbox1.items[i].delete; Последний раз редактировалось nixel, 06.04.2012 в 15:55. |
|
#6
|
|||
|
|||
|
Цитата:
Расскажите, пожалуйста, может у меня ошибка в логике. |
|
#7
|
|||
|
|||
|
ну я так понял, после удаления не надо изменять i, т.к. элементы сами сместятся и под тем же i уже будет новый элемент
другими словами без else будет перепрыгивать некоторые элементы, не проверяя |
| Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
nixel (06.04.2012)
| ||
|
#8
|
||||
|
||||
|
Если ты удалил итем, на его место стает следующий. И еще в конце все-равно сортировать листбокс нужно - по возрастанию чтоли.
|
|
#9
|
|||
|
|||
|
Цитата:
|
|
#10
|
|||
|
|||
|
Цитата:
Слушай, и правда! Недавно похожий алгоритм писал, а сейчас поторопился... |