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 15-11-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
Dudas con TTreeView y ChildForm

Hola a todos:
Tengo una aplicacion de tipo MDIForm que contiene un TTreeView para mostrar las ChildForms que se crean. Cuando yo creo una nueva ChildForm esta se inserta en el TTreeView con su nombre, ahora, mis dudas vienen dado que deseo que cuando se cierre una ChildForm esta desaparezca del TTreeView.

Probe programar esto en el evento OnClose de la ChildForm, pero no funciona:

Código Delphi [-]
procedure TFrmChild.FormClose(Sender: TObject; var Action: TCloseAction);
var
  TreeNode: TTreeNode;
begin
  FrmMain.CantWindOpened := FrmMain.CantWindOpened - 1;
  FrmMain.StatusBar1.Panels[0].Text := IntToStr(FrmMain.CantWindOpened);

  TreeNode := TTreeNode.Create(FrmMain.TreeFiles.Items);
  TreeNode.Text := Self.Caption;
  FrmMain.TreeFiles.Items.Delete(TreeNode);

  Action := caFree;
end;

Alguien sabra acaso como se resuelve este problema?
__________________
Muchas Gracias...
Responder Con Cita
  #2  
Antiguo 15-11-2005
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
Si lo que quieres es borrar un nodo ¿para qué creas uno nuevo? Utiliza el método FindCaption del TreeView para encontrar el nodo que corresponda según su texto y borras ése.

Otra opción sería utilizar un campo privado en el formulario de tipo TTreeNode que apunte al node que corresponda. Este campo privado lo asignas al momento de abrir un formulario. De esta forma, al momento de cerrar el formulario tienes acceso inmediato al nodo correspondiente además de que te puede servir para otros menesteres en caso de que tengas que cambiar el texto del nodo según qué condiciones se presenten en el formulario.

// Saludos
Responder Con Cita
  #3  
Antiguo 15-11-2005
bustio bustio is offline
Miembro
 
Registrado: oct 2003
Posts: 231
Poder: 21
bustio Va por buen camino
disculpame

Disculpame Roman, pero no entendi bien tu idea. Resulta que lo que yo deseo es que cuando le de al boton "X" de la forma hija pues borre el nodo en el TReeView de la forma Padre.... y no encontre el metodo FindCaption en el TreeView.. podrias explicvarmelo de nuevo si no te es molestia?
__________________
Muchas Gracias...
Responder Con Cita
  #4  
Antiguo 15-11-2005
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
Me confundí. FindCaption sólo existe para un ListView. Es raro, no encuentro un método para buscar nodos en un árbol

De cualquier forma, yo me iría con la segunda idea:

Código Delphi [-]
type
  TMDIHija = class(TForm)
  private
    FNodo: TTreeNode;

  public
    property Nodo: TTreeNode read FNodo;
  end;

Cuando creas el formulario, asignas a su propiedad Nodo el TTreeNode que acabas de insertar en el árbol. Entonces, en el evento OnClose del formulario pondrías algo como:

Código Delphi [-]
Self.Nodo.Delete;
Action := caFree;

// Saludos
Responder Con Cita
  #5  
Antiguo 15-11-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Cita:
Empezado por Roman
Me confundí. FindCaption sólo existe para un ListView. Es raro, no encuentro un método para buscar nodos en un árbol.
Pues nada, que esta es nuestra oportunidad de hacerle un aporte a la VCL

Saludos
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

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


La franja horaria es GMT +2. Ahora son las 01:36:46.


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