Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Agregar nietos al TreeView (https://www.clubdelphi.com/foros/showthread.php?t=32260)

angelillo182 01-06-2006 01:09:47

Agregar nietos al TreeView
 
Hola, quisiera saber cómo puedo agregar nodos hijos a otros hijos en un TreeView.
Algo como

Raiz
+ Padre
+ Hijo
- nieto1
- nieto2
- nieto3
Esto es porque tengo que hacer una clasificación de fotografías, y el padre puede ser la categoría principal, hijo puede ser una subcategoría y nieto ya son los Items.
Gracias!

Lepe 01-06-2006 10:47:13

Simplemente tienes que cambiar el nodo activo y usar los mismo métodos para crear un hijo.

AddChildFirst
AddChildLast
etc.

Mira la ayuda sobre TTreeNodes

saludos

dec 01-06-2006 14:11:19

Hola,

Bueno, aporto un poco de código además de lo que dice Lepe, por si puede servir de algo:

Código Delphi [-]
{ Se asume un "TForm" "Form1", un "TTreeView"
  "TreeView1" y un "TButton" "Button1". Este
  es el evento "OnClick" de dicho botón.

}
procedure TForm1.Button1Click(Sender: TObject);
var
  nodoPadre, nodoHijo, nodoNieto: TTreeNode;

begin

  { Añadimos un nodo al TreeView sin especificar
    un nodo "padre". Es decir, añadimos un nodo
    en la raíz del TreeView
  }
  nodoPadre := TreeView1.Items.AddChild(nil, 'Nodo padre');

  { Ahora vamos añadir un nodo "hijo" del anterior
    nodo que acabamos de crear. Nótese cómo indicamos
    que este nuevo nodo será "hijo" del anterior.
  }
  nodoHijo := TreeView1.Items.AddChild(nodoPadre, 'Nodo hijo');

  { Hacemos lo propio para añadir un nodo "nieto" del
    primer nodo que añadimos. Es cuestión de irse que-
    dando con referencias de los nodos que creamos.

    ¿Cómo añadiremos un nodo "nieto" del nodo "padre"
    que creamos en primer lugar? Lo primero que nece-
    sitamos es un nodo "hijo" del nodo "padre", para
    crear un "hijo" del primero y "nieto" del segundo.

    Como tenemos una referencia al nodo "hijo", que
    a su vez mantiene cierta relación con el nodo
    "padre", crear un nodo "nieto" de este resulta
    tan sencillo como viene siéndolo.
  }
  TreeView1.Items.AddChild(nodoHijo, 'Nodo nieto 1');

  { Añadamos más "nietos"... }

  TreeView1.Items.AddChild(nodoHijo, 'Nodo nieto 2');
  TreeView1.Items.AddChild(nodoHijo, 'Nodo nieto 3');

end;

angelillo182 01-06-2006 18:15:00

Muchas gracias!
Ya está funcionando :D


La franja horaria es GMT +2. Ahora son las 02:24:34.

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