Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TreeView sacar Hijos (https://www.clubdelphi.com/foros/showthread.php?t=29917)

Caro 03-02-2006 20:54:14

TreeView sacar Hijos
 
Hola a todos

Estoy desesperada nose como poder sacar todos los hijos de un determinado item donde yo hago click en un treeview

Digamos que tenemos este arbol

Código:


Abuelo1     
------Hijo1   
------Hijo2   
----------nieto1
----------nieto2
Abuelo2
------Hijo12

1. Si yo hago click en nieto1 no saca ningun hijo
2. Si yo hago click en hijo2 me sca como sus hijos nieto1 y nieto2
3. Si yo hago click en abuelo1 deberia sacarme Hijo1, Hijo2, nieto1 y nieto 2

Lo estube haciendo de la siguiente manera

Código Delphi [-]
 
var
   i:Integer;
   hijos:String;
begin
     hijos:='';
     IF arbol.Selected.HasChildren=TRUE THEN
     begin
         for i:=0 to arbol.Selected.Count-1 do
         begin
             hijos:=hijos+' > '+arbol.Selected.Item[i].Text;
         end;
         showmessage(hijos);
     end
     ELSE
         showmessage('El item no tiene hijos');
end;

Me funciona para el caso 1 y 2 pero para la 3 solo me saca Hijo1 e Hijo2 pero no los nietos y si deberian estar

Ayudenme por favor cualquier idea sera bienvenida, muchisimas gracias por adelantado

roman 03-02-2006 21:02:30

Supongo que habría que hacer un procedimiento recursivo:

Código Delphi [-]
procedure SacaHijos(Nodo: TTreeNode; var Hijos: String);
var
  Hijo: TTreeNode;
  I: Integer;

begin
  for I := 0 to Nodo.Count - 1 do
  begin
    Hijo := Nodo.Item[i];
    Hijos := Hijos + ' > ' + Hijo.Text;
    SacarHijos(Hijo, Hijos);
  end;
end;

// Saludos

Caro 03-02-2006 21:11:57

Miles y miles de gracias amigo Roman, ha funcionado perfectamente.


La franja horaria es GMT +2. Ahora son las 18:11:27.

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