Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.26;
Скачать: CL | DM;

Вниз

быстрый TTreeView   Найти похожие ветки 

 
Unknown user ©   (2009-05-25 18:40) [0]

Подскажите компонент TTreeView, работающий быстрее стандартного делфийского. Или как организовать работу TTreeView, чтобы максимально ускорить построение списка.


 
Sapersky   (2009-05-25 19:10) [1]

Virtual TreeView, наверное (сам его не использовал).


 
KilkennyCat ©   (2009-05-25 20:29) [2]

Что значит, максимально? Может, он уже максимально, и оптимизация даст процентов 5-10 - тебе хватит? или надо в разы?
Что и как грузим-с?


 
MsGuns ©   (2009-05-25 21:10) [3]

Насколько я знаю, основной тормоз в TTreeView - AbsoluteIndex. Не используйте его - и тормоза исчезнут


 
Игорь Шевченко ©   (2009-05-25 21:41) [4]


> Или как организовать работу TTreeView, чтобы максимально
> ускорить построение списка.


BeginUpdate...EndUpdate


 
DVM ©   (2009-05-25 22:01) [5]

Virtual TreeView быстрее в сотни раз, чем стандартный. И очень удобный.
http://www.delphi-gems.com/index.php?option=com_content&task=view&id=12&Itemid=38


 
Кто б сомневался ©   (2009-05-26 13:48) [6]

Мда TtreeView явно не удался. Я с ним также испытывал проблемы, ну о тормозах и неповоротливости и неоптимизированности знает каждый, что говорит о качестве кода напрямую.
Нет, проблема там не только AbsoluteIndex.


 
KilkennyCat ©   (2009-05-26 13:50) [7]

А мне вполне годится.


 
Игорь Шевченко ©   (2009-05-26 14:07) [8]


> Я с ним также испытывал проблемы, ну о тормозах и неповоротливости
> и неоптимизированности знает каждый


Я не знаю


 
KilkennyCat ©   (2009-05-26 14:23) [9]


> Игорь Шевченко ©   (26.05.09 14:07) [8]

Ты просто неправильно используешь.


 
Игорь Шевченко ©   (2009-05-26 15:19) [10]

KilkennyCat ©   (26.05.09 14:23) [9]


> Ты просто неправильно используешь


Да. И виндовый проводник его тоже неправильно использует.


 
runaum   (2009-05-26 15:20) [11]

1. Проблема не в TTreeView, а в оригинальном дереве от MS. Проблема возникает на пороге в 500-600 элементов и с каждой сотней не слабо растет.

2. VTV не использует MS решение дерева, а с нуля визуализирует свой альтернативный вариант.


 
Unknown user ©   (2009-05-26 15:51) [12]

Подтверждаю слова runaum. По совету Sapersky попробовал Virtual TreeView и получил ускорение в 10 раз. Я ничего кроме построения списка не выполняю. Использую лишь AddChild. Мой список содержит больше 10 000 элементов и все реализации - наследники стандартного TTreeView прироста в скорости не давали.

Virtual TreeView, на мой взгляд, имеет немного незаконченную реализацию для построения текстовых списков. Это все таки базовый класс для множества разновидностей списков и деревьев. Но написание небольшого класса - наследника решило проблему. Теперь построение списка почти не отличается от того способа. что используется в TTreeView.


 
KilkennyCat ©   (2009-05-26 17:57) [13]


> Мой список содержит больше 10 000 элементов

и их все хочется сразу впихнуть.


 
Unknown user ©   (2009-05-26 19:19) [14]

>и их все хочется сразу впихнуть.

Ну а куда их впихивать? Добавлять элементы во время навигации по дереву тоже не лучший выход. Посмотрите ради интереса список, который строится в Code Explorer в Delphi при открытии модуля Windows.pas. Там почти все Win API функции, типы, переменные и константы. Список не меньше моего.

Действительно реализация TreeView от MS не лучшая. Это признанный факт. Дерево плохо работает с большим количеством элементов.


 
Игорь Шевченко ©   (2009-05-26 19:38) [15]

Unknown user ©   (26.05.09 19:19) [14]

Я все удивляюсь, как проводник виндовый работает - у меня на диске несколько сот тысяч файлов - быстро ведь отображает в treeview


 
DVM ©   (2009-05-26 20:03) [16]


> Игорь Шевченко ©   (26.05.09 19:38) [15]


> у меня на диске несколько сот тысяч файлов - быстро ведь
> отображает в treeview

TreeView в проводнике файлы не отображает. Только каталоги. Я сомневаюсь, что у вас там сотня тысяч каталогов лежит рядом в корне или внутри другого каталога.


 
Игорь Шевченко ©   (2009-05-26 21:24) [17]

DVM ©   (26.05.09 20:03) [16]

Пардон, каталогов конечно же, не файлов. Файлов больше :) Нет, разумеется, они не в линейку, а как и полагается, в дерево, но речь не о том, а о том, что проводник их довольно шустро отображает.


 
boa_kaa ©   (2009-05-26 21:40) [18]

Вставлял динамически, никогда проблем не было, вставлялось быстро
Лишь в одной программулине отступил от этого правила... тормозиииит...
Короче, нет смысла держать в дереве элементы дальше 2го уровня вложенности и то только для того, чтобы плюсик отображался там, где он действительно нужен. А можно и одним обойтись


 
DVM ©   (2009-05-26 21:46) [19]


> Игорь Шевченко ©


> Нет, разумеется, они не в линейку, а как и полагается, в
> дерево

Ну это ж совсем другое дело, он подветви заполняет только при открытии.


> но речь не о том, а о том, что проводник их довольно шустро
> отображает.

Он в виртуальном режиме вероятно работает, типа что вижу, о том и информацию запрашиваю.


 
DVM ©   (2009-05-26 21:48) [20]


> boa_kaa ©   (26.05.09 21:40) [18]


> только для того, чтобы плюсик отображался там, где он действительно
> нужен.

Можно плюсик вообще всегда отображать, только в некоторых местах он просто будет пропадать при попытке открыть.


 
boa_kaa ©   (2009-05-26 21:49) [21]


> DVM ©   (26.05.09 21:48) [20]

я о том же :)


 
Игорь Шевченко ©   (2009-05-26 21:52) [22]

DVM ©   (26.05.09 21:46) [19]


> Он в виртуальном режиме вероятно работает, типа что вижу,
>  о том и информацию запрашиваю.


У MS в SDK пример как раз был на эту тему - тоже, надо признать, шустро работал.



Страницы: 1 вся ветка

Текущий архив: 2009.07.26;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.018 c
15-1243406709
Кто б сомневался
2009-05-27 10:45
2009.07.26
Защита ПО на основе серийника железа, и другой комьпютер


15-1243202952
KilkennyCat
2009-05-25 02:09
2009.07.26
Небольшой эксперимент:


2-1243260477
Ega23
2009-05-25 18:07
2009.07.26
DevExpress TcxGrid - как добраться до НД при MultiSelet?


2-1243667222
Иван
2009-05-30 11:07
2009.07.26
Многострочный текст в константах


15-1243370399
Petr V. Abramov
2009-05-27 00:39
2009.07.26
Насчет конференции («Начинающим»)