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

Ваш аккаунт

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

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

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

TreeView

5.8K
09 марта 2005 года
Fixxxer
19 / / 13.10.2004
История жизни

Eсть TreeView, которое используется как менюшка (по типу опций в WinAmp'e).
Оно (дерево) периодически обновляется (перерисовывается) полностью т.к. является еще и рекатируемым списком.


История проблемы
При обновлении дерева пропадает выделение элемента (что понятно). А вот выделить его опять у меня не получается.
Как к нему обратится - не знаю.
Я пробовал по-разному, и получается какая-то фигня - то все нормально, а после пары обновлений другие эл-ты начинают выделятся, то просто другие выделяются...

Как быть?
3.6K
09 марта 2005 года
kuljok
64 / / 16.03.2004
Цитата:
Originally posted by Fixxxer
История жизни

Eсть TreeView, которое используется как менюшка (по типу опций в WinAmp'e).
Оно (дерево) периодически обновляется (перерисовывается) полностью т.к. является еще и рекатируемым списком.


История проблемы
При обновлении дерева пропадает выделение элемента (что понятно). А вот выделить его опять у меня не получается.
Как к нему обратится - не знаю.
Я пробовал по-разному, и получается какая-то фигня - то все нормально, а после пары обновлений другие эл-ты начинают выделятся, то просто другие выделяются...

Как быть?



Я так понимаю, ты выделение делаешь по Index, а после обновления, наверно этот Index меняется. Если так, то либо ищи нужный узел по Text (если у них уникальные названия). Или для каждого узла в свойстве Data храни какой-нить уникальный ID, по которому потом и восстанавливай выделение.

302
10 марта 2005 года
Sagittarius
648 / / 12.04.2003
Цитата:
Originally posted by Fixxxer
При обновлении дерева пропадает выделение элемента (что понятно). А вот выделить его опять у меня не получается.
Как к нему обратится - не знаю.
Я пробовал по-разному, и получается какая-то фигня - то все нормально, а после пары обновлений другие эл-ты начинают выделятся, то просто другие выделяются...

Как быть?



Заведи переменную типа TTreeNode, например, ActiveNode.
В обработчике OnChange заноси в эту переменную значение параметра Node.
После обновления дерева делай TreeView1.Selected := ActiveNode.

5.8K
10 марта 2005 года
Fixxxer
19 / / 13.10.2004
Цитата:
Originally posted by Sagittarius


Заведи переменную типа TTreeNode, например, ActiveNode.
В обработчике OnChange заноси в эту переменную значение параметра Node.
После обновления дерева делай TreeView1.Selected := ActiveNode.



Я вот так и делал - даже переменную так же назвал :}
Но, дело, в том, что у меня как раз надо выделить тот узел, у которого имя меняется.
А когда так делаю - фигня выходит.

А как выделить по индексу (т.е. по номеру)?

368
10 марта 2005 года
rostyslav
629 / / 13.07.2004
Цитата:
Originally posted by Fixxxer


Я вот так и делал - даже переменную так же назвал :}
Но, дело, в том, что у меня как раз надо выделить тот узел, у которого имя меняется.
А когда так делаю - фигня выходит.

А как выделить по индексу (т.е. по номеру)?

По индексу(если индекс не меняется)
TreeView1.Selected := TreeView1.Items.Item[index];

5.8K
11 марта 2005 года
Fixxxer
19 / / 13.10.2004
Цитата:
Originally posted by rostyslav
По индексу(если индекс не меняется)
TreeView1.Selected := TreeView1.Items.Item[index];



Спасибо, все получилось!
Сам бы никогда не догадался - уж больно через rectum :)

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