![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 19.03.2007
Сообщений: 8
|
![]()
Здравствуйте!
Помогите пожалуйста разобраться с проблемой. Есть код: var i: integer; flag: boolean; begin if personslist.Items.Count=0 then begin showmessage('There are no elements to find'); mainform.Show; end else if edit1.Text='' then begin showmessage('Enter something to find'); mainform.Show; end; i:=0; flag:=false; repeat if Pos(LowerCase(Edit1.Text),LowerCase (personslist.Items.Strings[i]))<>0 then begin personslist.Selected[i]:=true; n:=i; flag:=true; end; inc(i); until (i=personslist.Count-1) or (flag=true); end; Этот код работает, но когда в списке более 300 элементов,то поиск подглючивает. Он никак не хочет находить последние несколько элементов. Заранее спасибо. |
![]() |
![]() |
![]() |
#2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Вроде явных грубых ошибок не видно, но:
1. После mainform.Show; должно следовать exit; Думаю, понятно, почему... 2. Гораздо проще цикл организовать так: for i:=0 to personslist.Items.Count-1 do begin .... if not flag then break; ...... end; 3. Условие по Pos лучше cделать так: if Pos(....)>0 then Сейчас не вспомню, но в каких-то случаях эта функция может возвращать -1. Кстати, обратите внимание на вашу строку "until (i=personslist.Count-1) or (flag=true);" Последний раз редактировалось mihali4; 19.03.2007 в 17:58. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 19.03.2007
Сообщений: 8
|
![]()
Спасибо за ответ.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск в listbox, но дургой | Черничный | Общие вопросы Delphi | 3 | 30.06.2008 21:28 |
Поиск в ListBox | Spectre | Компоненты Delphi | 9 | 14.01.2008 20:04 |
[ C# ]::[ ListBox ] | Fire.id | Общие вопросы .NET | 1 | 13.01.2008 21:07 |
из ListBox в БД | Spectre | БД в Delphi | 5 | 31.12.2007 13:58 |
Поиск записей в ListBox | Askat | БД в Delphi | 1 | 18.06.2007 10:05 |