| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 | ||
Попробовал поставить не получилось. Пробовал инсталяшку с сайта и 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 |
"Этого не может быть, потому что не может быть". В опциях Delphi случайно пути не удалились? Добавлено через 34 секунды Какую ошибку-то? |
| Автор: kami 21.8.2011, 08:10 |
Там было несколько неприятных глюков, которые мелькали в том числе и здесь на форуме. Лечилось обновлением исходников через SVN |
| Автор: klyaksa 21.8.2011, 12:30 |
| >>Пропиши в Library path в самый верх $(BDSLIB)\$(Platform)\release ок, спасибо. >>Какую ошибку-то? После инсталяшки не нашел на вкладках ничего. Удалил стал ставить ручками, останавливался на requires vcl, vclx; хотя может уже пути битые были... Надо еще попробовать. п.с. ставил на XE стартер. |