![]() |
|
|
Регистрация | << Правила форума >> | 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
|
|||
|
|||
![]() Цитата:
![]() |