|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||||||
Как добавить в список ListBox большое количество строк, чтобы это было быстро по времени?27.09.2023, 11:31. Показов 7018. Ответов 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
4990 / 4742 / 850
Регистрация: 13.04.2015
Сообщений: 9,976
|
||
| 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
4990 / 4742 / 850
Регистрация: 13.04.2015
Сообщений: 9,976
|
||
| 28.09.2023, 15:30 | ||
|
0
|
||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 28.09.2023, 15:32 [ТС] | |
|
1
|
|
|
dive
4990 / 4742 / 850
Регистрация: 13.04.2015
Сообщений: 9,976
|
||
| 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,531
|
|
| 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
Сообщений: 529
|
|
| 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, если количество строк может меняться
Поиск минимального времени выполнения теста, чтобы количество набранных баллов было максимальным Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|