|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||||||
Как добавить в список ListBox большое количество строк, чтобы это было быстро по времени?27.09.2023, 11:31. Показов 8099. Ответов 125
Всем привет! У меня есть листбокс List1 в VB6 и я пытаюсь добавить в этот список много строк, скажем 10 тысяч строк, но я хочу добавить их таким образом, чтобы они добавились быстро по времени, а не ждать целую секунду... Я этого делать не умею, поэтому помогите пожалуйста! Единственный лайфхак который я нашёл это сначала скрывать список а потом показывать так можно добавить в список много строк в 3 раза быстрее, но для 10 тысяч строк это всё равно занимает целых пол секунды времени...
Добавлено через 24 минуты Вопрос: почему не работает сообщение LB_INITSTORAGE? Добавлено через 24 секунды Скорость добавления в листбокс никак не изменилась!
0
|
||||||
| 27.09.2023, 11:31 | |
|
Ответы с готовыми решениями:
125
Как быстро создать список на большое количество элементов? Максимально быстро записать большое количество строк SQLite Как сделать так чтобы из продуктов можно было добавить в блюда и это списывалось все на кухне |
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 27.09.2023, 21:59 [ТС] | |
|
Ура, у меня получилось добавить мгновенно 10 тысяч строк в листбокс, но только если листбокс создан через API.
Добавлено через 4 минуты Сообщение WM_SETREDRAW помогло Добавлено через 2 минуты Даже в MSDN сказано про это: "Это сообщение может быть полезно, если приложение должно добавить несколько элементов в список. Приложение может вызвать это сообщение с параметром wParam со значением FALSE, добавить элементы, а затем снова вызвать сообщение с параметром wParam , равным TRUE."
1
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||||||
| 27.09.2023, 23:34 [ТС] | ||||||
|
А вот и решение:
2
|
||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 28.09.2023, 00:16 [ТС] | |
|
Но этот фокус почему-то не проходит со стандартным встроенным VB'шным списком, я так и не понял почему...
Добавлено через 36 минут Кстати, прямо точно такая же тема как у меня: http://computer-programming-fo... 2eb627.htm Видимо я ни первый пытаюсь это осуществить, и там человек тоже пишет, что SendMessage List1.hwnd, WM_SETREDRAW, False не работает для VB'шного ListBox'а и причина неизвестна... Добавлено через 3 минуты Но с LockWindowUpdate тоже не работает...
1
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|||||||||||
| 28.09.2023, 11:59 [ТС] | |||||||||||
|
testuser2, посмотри, пожалуйста, работает ли это турбо-ускорение со стандартным списком в VBA там ListBox1 по моему называется а не List1 просто добавь эту строчку перед массовым добавлением:
Добавлено через 1 минуту Тим70, кстати ты тоже так попробуй в VB.Net
1
|
|||||||||||
|
bite
5011 / 4841 / 852
Регистрация: 13.04.2015
Сообщений: 10,121
|
||
| 28.09.2023, 12:44 | ||
В VBA получить дескриптор элемента не так просто, емнип. Через АПИ надо определять.
0
|
||
| 28.09.2023, 13:17 | ||
|
Добавлено через 15 минут В vba 1 млн строк добавляются присвоением массива за 0,15625 из массива числового типа, и 0,51 с. из строкового массива.
1
|
||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||
| 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
|
||
|
bite
5011 / 4841 / 852
Регистрация: 13.04.2015
Сообщений: 10,121
|
||
| 28.09.2023, 15:30 | ||
|
0
|
||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 28.09.2023, 15:32 [ТС] | |
|
1
|
|
|
bite
5011 / 4841 / 852
Регистрация: 13.04.2015
Сообщений: 10,121
|
||
| 28.09.2023, 15:50 | ||
|
0
|
||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 28.09.2023, 16:08 [ТС] | |
|
1
|
|
|
Модератор
|
|
| 28.09.2023, 21:08 | |
|
Не усложняйте жизнь пользователям, не добавляйте тысячи и миллионов строк в листбокс - он не предназначен для этого. Тут даже скрол нормальный не сделать мышью при таком количестве элементов. Это равносильно тому что если бы вы запрашивали раздел Visual Basic на этом форуме и вам выдавало все темы от начала существования раздела.
0
|
|
|
Любитель
1074 / 786 / 161
Регистрация: 27.01.2019
Сообщений: 1,552
|
|
| 29.09.2023, 09:18 | |
|
1
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||
| 29.09.2023, 12:15 [ТС] | ||
|
1
|
||
|
1024 / 313 / 18
Регистрация: 21.01.2023
Сообщений: 552
|
|
| 29.09.2023, 13:59 | |
|
0
|
|
| 29.09.2023, 15:07 | |
|
HackerVlad, а вот действительно, что побудило сделать такой длинный листбокс. Я здесь упоминал, как одному понадобился многоколоночный листбокс. Так он сетовал именно, на то, что длинны лб использовать неудобно, и что в табличном виде, уже все как бы более наглядно и т.д. Или, допустим, форму поиска (текстбокс) добавить, а в ЛБ выводить только найденный результат.
0
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||
| 29.09.2023, 17:51 [ТС] | ||
|
Добавлено через 1 минуту Поэтому я и задумался о произовдительности, о скорости, о времени, переходить на ListView или нет и т. д. Добавлено через 36 секунд Одно я знаю точно: я не собираюсь зависить от каких-то других OCX например для ListView Добавлено через 6 минут testuser2, тем более, я обрабатываю папку, вместе со всеми вложенными подпапками, для добавления абсолютно всех файлов, используя рекурсивную функцию поиска файлов) Добавлено через 7 минут кстати говоря функция поиска файлов вместе со всем вложенными подпапками будет сама по себе медленная конечно, но дело в том, что я потом записываю в текстовый файл весь этот список а потом загружаю вот, поэтому тут скорость будет важна для загрузки списка из TXT
1
|
||
| 29.09.2023, 18:06 | ||
|
0
|
||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||
| 29.09.2023, 18:26 [ТС] | ||
|
testuser2, я не понимаю тебя, сначала почитай в википедии что такое MBR а потом говори
Добавлено через 30 секунд Добавлено через 24 секунды Поэтому я и сохраняю потом в TXT Добавлено через 1 минуту Всё это ни то
1
|
||
| 29.09.2023, 18:26 | |
|
Как исправить, чтобы количество столбцов и строк StringGrid было таким, как ввел пользователь Как добавить значения с Листа в Listbox, если количество строк может меняться
Поиск минимального времени выполнения теста, чтобы количество набранных баллов было максимальным Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|