![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скрол. ListBox1, чтоб показ. записи из Списка(1000000) порциями? [D7, WinXP]
Dr. Andrew © (2006-06-07 22:47:00)Есть список, который состоит из 100000 записей. Мне необходимо загружать в компонент ListBox1 записи порциями, например по 100 записей. При этом скролируя компонент ListBox1 необходимо, чтобы записи постоянно обновлялись. "Ушедшие" элементы из поля видимости компонента ListBox1 заменялись новыми из последовательного списка из 1000000 элементов. Что-то вроде перемещения "окна" (ListBox1) с размером в 100 записей (элементов) по базе данных из 100000 записей. Наверно лучший аналог для этой задичи - логарифмическая инженерная линейка с прозрачным "окошком" перемещающейся по линейке. Пожалуйста, Мастера, подскажите практическое решение данной задачи.
Графически можно это визуализировать так:
----- 0 запись
-----
-----
-------------------------------------------N1 запись (начало)
-----
----------- 1) эти записи отображены в ListBox1
----- ---------------------------------------- после скролирования N1 запись (новое начало)------------------------------------------N2 запись (предел)
----- 2) эти записи отображены в ListBox1 (просле скролирования, например сторону увеч. порядковых номеров элементов) ---------- ---------------------------------------- после скролирования N2 запись (новый предел)----
......... и так далее
------ 100000 запись
Sergey13 (2006-06-08 11:27:00) [21]2 [7] Dr. Andrew (08.06.06 11:20)
Если
>Я не работаю с базами данных.
то
>Поэтому мне не годятся решения с DataSet.
это голословное утверждение.
>Это совсем для иной цели.
БД - это не цель. Это метод решения подобных задач.
Вот например искать в твоем списке надо будет? Или просто листать 100000.
ЮЮ (2006-06-08 11:25:00) [22]Для начала расскажи, что из себя представляет большой список..
Какого класса объект?
Dr. Andrew (2006-06-08 11:20:00) [23]Спасибо всем за помощь! Задача остается. Я не работаю с базами данных. Это совсем для иной цели. Поэтому мне не годятся решения с DataSet. Мастера все же может кто-то приведет конкретный пример заполнения списка порциями от исходного большого списка. Не понимаю почему модератор переместил мой вопрос к начинающим. Я достаточно четко поставил вопрос и он достаточно серьезный. Пожалуйста, приведите или ссылку на готовый алгоритм или покажите как это можно сделать. Всем спасибо!
begin...end (2006-06-08 07:31:00) [24]ListBox вообще-то тоже может быть виртуальным. Это так, к слову.
ЮЮ (2006-06-08 04:56:00) [25]Графически можно это визуализировать так:
Да уж, визуализировал, так визуализировал. :)
десь речь идет только о том чтобы в компоненте ListBox1 загружать одновременно ограниченное число записей и все.
Так проблема в чем? Что не удается?
Переместиться в DataSet-e к началу блока (MoveBy) или заполнить ListBox1?
Dr. Andrew (2006-06-07 23:43:00) [26]Нет задача совсем не такая уж и сложная для тех кто будет "лопатить". Здесь речь идет только о том чтобы в компоненте ListBox1 загружать одновременно ограниченное число записей и все. ListView не годится. Может кто-то подскажет ссылку на готовый алгоритм или пример?
Jolik (2006-06-07 23:30:00) [27]Думаю надо использовать ListView в режиме "виртуального списка". Поищи в инете - примеров - море.
EvS (2006-06-07 22:58:00) [28]Подумай сначала о тех "счастливчиках", которым придется лопатить эти 100000 записей.
Dr. Andrew (2006-06-07 22:56:00) [29]Иожет есть где готовый алгоритм?
Немного скорректировал предыдущую схему:
--------- 0 запись
---------
---------
--------------------------------- N1 запись (начало)
---------
--------- 1) эти записи отображены в ListBox1
--------- после скролирования N1 запись (новое начало)
--------------------------------- N2 запись (предел)
----- 2) эти записи отображены в ListBox1 (просле скролирования, например сторону увеч. порядковых номеров элементов)
----------
---------- после скролирования N2 запись (новый предел)----------
......... и так далее
------ 100000 запись
Все спасибо!