Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 601

/ вопрос открыт /

Здравствуйте! Использую Virtual Tree View, для меня главная проблема при работе с ним - получение узла по указанному индексу. необходимо решить простейшую задачу - удаление дочерних элементов узла, полученного по индексу.
Tree.DeleteChildren(Node) , где Node - узел, полученный по индексу (например 4й узел). Собственно вопрос, как получить 4й узел?
Информации по данной проблеме не нашел, надеюсь на вашу помощь.

Phoenix Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Phoenix (статус: Посетитель)
Вопрос отправлен: 5 апреля 2009, 22:52
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Мережников Андрей

Здравствуйте, Phoenix!
Tree.Items.Item[index]:TTreeNode;

Ответ отправил: Мережников Андрей (статус: Абитуриент)
Время отправки: 6 апреля 2009, 05:39
Оценка за ответ: 2

Комментарий к оценке: уважаемый эксперт, было бы так для компонента TreeView, я же использую Virtual (результат получения есть PVirtualNode), так в корне неверно, но все-равно спасибо за ответ.

Мини-форум вопроса

Всего сообщений: 8; последнее сообщение — 6 апреля 2009, 20:03; участников в обсуждении: 3.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 6 апреля 2009, 18:02 [#1]:

Посмотрите http://forum.vingrad.ru/forum/index.php?show_type=forum&showtopic=97620
Phoenix

Phoenix (статус: Посетитель), 6 апреля 2009, 18:15 [#2]:

ну это собственно основа, по которой я разбирался, увы, ни в статье, ни в примерах нет ответа.
Вадим К

Вадим К (статус: Академик), 6 апреля 2009, 18:17 [#3]:

Для меня лично последней инстанцией в таких случаях являются исходники.
Галочка "подтверждения прочтения" - вселенское зло.
Phoenix

Phoenix (статус: Посетитель), 6 апреля 2009, 18:41 [#4]:

ничего не остается как решить проблему глупым перебором:

function GetNode(Virtualtree:TVirtualStringTree;indx:integer):PVirtualNode;
var NextNode: PVirtualNode;
begin
NextNode := Virtualtree.rootnode.FirstChild;
result:= NextNode;
if Assigned(NextNode) then
repeat
if NextNode.Index = indx then begin
result:=NextNode;
break;
end;
NextNode := NextNode.NextSibling;
until
NextNode = nil;
end;
Вадим К

Вадим К (статус: Академик), 6 апреля 2009, 18:43 [#5]:

И получить невероятное падение производительности.
А может по индексу можно не обращаться? А по указателю какому-нибудь....
Галочка "подтверждения прочтения" - вселенское зло.
Phoenix

Phoenix (статус: Посетитель), 6 апреля 2009, 18:59 [#6]:

по указателю было б неплохо, спсибо, буду думать.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 6 апреля 2009, 19:33 [#7]:

кстати, об указателях, в приведенной для примера статье, было написано об этом. Речь идет об удалении узла, выделенного пользователем?
Phoenix

Phoenix (статус: Посетитель), 6 апреля 2009, 20:03 [#8]:

если речь шла об этом было бы очень просто, выделенный узел получается методом GetFirstSelected, речь идет об удалении узла по указанному номеру.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:55
Выполнено за 0.02 сек.