Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ListView и БД


Demn ©   (2004-08-24 03:38:00) 

Здрасьте.
Подскажите люди добрые. Кто-нибудь делал вывод содержимого локальной БД в ListView и может ли поделиться примерчиком? Или может существует зверь типа "DBListView"?


roottim   (2004-08-25 15:41:00) [1]

2NAlexey ©   (24.08.04 10:01) [8]
 мдя, DevExpress предлагает TreeList, DBTreeList
 вот енто и смутило :)


Demn   (2004-08-25 11:18:00) [2]

>NAlexey
Дело в том, что даже видимых элементов предполагается не мало, примерно 10-50(в зависимости от ViewStyle). Если взять за образец Virtual ListView из Demos, то можно заметить тормоза при перерисовке. Хочется енто дело обойти. Есть мысль кэшировать видимые элементы, но пока еще руки не дошли до этого.


NAlexey   (2004-08-24 10:01:00) [3]

>roottim ©   (24.08.04 09:16) [7]
А зачем ветвь? Автор же спрашивает о ListView  а не о TreeView.

>Demn ©
Может что конкретно интересует, а не общие вопросы. И что значит:
>А именно вопрос оптимизации отрисовки большого числа Item'ов.

Ты же не отрисовываешь сразу все элементы. Только видимые.


roottim   (2004-08-24 09:16:00) [4]

Много и не надо, сгруппируй все по темам,
в каждой ветке темы по пустышке(1 item), как понадрбится века, проверяеш на пустышку, если да - загружаешь ветвь этого уровня (следующие уровни опять с пустышкой) и тд.
в результате полного дерева не требуется... все данные по мере надобности  + виртуальные методы, о которых ты упомянул.

Есть не только велосипед, а даже мопед www.DevExpress.com
компонент который тебе нужен там есть, но лично я не сторонник
использования не Free компонентов, лучше уж руками.


Demn   (2004-08-24 07:08:00) [5]

Как заполнять этот лист вообще не вопрос. У меня уже есть пара задумок. Меня больше интересовал опыт создания сего чуда.
А именно вопрос оптимизации отрисовки большого числа Item'ов.
Ладно буду разбираться по ходу. Спасибо за интерес. ;)


Goffman   (2004-08-24 06:56:00) [6]

Я думаю так
Выбираешь записи из таблицы, пердположим person
select id, name
from person


Нужно чтобы, для каждого элемента у тебя было отбражаемое имя и ID в базе
Проходишь в цикле по результату запроса и заполняешь ListView
ListView.AddItem(Field('name'),pointer(integer(Field('id'))));


Demn   (2004-08-24 06:47:00) [7]

Мне нужны возможности вывода записей в виде просто значков, больших значков, в виде таблицы(значки + описание) и т.д. Ессно DBGrid этого не позволит.
Тут именно интерфейсная заморочка.
В принципе можно взять обычный ListView и сделать его Virtual со всеми втекающими и вытекающими. :) Но это муторно. И кажется именно этим и придется заниматься...


Goffman   (2004-08-24 05:43:00) [8]

А зачем тебе именно ListView, чем не устраивает DBGrid?


Demn   (2004-08-24 05:16:00) [9]

Все куда более запущено. ListBox'ы меня не устраивают. Мне нужен полноценный ListView.
Видимо придется изобретать велосипед... :(


vovchik   (2004-08-24 04:40:00) [10]

Есть такая хрень как DBListBox и DBLookupListBox на палитре DataControls. я думаю что это то что тебе надо. Подключаешь и работаешь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо