|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||||||
Как добавить в список ListBox большое количество строк, чтобы это было быстро по времени?27.09.2023, 11:31. Показов 6957. Ответов 125
Всем привет! У меня есть листбокс List1 в VB6 и я пытаюсь добавить в этот список много строк, скажем 10 тысяч строк, но я хочу добавить их таким образом, чтобы они добавились быстро по времени, а не ждать целую секунду... Я этого делать не умею, поэтому помогите пожалуйста! Единственный лайфхак который я нашёл это сначала скрывать список а потом показывать так можно добавить в список много строк в 3 раза быстрее, но для 10 тысяч строк это всё равно занимает целых пол секунды времени...
Добавлено через 24 минуты Вопрос: почему не работает сообщение LB_INITSTORAGE? Добавлено через 24 секунды Скорость добавления в листбокс никак не изменилась!
0
|
||||||
| 27.09.2023, 11:31 | |
|
Ответы с готовыми решениями:
125
Как быстро создать список на большое количество элементов? Максимально быстро записать большое количество строк SQLite Как сделать так чтобы из продуктов можно было добавить в блюда и это списывалось все на кухне |
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 27.09.2023, 21:59 [ТС] | |
|
Ура, у меня получилось добавить мгновенно 10 тысяч строк в листбокс, но только если листбокс создан через API.
Добавлено через 4 минуты Сообщение WM_SETREDRAW помогло Добавлено через 2 минуты Даже в MSDN сказано про это: "Это сообщение может быть полезно, если приложение должно добавить несколько элементов в список. Приложение может вызвать это сообщение с параметром wParam со значением FALSE, добавить элементы, а затем снова вызвать сообщение с параметром wParam , равным TRUE."
1
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||||||
| 27.09.2023, 23:34 [ТС] | ||||||
|
А вот и решение:
2
|
||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 28.09.2023, 00:16 [ТС] | |
|
Но этот фокус почему-то не проходит со стандартным встроенным VB'шным списком, я так и не понял почему...
Добавлено через 36 минут Кстати, прямо точно такая же тема как у меня: http://computer-programming-fo... 2eb627.htm Видимо я ни первый пытаюсь это осуществить, и там человек тоже пишет, что SendMessage List1.hwnd, WM_SETREDRAW, False не работает для VB'шного ListBox'а и причина неизвестна... Добавлено через 3 минуты Но с LockWindowUpdate тоже не работает...
1
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||||||||||
| 28.09.2023, 11:59 [ТС] | |||||||||||
|
testuser2, посмотри, пожалуйста, работает ли это турбо-ускорение со стандартным списком в VBA там ListBox1 по моему называется а не List1 просто добавь эту строчку перед массовым добавлением:
Добавлено через 1 минуту Тим70, кстати ты тоже так попробуй в VB.Net
1
|
|||||||||||
|
dive
4988 / 4731 / 849
Регистрация: 13.04.2015
Сообщений: 9,958
|
||
| 28.09.2023, 12:44 | ||
В VBA получить дескриптор элемента не так просто, емнип. Через АПИ надо определять.
0
|
||
| 28.09.2023, 13:17 | ||
|
Добавлено через 15 минут В vba 1 млн строк добавляются присвоением массива за 0,15625 из массива числового типа, и 0,51 с. из строкового массива.
1
|
||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 28.09.2023, 15:18 [ТС] | ||
|
Добавлено через 2 минуты Без hwnd вообще не интересно программировать ![]() Добавлено через 7 минут Тим70, я тут прочитал кое что очень интересное: https://learn.microsoft.com/ru... esktop-7.0 Оказывается есть метод ListBox1.BeginUpdate и ListBox1.EndUpdate которые позволяют быстро добавлять много тысяч строк в листбокс, не знаю есть ли это в VBA но в Vb.net ну точно должно быть) Попробуй плиз Добавлено через 1 минуту И AddRange ещё существует Добавлено через 2 минуты Жаль всего этого нет в VB6, но я нашёл самописный контрол на иностранном форуме ListBoxW который ни только поддерживает уникод, но ещё и так же позволяет добавлять много строк быстро с помощью самописного свойства Redraw (false и true)
1
|
||
|
dive
4988 / 4731 / 849
Регистрация: 13.04.2015
Сообщений: 9,958
|
||
| 28.09.2023, 15:30 | ||
|
0
|
||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 28.09.2023, 15:32 [ТС] | |
|
1
|
|
|
dive
4988 / 4731 / 849
Регистрация: 13.04.2015
Сообщений: 9,958
|
||
| 28.09.2023, 15:50 | ||
|
0
|
||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 28.09.2023, 16:08 [ТС] | |
|
1
|
|
|
Модератор
|
|
| 28.09.2023, 21:08 | |
|
Не усложняйте жизнь пользователям, не добавляйте тысячи и миллионов строк в листбокс - он не предназначен для этого. Тут даже скрол нормальный не сделать мышью при таком количестве элементов. Это равносильно тому что если бы вы запрашивали раздел Visual Basic на этом форуме и вам выдавало все темы от начала существования раздела.
0
|
|
|
Любитель
1047 / 757 / 161
Регистрация: 27.01.2019
Сообщений: 1,530
|
|
| 29.09.2023, 09:18 | |
|
1
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 29.09.2023, 12:15 [ТС] | ||
|
1
|
||
|
785 / 308 / 17
Регистрация: 21.01.2023
Сообщений: 528
|
|
| 29.09.2023, 13:59 | |
|
0
|
|
| 29.09.2023, 15:07 | |
|
HackerVlad, а вот действительно, что побудило сделать такой длинный листбокс. Я здесь упоминал, как одному понадобился многоколоночный листбокс. Так он сетовал именно, на то, что длинны лб использовать неудобно, и что в табличном виде, уже все как бы более наглядно и т.д. Или, допустим, форму поиска (текстбокс) добавить, а в ЛБ выводить только найденный результат.
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 29.09.2023, 17:51 [ТС] | ||
|
Добавлено через 1 минуту Поэтому я и задумался о произовдительности, о скорости, о времени, переходить на ListView или нет и т. д. Добавлено через 36 секунд Одно я знаю точно: я не собираюсь зависить от каких-то других OCX например для ListView Добавлено через 6 минут testuser2, тем более, я обрабатываю папку, вместе со всеми вложенными подпапками, для добавления абсолютно всех файлов, используя рекурсивную функцию поиска файлов) Добавлено через 7 минут кстати говоря функция поиска файлов вместе со всем вложенными подпапками будет сама по себе медленная конечно, но дело в том, что я потом записываю в текстовый файл весь этот список а потом загружаю вот, поэтому тут скорость будет важна для загрузки списка из TXT
1
|
||
| 29.09.2023, 18:06 | ||
|
0
|
||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||
| 29.09.2023, 18:26 [ТС] | ||
|
testuser2, я не понимаю тебя, сначала почитай в википедии что такое MBR а потом говори
Добавлено через 30 секунд Добавлено через 24 секунды Поэтому я и сохраняю потом в TXT Добавлено через 1 минуту Всё это ни то
1
|
||
| 29.09.2023, 18:26 | |
|
Как исправить, чтобы количество столбцов и строк StringGrid было таким, как ввел пользователь Как добавить значения с Листа в Listbox, если количество строк может меняться
Поиск минимального времени выполнения теста, чтобы количество набранных баллов было максимальным Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
|
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
|
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
|
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
|
|
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
|
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока
Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
|
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов
• Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp
• Смежный проект:. . .
|
22. Подключение слоя системной динамики (потоковые диффуры): экономические метрики модели
anaschu 17.06.2026
Апдейт модели: финансовый контур, разделение затрат
Продолжаю развивать модель рабочего коллектива на AnyLogic. В этот раз работа шла над агентом Экономика — финансовым SD-слоем модели. Задача:. . .
|