Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-09-2006
Leonardo_NV Leonardo_NV is offline
Miembro
 
Registrado: jul 2006
Ubicación: Guatemala, Guatemala C.
Posts: 26
Poder: 0
Leonardo_NV Va por buen camino
Treeview

Buenos Dias Seniores. Tengo una Duda Como Podria hacer para seleccionar El texto de TreeView dando un click sobre el objeto.. cual es la propiedad de TreeView que captura el valor de cada item del TreeView..

Gracias...
Responder Con Cita
  #2  
Antiguo 08-09-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No entiendo muy bien si quieres el texto de todos los "items" de un "TreeView" o si únicamente te interesa el que esté seleccionado en un momento dado.

En todo caso la propiedad que te interesa es "Text", con la que cuentan todos los "Nodos" que puede haber en un "TreeView".

Para averiguar el texto del nodo seleccionado puedes utilizar la propiedad "Selected", que es del tipo "TTreeNode", es decir, que cuenta a su vez con una propiedad "Text".
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 08-09-2006 a las 18:39:36.
Responder Con Cita
  #3  
Antiguo 08-09-2006
Leonardo_NV Leonardo_NV is offline
Miembro
 
Registrado: jul 2006
Ubicación: Guatemala, Guatemala C.
Posts: 26
Poder: 0
Leonardo_NV Va por buen camino
Muchas Gracias David... Esta funcionando a la perfeccion

Saludos...
Responder Con Cita
  #4  
Antiguo 08-09-2006
Leonardo_NV Leonardo_NV is offline
Miembro
 
Registrado: jul 2006
Ubicación: Guatemala, Guatemala C.
Posts: 26
Poder: 0
Leonardo_NV Va por buen camino
Tengo otra duda con TreeView como hago para cambiar los iconos o imagenes a cada uno de los items del TreeView.....

Gracias.
Responder Con Cita
  #5  
Antiguo 08-09-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Los TreeView tienen una propiedad TreeNodes, la cual es una lista de objetos TTreeNode... estos tienen unas propiedades llamadas ImageIndex, SelectedIndex y StateIndex, cambiando el valor de estas propiedades, consigues tener imágenes en los items...

Saludos...
Responder Con Cita
  #6  
Antiguo 09-09-2006
Leonardo_NV Leonardo_NV is offline
Miembro
 
Registrado: jul 2006
Ubicación: Guatemala, Guatemala C.
Posts: 26
Poder: 0
Leonardo_NV Va por buen camino
Hola.

Sigo con algunos problemas con TreeView el problema es que tengo un Item Padre en el Level 0, pero quiero colocar varios items hijos desde el modo de programacion, como puedo hacerlo ?


Nota. Lo he logrado desde el Modo de Disenio pero la cuestion que los hijos provienen de una Base de Datos.... Si los muestra pero al mismo nivel que el padre...

Muchas Gracias..
Responder Con Cita
  #7  
Antiguo 09-09-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En realidad no es complicado, es cuestión de que le cogas el Hilo al asunto. Verás. A un "TTreeView" se le pueden añadir "items" por ejemplo con el método "AddChild" conque cuenta su propiedad "Items", que es de tipo "TTreeNodes" (los nodos del "TTreeView").

Esto es más o menos así:

Código Delphi [-]
TreeView1.Items.AddChild(nil, 'Nodo padre');

Fíjate que el primer parámetro del método "AddChild" lo dejamos como "nil", ¿y eso porqué? Porque ese parámetro indica, precisamente, el nodo "padre" del nodo que vamos a añadir, pero, como en este caso queremos añadir un nodo "padre" que no tenga "padre" a su vez, ese parámetro vale "nil".

Ahora bien, el propio método "AddChild" nos devuelve una referencia al nodo que acabamos de añadir con el mismo, esto es, el método "AddChild" devuelve un "TTreeNode" que se corresponde con el "nodo" que acabamos de añadir, en este caso "Nodo padre", pero, no nos estamos aprovechando de esta circunstancia.

Habría varias formas de lograr la referencia del nodo al que queremos añadir "hijos", pero, siguiendo con el ejemplo anterior podríamos haber hecho algo como esto:

