Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2008, 21:51   #1
Spectre
 
Регистрация: 30.12.2007
Сообщений: 6
По умолчанию Поиск в ListBox

При осуществлении поиска в ListBox я использую функцию Perform
Tlistbox.perform(LB_SELECTSTRING,0, logint(Pchar(s))).Все хорошо,
работает. Как мне вывести сообщение если слово, которое я ищу не найдено??? Помигите пожалуйста.
Spectre вне форума Ответить с цитированием
Старый 10.01.2008, 22:25   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

if Tlistbox.perform.....=0 then
ShowMessage('А вот она!') else
ShowMessage('Нет такой строки!');
mihali4 вне форума Ответить с цитированием
Старый 10.01.2008, 22:54   #3
Spectre
 
Регистрация: 30.12.2007
Сообщений: 6
По умолчанию

Я использую TMaskEdit [ХХХХ] когда пытаюсь ввести например [0010] то уже при первой цифре выводится сообщение "Такой строки нет". Здесь по другому как то надо.
Spectre вне форума Ответить с цитированием
Старый 11.01.2008, 00:29   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

if Tlistbox.perform.....=LB_ERR then
ShowMessage('Нет такой строки!');
pu4koff вне форума Ответить с цитированием
Старый 11.01.2008, 08:55   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что IndexOf уже отменили?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.01.2008, 09:53   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что IndexOf уже отменили?
Если мне не изменяет память, то IndexOf ищет точное совпадение, т.е. при поиске 'п' строка 'превед' не найдеца, а посредством LB_SELECTSTRING помойму найдет.
pu4koff вне форума Ответить с цитированием
Старый 11.01.2008, 22:56   #7
werser
Форумчанин
 
Регистрация: 11.06.2007
Сообщений: 233
По умолчанию

Можно еще использовать Try/except
werser вне форума Ответить с цитированием
Старый 11.01.2008, 23:27   #8
AnalogXP
Пользователь
 
Аватар для AnalogXP
 
Регистрация: 11.01.2008
Сообщений: 42
По умолчанию

Я проблем не замечал с этим. У меня все находит:

Код:
procedure TForm1.Edit1Change(Sender: TObject);
begin
   ListBox1.Perform(LB_SELECTSTRING, -1, longint(Pchar(Edit1.Text)));
end;
AnalogXP вне форума Ответить с цитированием
Старый 14.01.2008, 19:52   #9
Spectre
 
Регистрация: 30.12.2007
Сообщений: 6
По умолчанию

Так что же делать? подскажите...
Spectre вне форума Ответить с цитированием
Старый 14.01.2008, 20:04   #10
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

я же тебе написал, что надо проверять результат perform с LB_ERR. если равно, значит не нашлось ничего. и второй параметр перформа по идее надо ставить -1, т.к. в мсдн написано, что это индекс, после которого будет искаться элемент
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в listbox, но дургой Черничный Общие вопросы Delphi 3 30.06.2008 21:28
[ 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
Поиск в ListBox kodov Компоненты Delphi 2 19.03.2007 20:58