|
Вопрос # 2 601/ вопрос открыт / |
|
Здравствуйте! Использую Virtual Tree View, для меня главная проблема при работе с ним - получение узла по указанному индексу. необходимо решить простейшую задачу - удаление дочерних элементов узла, полученного по индексу.
Tree.DeleteChildren(Node) , где Node - узел, полученный по индексу (например 4й узел). Собственно вопрос, как получить 4й узел?
Информации по данной проблеме не нашел, надеюсь на вашу помощь.
 |
Вопрос задал: 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.
|
Phoenix (статус: Посетитель), 6 апреля 2009, 18:15 [#2]:
ну это собственно основа, по которой я разбирался, увы, ни в статье, ни в примерах нет ответа.
|
|
Вадим К (статус: Академик), 6 апреля 2009, 18:17 [#3]:
Для меня лично последней инстанцией в таких случаях являются исходники.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Phoenix (статус: Посетитель), 6 апреля 2009, 18:41 [#4]:
ничего не остается как решить проблему глупым перебором:
function GetNode(Virtualtree:TVirtualStringTree;indx:integer) VirtualNode;
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 (статус: Посетитель), 6 апреля 2009, 18:59 [#6]:
по указателю было б неплохо, спсибо, буду думать.
|
|
Мережников Андрей (статус: Абитуриент), 6 апреля 2009, 19:33 [#7]:
кстати, об указателях, в приведенной для примера статье, было написано об этом. Речь идет об удалении узла, выделенного пользователем?
|
|
Phoenix (статус: Посетитель), 6 апреля 2009, 20:03 [#8]:
если речь шла об этом было бы очень просто, выделенный узел получается методом GetFirstSelected, речь идет об удалении узла по указанному номеру.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|