Código Delphi [-]
var
  nodoPadre, nodoHijo: TTreeNode;
begin
  nodoPadre := TreeView1.Items.AddChild(nil, 'Nodo padre');
  TreeView1.Items.AddChild(nodoPadre, 'Nodo hijo');

end;

Es decir, primero recogemos una referencia del "Nodo padre" que añadimos al "TTreeView" sin que él mismo pertenezca a ningún otro nodo (parámetro "nil" como sabes). A continuación ya podemos añadir nodos "hijos" en el nodo "padre", sencillamente, pasando la referencia al propio nodo "padre" en el método "AddChild", en lugar de un valor "nil".

¿Para qué declaramos la variable "nodoHijo"? Porque "nodoPadre" está claro (para guardar en ella la referencia al nodo "padre" y poder así añadirle "hijos"), pero, ¿para qué la variable "nodoHijo"? Pues únicamente para hacer notar que, de la misma forma que añadimos nodos "hijos", podemos añadir nodos "nietos".

La técnica es la misma, se guarda una referencia al nodo "hijo" y ya se le pueden añadir a su vez "hijos", que serán "nietos"... del nodo "padre":

Código Delphi [-]
var
  nodoPadre, nodoHijo: TTreeNode;
begin
  nodoPadre := TreeView1.Items.AddChild(nil, 'Nodo padre');
  nodoHijo := TreeView1.Items.AddChild(nodoPadre, 'Nodo hijo');

  TreeView1.Items.AddChild(nodoHijo, 'Nodo nieto');
  TreeView1.Items.AddChild(nodoHijo, 'Otro nodo nieto');

end;

Date cuenta de que tratamos con nodos ("TTreeNodes" y "TTreeNode") y que podríamos añadir nodos "hijos" a un determinado nodo "padre" siempre que tuviéramos acceso a su referencia "TTreeNode". Por ejemplo, a continuación añadiremos un nodo "padre" a un "TTreeView":

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  TreeView1.Items.AddChild(nil, 'Nodo padre');
end;

Ahora, puesto que el "TTreeView" cuenta al menos con un "nodo" ya podríamos hacer algo como esto, a modo de pruebas:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  nodoPadre: TTreeNode;
begin
  if(TreeView1.Selected <> nil) then
  begin
    nodoPadre := TreeView1.Selected;
    TreeView1.Items.AddChild(nodoPadre, 'Nodo hijo');
  end;
end;

Es decir, cuando se pulse el botón "Button2" se comprobará si hay algún nodo seleccionado en el "TTreeView". Si no lo hay no se hace nada, pero, si hay un nodo "seleccionado" ya tenemos su "referencia" ("TTreeNode"), que podemos utilizar para añadirle nodos "hijos".

En el ejemplo he utilizado una variable de tipo "TTreeNode" por claridad, pero, perfectamente, podríamos haberlo hecho de este modo, lo mismo da, en este caso, puesto podemos utilizar la propiedad "Selected", de tipo "TTreeNode", como ya sabes:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
  if(TreeView1.Selected <> nil) then
    TreeView1.Items.AddChild(TreeView1.Selected, 'Nodo hijo');
end;
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 09-09-2006 a las 23:02:06.
Responder Con Cita
  #8  
Antiguo 13-09-2006
Leonardo_NV Leonardo_NV is offline
Miembro
 
Registrado: jul 2006
Ubicación: Guatemala, Guatemala C.
Posts: 26
Poder: 0
Leonardo_NV Va por buen camino
Muchas Gracias con la Ayuda del TreeView esta funcionando muy bien y ahora si ya lo entiendo...

Gracias y Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar un treeview a otro treeview mierda OOP 0 26-07-2006 12:29:17
TreeView Caro OOP 12 12-10-2005 12:05:52
treeview arana Varios 1 28-10-2004 10:29:47
Como utilizar el Treeview, desplegar la info del arbol binario al treeview leo21 Varios 2 08-04-2004 22:47:30
Como utilizar el Treeview, desplegar la info del arbol binario al treeview leo21 OOP 1 08-04-2004 22:42:44


La franja horaria es GMT +2. Ahora son las 13:38:43.


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
Copyright 1996-2007 Club Delphi