Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1243785925
Сергей
2009-05-31 20:05
2009.07.26
Проблема с TTreeView


15-1243353872
Сергей М.
2009-05-26 20:04
2009.07.26
Москва, 2 июня 2009 года Embarcadero Technologies приглашает


15-1242993877
feel
2009-05-22 16:04
2009.07.26
Програмирование загрузочного сектора.


15-1242854996
Германн
2009-05-21 01:29
2009.07.26
Поздравляю Шахтёр!


4-1213253318
DJ Kondakov
2008-06-12 10:48
2009.07.26
Отследить выгрузку DLL-ки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский