Конференция "Начинающим" » обновление в TreeView
 
  • kashey © (29.10.18 08:47) [0]
    Всем привет. Строю дерево в TreeView из ХМL (рекурсивно). "Приехал" новый ХML. Вопрос в том, как не удалять полностью старое дерево, чтобы построить новое. Нужно как-то сопоставить старое дерево с новым, недостающие узлы построить, а лишнее удалить. Это нужно для того, чтобы открытые узлы не "схлопывались" при загрузке нового дерева и желательно новые ноды подсветить другим цветом до следующего прихода XML. Подскажите где это можно подсмотреть?
  • anonims (29.10.18 10:25) [1]
    1.
    node.Text = ....



    2.
    d:=node.Data;
    if TDOMnode(d).... =newdom..... then begin
    ...
    end;



    3.
    if olddomnode.... =newdomnode.... then begin
     node:=FindOfDom(oldnodedom);
     node.Data:=newdomnode);
    end;



    4.
    x:=olddom.LocateDOMNode(newdomnode); // Нужно как-то сопоставить старое дерево с новым,
    if x=nil then begin
     CreateTreeNode(newdomnode); // недостающие узлы построить,
    //желательно новые ноды подсветить другим цветом
    end
    else begin
     UpdateTreeNode(x, newdomnode);
    end;

    x:=newdom.LocateDOMNode(olddomnode);
    if x=nil then begin
     DeleteTreeNode(x); // а лишнее удалить
    end
    else begin
     UpdateTreeNodeInverse(olddomnode, x);
    end;

  • kashey © (29.10.18 14:05) [2]
    А вообще существует не визуальное дерево?. ttreenodes  вроде как-бы, но его таким образом не создашь: MyNodes.TTreeNodes.create(nil). Все равно вместо нил нужно указать конкретный TreeView. ???
  • kashey © (29.10.18 16:43) [3]

    > anonims   (29.10.18 10:25) [1]

    Здорово !!! Давно не мог это найти. только  компилятор ругается на "...." что это? Четыре уровня дерева вверх или вниз?
  • kashey © (29.10.18 16:47) [4]
    Вообщем как сравнить придумал, вот только как хранить два дерева без скрытого TreeView не придумал. Писать класс "самодельного" дерева пока не спешу, жду ваших рекомендаций.
  • а что по твоему (29.10.18 17:13) [5]
    А вообще существует не визуальное дерево?.

    xml dom document это и есть дерево. не визуальное, но с ветками.
  • anonims (30.10.18 13:53) [6]

    > только  компилятор ругается на "...." что это?

    Нужно как-то сопоставить старое дерево с новым

    > Четыре уровня дерева вверх или вниз?

    четыре РАЗНЫХ наброска кода
    Вар 2. это по сути ХРАНЕНИЕ DOM-дерева(узла) "внутри" Tree-дерева(узла)

    > как хранить два дерева без скрытого TreeView не придумал
 
Конференция "Начинающим" » обновление в TreeView
Есть новые Нет новых   [134427   +35][b:0][p:0.001]