Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как осуществить поиск в TreeView

2.3K
16 декабря 2003 года
Roxe
10 / / 18.03.2003
Помогите.
Реализую представление в TreeView некой таблицы БД SQL Server. Проблемы возникли с организацией поиска в TreeView. Дело в том что TreeView формируется не полностью. По запросу пользователя формируется в OnExpanding через некоторую ф-ю, в которой происходит изменение параметров Query.
Дошел до того, что вытащил все Parent искомого элемента, но вот распахнуть ту ветку, где находится искомый элемент никак не получается.
Подскажите, как сделать!
5.9K
16 декабря 2003 года
Kazooie64
4 / / 16.12.2003
Это как это
Цитата:
TreeView формируется не полностью

? Такое бывает ?) Вообще поиск идет просто -

TTreeNode* __fastcall GetFirstNode(void);
TTreeNode* __fastcall GetNext(void);

Если уж очень хочется оптимизаций - можно заморочится на рекурсивный поиск по ветви.

Цитата:
Дошел до того, что вытащил все Parent искомого элемента, но вот распахнуть ту ветку


Если не в лом - объясни структуру данных. Очевидно, что это ID-ParentID ?

2.3K
18 декабря 2003 года
Roxe
10 / / 18.03.2003
Все это так, если TreeView полностью сформирован. Структура данных примерно такая. Не буду объяснять подробно.
А сложность была вот в чем: Я не формирую все дерево сразу. При большом количестве строк в таблице формирование ветки, а также ее обновление, занимает много времени.
Поэтому ветка формируется динамически когда пользователь пытается ее раскрыть. Отсюда и сложность.
Необходимо вытащить все Parent от искомого элемента до корня, а затем програмно раскрыть искомую ветку.
Все это не сложно, просто иногда бывают тормоза на простых вещах.
5.4K
18 декабря 2003 года
Saltarello
9 / / 17.12.2003
Цитата:
Originally posted by Roxe
Помогите.
Реализую представление в TreeView некой таблицы БД SQL Server. Проблемы возникли с организацией поиска в TreeView. Дело в том что TreeView формируется не полностью. По запросу пользователя формируется в OnExpanding через некоторую ф-ю, в которой происходит изменение параметров Query.
Дошел до того, что вытащил все Parent искомого элемента, но вот распахнуть ту ветку, где находится искомый элемент никак не получается.
Подскажите, как сделать!



У TreeNode есть метод Expand:

Цитата:
Delphi syntax:
procedure Expand(Recurse: Boolean);

C++ syntax:
void __fastcall Expand(bool Recurse);

Description
When a node is expanded, its immediate subnodes are displayed. The minus '-' button may be displayed, depending on whether the tree view's ShowButtons property is set. If Recurse is true, all descendants of the immediate subnodes are expanded as well.



Соответственно, ищешь самый верхний Parent и делаешь ему Expand

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог