Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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-02-2006
mez mez is offline
Miembro
 
Registrado: feb 2006
Posts: 11
Poder: 0
mez Va por buen camino
Activar/Desactivar hijos en TTreeView

Hola a todos,
Estoy haciendo un menu vertical con TTreeView, pero dependiendo de algun parametro boolean debiera aparecer o no cierto hijo:

+Padre1
---Hijo1
---Hijo2
---Hijo3
+Padre2
---Hijo1
---Hijo2
---Hijo3
+Padre3

necesito que si la variable aparece:=FALSE entoces:
+Padre1
---Hijo1
---Hijo2
---Hijo3
+Padre3

desaparezca un nodo en particular (Padre2 y todos sus hijos),

alguien me puede ayudar?

gracias

MEZ
Responder Con Cita
  #2  
Antiguo 08-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quizá te sirva el evento OnExpanding del TreeView. Éste se lanzará justo antes de expandir un nodo y puedes aprovecharlo para ocultar al indeseable.

// Saludos
Responder Con Cita
  #3  
Antiguo 08-02-2006
mez mez is offline
Miembro
 
Registrado: feb 2006
Posts: 11
Poder: 0
mez Va por buen camino
el OnExpanding esta Ok, pero como lo escondo??
Responder Con Cita
  #4  
Antiguo 08-02-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,

Tal vez algo así:

Código Delphi [-]
procedure TForm1.TreeView1Expanding(Sender: TObject;
  Node: TTreeNode; var AllowExpansion: Boolean);
begin
  if Node.Text = 'Nodo padre 2' then
    AllowExpansion := false;
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 08-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Mmm, no. Creo que estamos malentendiendo. No sé de dónde saque que la cuestión era al momento de expandir. Si no malentiendo, los nodos de un treeview no pueden ocultarse. Creo que más bien habrá que insertarlo o no dependiendo de la variable.

// Saludos
Responder Con Cita
  #6  
Antiguo 08-02-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,

Los nodos no parecen poder ocultarse, pero, ciertamente, en el evento que señalabas y que yo utilizé en el código de más arriba, puedes acceder al "Nodo" que va a expandirse. Para evitar su expansión basta con utilizar la variable "AllowExpansion" y ponerla en "false".

Creo que esto es mejor que "borrar" el nodo, que siempre puede hacerse, puesto que en el mismo evento encontramos la variable "Node", que representa al nodo que va a expandirse. Lo que ocurre es que si borras (Delete) el Nodo... no creo que el usuario se llevara una buena impresión.

Así pues, o bien el "TreeView" inserta ya los diferentes "Nodos" de forma condicional, esto es, en base a determinada condición, o si quiere utilizarse el evento "OnExpanding", puede optarse por evitar la expansión del "nodo" o por borrarlo, directamente. A ver qué tiene que decir al respecto mez.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 08-02-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Como dije, veo que mez nunca habló de expansión, fue mi error. Si, por ejemplo, quiere que el nodo y su prole aparezcan o no al momento de mostrar la ventana con el árbol, pues el evento OnExpanding estaría de más, sería cosa simplemente de insertarlo o no. Claro que borrar el nodo al momento de intentar expandirlo sería "algo" confuso, más no era ésa la idea. En fin, ya mez podrá aclararnos más.

// 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
multiples hijos en un TTreeView bustio OOP 1 23-11-2005 09:42:03
Problemas con el TTreeview meosre Varios 2 09-09-2005 16:58:48
Tutorial sobre imagenes en TTreeView bustio OOP 1 26-01-2005 05:46:09
Listar Forms Hijos cso2000 Varios 2 20-05-2003 21:11:13
TTreeView y Form principal silviodp OOP 3 18-05-2003 03:55:33


La franja horaria es GMT +2. Ahora son las 06:00:55.


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