|
6 / 6 / 3
Регистрация: 04.10.2014
Сообщений: 138
|
|
Поиск в ListBox11.10.2014, 18:55. Показов 6438. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|