|
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
|
|
Поиск в ListBox11.10.2014, 18:55. Показов 6444. Ответов 24
Метки нет (Все метки)
Собственно такой вопрос... У мен я в ListBox ооооочень много значений. Поэтому нужен поиск по этим элементам. Сделать поиск по полному совпадение Edit1->Text и ListBox1->Items->Strings[i] не проблема, но допустим такая ситуация: человек знает лишь половину названия эл-та которого он ищет. Нужно что бы тогда отобразились что называется элементы по "совпадению". Может кто подскажет как такое реализивать..
Ещё лучше человек ввёл символы в Edit и лист бокс обновился, а там эл-т которые начинаются с таких букв..
0
|
|
| 11.10.2014, 18:55 | |
|
Ответы с готовыми решениями:
24
Поиск в ListBox При выделении строки в ListBox отображать ее в Edit, где можно отредактировать и заменить в ListBox-е Перенести данные из ListBox на форме в Listbox на PageСontrol |
|
|
|
| 11.10.2014, 19:10 | |
|
Есть методы Pos() и IndexOf(). Есть регулярки, если и этого окажется мало.
Обновление - тоже легко. Сохраняешь строки с ListBox'a в TStringList, выполняешь поиск, очищаешь листбокс и найденное в него добавляешь.
0
|
|
|
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
|
|
| 12.10.2014, 00:21 [ТС] | |
|
BRcr, у меня 7к элементов там, а то и больше под 15к... кидать из стринга в лист при малейшем изменении буквы в поиске - жестоко. или другого способа нету?
0
|
|
|
|
|||
| 12.10.2014, 13:11 | |||
|
Тогда я вообще не вижу смысла хранить список непосредственно в листбоксе. Зачем? Чтобы иметь возможность покрутить мышкой 15000 строк?
Лучше уж в таком случае поисковую систему рассматривать как основной способ доступа.
0
|
|||
|
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
|
|
| 12.10.2014, 16:11 [ТС] | |
|
BRcr, нужно что бы так человек видел их, т.е. листбокс нужен..
0
|
|
|
|
||
| 12.10.2014, 16:26 | ||
|
Разбить нельзя по группам по какому либо признаку и отображать только запрошенную пользователем часть(категорию)? Ну и если элементы действительно элементы почему не парсить поэлементно ...
0
|
||
|
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
|
|
| 12.10.2014, 17:00 [ТС] | |
|
Avazart, понимаешь эти элементы они грубо говоря динамичны. а разбить на категории точно никак, ибо там идут элементы, при клике на которые открывается массив данных в стпинггриде, индекс соответствует itemindex листбокса. + данные в листбоксе изменяются в соответствии с выбранным комбобоксом.
Тогда хотя бы что бы список не обновлялся а рработал по принципы, выделил первое совпадение , а ,дальше по кнопками след совпадение и т.д.
0
|
|
|
Супер-модератор
|
|||||||||||
| 12.10.2014, 17:44 | |||||||||||
Сообщение было отмечено BRcr как решение
Решение
semihal, сделай листбокс виртуальным, и...
2
|
|||||||||||
|
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
|
|
| 12.10.2014, 18:34 [ТС] | |
|
UI, не совсем с виду разобрался в коде.. Дома буду запущу в билдере ._.
Добавлено через 8 минут P.S. не понялалгоритма с abs()
0
|
|
|
Супер-модератор
|
|
| 12.10.2014, 19:36 | |
|
Идея такая. Тем элементам, которые содержат требуемую подстроку, устанавливаем в поле Objects отрицательное значение, тем, которые не содержат - положительное. И пересортировываем StringList так, чтобы все элементы с отрицательным "объектом" были выше положительных (таким образом сверху окажутся требуемые строки, содержащие заданную подстроку)... Ограничиваем число элементов ListBox-а, и вуаля, требуемое поведение реализовано.
Что именно непонятно? Сам алгоритм сортировки? А ты в курсе, что вообще должна возвращать функция, передаваемая в CustomSort? Когда она возвращает 1 а когда (-1)?
0
|
|
|
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
|
||||||
| 13.10.2014, 09:00 [ТС] | ||||||
Добавлено через 4 часа 26 минут UI, проверил код. Работает, вообще на УРА. Просто шикарно. Спасибо тебе огромное, дружище!!! ![]() Добавлено через 1 час 23 минуты UI, но есть 1 минус. Если ты ввёл, а совпадений нету, то при стирании листбокс остаётся пустым.. Добавлено через 7 часов 12 минут UI, Прошу прощения. Я видимо на ночь глядя сам уже тупить начала, всё отлично работает, косяк был с моей стороны, прошу прощения !
0
|
||||||
|
0 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 8
|
|
| 09.11.2014, 11:15 | |
|
UI,на каком билдере работаете? у меня ХЕ 3 выдает ошибку тут L->CustomSort(MyCompare);
0
|
|
|
Супер-модератор
|
|
| 09.11.2014, 14:16 | |
|
RAD 2009/XE2/XE3/XE4, ни на одном ошибки нет... А если у тебя выдает ошибку - надо хотя бы ее описание привести, кто знает на что теперь способны программисты. Даже код скопировать/вставить и то не могут нормально...
0
|
|
|
0 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 8
|
|
| 10.11.2014, 19:19 | |
|
[bcc32 Error] realiz.cpp(33): E2034 Cannot convert 'int (_fastcall * (_closure )(TStringList *,int,int))(TStringList *,int,int)' to 'int (_fastcall *)(TStringList *,int,int)'
[bcc32 Error] realiz.cpp(33): E2342 Type mismatch in parameter 'Compare' (wanted 'int (_fastcall *)(TStringList *,int,int)', got 'void') Такие вот ошибки выдает
0
|
|
|
0 / 0 / 1
Регистрация: 10.12.2012
Сообщений: 8
|
|
| 10.11.2014, 20:21 | |
|
Спасибо,все ОК!Невнимательность и спешка)))
0
|
|
|
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
|
||||||
| 23.02.2015, 22:25 [ТС] | ||||||
|
Через какое-то время снова понадобилась это тема...
Но понять никак не могу, в чём дело, что не так Оо...
0
|
||||||
|
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
|
||||||
| 23.02.2015, 23:09 [ТС] | ||||||
|
Попытался ещё раз, бывает она начинает искать, а потом тупо зависает..
Добавлено через 34 минуты Выяснил в каком месте ошибка:
0
|
||||||
|
|
|
| 23.02.2015, 23:26 | |
|
Шта? Кто такое byte? Строчки текста что ли хочешь заложить под Objects?
0
|
|
| 23.02.2015, 23:26 | |
|
Помогаю со студенческими работами здесь
20
Возможно ли при выборе через opendialog заносить в ListBox имена файлов, а при чтении из ListBox получать путь к файлам?
Поиск в listbox Поиск в listbox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|