Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > TreeView.Data и скорость


Автор: klyaksa 20.8.2011, 11:11
Есть класс   TMyClass = class(TPersistent)... хранящий данный, умеющий с ними что-то делать....
Надо создать, хранить и обрабатывать (по одному) объекты TMyClass. Для выбора нужного используется TTreeView.
Объекты вешаются к TTreeView.Data
Если кол-во объектов несколько тысяч, то начинается подтормаживание...
Причем, если обработать их надо автоматически, вешаю их в TObjectList и работа идет значительно быстрей.
Возник вопрос - как ускорить работу с TTreeView. Может если сами объекты хранить в TObjectList, а в Data ссылку на них будет быстрее?
Как скажите?

Автор: klyaksa 20.8.2011, 12:02
Нашел еще проблему с TTreeView.
Если в ActionList1Update берется  TreeView.Selected.Index для вывода номера ред. узла и определения что какой-то узел выбран, то при больших кол-вах узлов дикие тормоза.
При этом в ActionList1Update много еще кода, но тормоза создает малая часть с TreeView.Selected.Index...

Автор: kami 20.8.2011, 12:38
Использовать TVirtualStringTree ?
Можно http://www.soft-gems.net/index.php?option=com_content&task=view&id=30&Itemid=35, но лучше - http://code.google.com/p/virtual-treeview/source/checkout

Автор: klyaksa 20.8.2011, 16:55
Цитата(kami @ 20.8.2011,  12:38)
Использовать TVirtualStringTree ?
Можно http://www.soft-gems.net/index.php?option=com_content&task=view&id=30&Itemid=35, но лучше - http://code.google.com/p/virtual-treeview/source/checkout

Попробовал поставить не получилось.
Пробовал инсталяшку с сайта и http://virtual-treeview.googlecode.com/svn/trunk/.
В обоих случаях выдал ошибку при компиляции в
requires
  vcl,
  vclx;

Автор: klyaksa 20.8.2011, 19:08
После попыток установить TVirtualStringTree не работают старые проекты.
[DCC Fatal Error] My.dpr(1): F1027 Unit not found: 'System.pas' or binary equivalents (.dcu)
Что делать?

Автор: kami 20.8.2011, 22:08
Цитата(klyaksa @  20.8.2011,  19:08 Найти цитируемый пост)
Unit not found: 'System.pas' or binary equivalents (.dcu)

"Этого не может быть, потому что не может быть".
В опциях Delphi случайно пути не удалились?

Добавлено через 34 секунды
Цитата(klyaksa @  20.8.2011,  16:55 Найти цитируемый пост)
В обоих случаях выдал ошибку при компиляции

Какую ошибку-то?

Автор: Poseidon 21.8.2011, 01:08
Цитата(klyaksa @  20.8.2011,  19:08 Найти цитируемый пост)
После попыток установить TVirtualStringTree не работают старые проекты
.[DCC Fatal Error] My.dpr(1): F1027 Unit not found: 'System.pas' or binary equivalents (.dcu)
Что делать?
Пропиши в Library path в самый верх $(BDSLIB)\$(Platform)\release

Добавлено через 2 минуты и 53 секунды
Цитата(klyaksa @  20.8.2011,  16:55 Найти цитируемый пост)
опробовал поставить не получилось.Пробовал инсталяшку с сайта и http://virtual-treeview.googlecode.com/svn/trunk/.
Бери http://www.soft-gems.net/supplement/download.php?ID=28 с http://www.soft-gems.net/index.php?option=com_content&task=view&id=12&Itemid=33 

Автор: kami 21.8.2011, 08:10
Цитата(Poseidon @  21.8.2011,  01:08 Найти цитируемый пост)
Бери инсталяшку с офф сайта 

Там было несколько неприятных глюков, которые мелькали в том числе и здесь на форуме. Лечилось обновлением исходников через SVN

Автор: klyaksa 21.8.2011, 12:30
>>Пропиши в Library path в самый верх $(BDSLIB)\$(Platform)\release
ок, спасибо.

>>Какую ошибку-то?
После инсталяшки не нашел на вкладках ничего. Удалил стал ставить ручками, останавливался на 
requires
  vcl,
  vclx;
хотя может уже пути битые были... Надо еще попробовать.

п.с. ставил на XE стартер.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)