Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Recorrer todos los nodos anteriores. (https://www.clubdelphi.com/foros/showthread.php?t=92250)

Rc96 07-09-2017 17:56:50

Recorrer todos los nodos anteriores.
 
Necesito recorrer todos los nodos anteriores al nodo que seleccione para obtener una especie de ruta ejm:
prueba1
|__prueba 1.1
----|__prueba 1.1.1
prueba 2
prueba 3


suponiendo que estoy posicionado en el nodo prueba 1.1.1 el resultado que quiero obtener es algo como :
prueba1/prueba 1.1/prueba 1.1.1

espero puedan ayudarme.

roman 07-09-2017 18:21:45

Pero no dices los nodos de qué estructura. Suponiendo que es un TTreeView, cada nodo (TTreeNode) tiene una propiedad Parent que apunta al padre, que también es un TTreeNode y así puedes recorrer todo el camino hacia arriba hasta que obtengas Parent = nil, indicando que has llegado al nodo raíz o superior.

LineComment Saludos

Casimiro Notevi 07-09-2017 18:33:16

Cita:

Empezado por Rc96 (Mensaje 520891)
....

Por favor, lee nuestra guía de estilo, porque te está pasando lo mismo que con tu anterior pregunta, nadie te entiende claramente.

Rc96 07-09-2017 19:04:38

No veo que es lo que no se entiende y bueno si me falto aclarar que es un TreeView lo que estoy usando.

Rc96 07-09-2017 19:23:18

Hola roman, eso es exactamente lo que no se como recorrer el nodo como me dices. Soy nuevo usando este componente

roman 07-09-2017 19:50:37

Pues debe ser algo como esto:

Código Delphi [-]
var
  Nodo: TTreeNode;
  Ruta: String;

begin
  Ruta := '';

  if Assigned(TreeView1.Selected) then
  begin
    Nodo := TreeView1.Selected;
    Ruta := Nodo.Text+ '\' + Ruta;

    while Assigned(Nodo.Parent) do
    begin
      Nodo := Nodo.Parent;
      Ruta := Nodo.Text+ '\' + Ruta;
    end;
  end;
end;

LineComment Saludos

Rc96 07-09-2017 20:17:05

Gracias roman si funciono. Yo lo estaba intentando parecido pero solo lograba tomar los ultimos dos jeje veo que lo que me faltaba era lo siguiente
Código Delphi [-]
      while Assigned(Nodo.Parent) do
      begin
        Nodo := Nodo.Parent;
        Ruta := Nodo.Text+ '\' + Ruta;
      end;
Muchas gracias.


La franja horaria es GMT +2. Ahora son las 21:50:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi