Форум: "Прочее";
Текущий архив: 2009.07.26;
Скачать: [xml.tar.bz2];
Внизбыстрый 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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.093 c