PDA

Ver la Versión Completa : Recorrer todos los nodos anteriores.


Rc96
07-09-2017, 17:56:50
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
....Por favor, lee nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), 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:


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

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

Muchas gracias.