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 07-11-2003
perceptron perceptron is offline
Miembro
 
Registrado: nov 2003
Posts: 15
Poder: 0
perceptron Va por buen camino
problemas con treeview

Hola a todos.

Tengo un problema con treeview y los nodos. Mi problema es que tengo un form que tiene un memo, un treeview, y un boton. Pues lo que quisiera saber si es posible es que cuando le de al boton me cree un nodo (treenode) que le asigne esl textoq ue tengo en el memo o alguna manera para guardar el contenido del memo en el nodo, y despues se lo asigne al treeview. ¿Es posible esto?

No se si me he explicado bien, si no lo he hecho por favor me lo decis.

Muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 07-11-2003
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
Cita:
perceptron comentó:
No se si me he explicado bien, si no lo he hecho por favor me lo decis.
Te lo digo.

¿Quieres poner todo el texto de un memo en la etiquetita de un nodo?

Para agregar nodos a un árbol usa los métodos Add, AddChild, AddChildFirst, AddFirst, AddNode, etc. de TreeView.Items.

Todos estos métodos te regresan el nuevo nodo al que le asignas su propiedad Text para la etiqueta.

// Saludos
Responder Con Cita
  #3  
Antiguo 07-11-2003
perceptron perceptron is offline
Miembro
 
Registrado: nov 2003
Posts: 15
Poder: 0
perceptron Va por buen camino
gracias por contestar, pero lo que quiero es agregar la informacion de un memo a una variable o a un fichero y que ésta informacion me la agregue a un nodo.

Es decir por ejemplo cuando tengo un memo en blanco y escriba algo le de a un boton y me cree un nodo con un monbre, y en este nodo me guarde lo que habia escrito. Todo esto es para que cuando vaya recorriendo el treeview nodo por nodo me vaya cambiando en el memo que tiene el formulario el texto que habia almacenado en cada uno de los memos.

Gracias.

PD: Espero haberlo explicado un poco mejor y muchas gracias por intentar ayudarme.
Responder Con Cita
  #4  
Antiguo 07-11-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 22
Descendents Va por buen camino
http://www.torry.net/enhancedtreeviews.htm

Mira en esta dirección que hay unos componentes que son eltree lite 3.20, que creo que te podran ayudar

Un saludo
Responder Con Cita
  #5  
Antiguo 07-11-2003
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
Cita:
perceptron comentó:
Es decir por ejemplo cuando tengo un memo en blanco y escriba algo le de a un boton y me cree un nodo con un monbre, y en este nodo me guarde lo que habia escrito. Todo esto es para que cuando vaya recorriendo el treeview nodo por nodo me vaya cambiando en el memo que tiene el formulario el texto que habia almacenado en cada uno de los memos.
Ok. Ya entendí.

Cada nodo tiene una propiedad Data que es un apuntador y lo puedes asignar a alguna estructura que almacene el texto del memo o bien a un objeto.

Quizá te convenga asociar cada Node.Data a un objeto TStringList en donde copias el contenido del memo:

Código:
var
  Node: TTreeNode;
  Lines: TStringList;

begin
  { 
    Creas el nodo con alguno de los métodos de TreeView.Items
    P. ej. Node := TreeView.AddChild(..);
  }

  { Creas el objeto para almacenar el contenido del memo }
  Lines := TSringList.Create;
  Lines.AddStrings(Memo.Lines);

  { Guardas el objeto en el nodo }
  Node.Data := Lines;
end;
Posteriormente, cuando necesites acceder al contenido del nodo deberás hacer un "casting":

Código:
{ 
  Node es el nodo en cuestión
  Podría ser TreeView.Selected
}
Memo.Lines := TStringList(Node.Data).Lines;
Finalmente, cada vez que borres un nodo, explícita o implícitamente, debes liberar el objeto asociado. Lo más cómodo es hacerlo en el evento OnDeletion del TreeView:

Código:
procedure TFormTreeViewDeletion(...);
begin
  if Node.Data <> nil then
    TStringList(Node.Data).Free;
end;
// Saludos
Responder Con Cita
  #6  
Antiguo 07-11-2003
perceptron perceptron is offline
Miembro
 
Registrado: nov 2003
Posts: 15
Poder: 0
perceptron Va por buen camino
Gracias por la informacion, pero podrias explicarme un poco como utilizar dichos componentes por favor.

Gracias
Responder Con Cita
  #7  
Antiguo 07-11-2003
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
Cita:
perceptron comentó:
Gracias por la informacion, pero podrias explicarme un poco como utilizar dichos componentes por favor.
¿Qué es lo que no entiendes? Prácticamente te puse todo el código necesario?

// Saludos
Responder Con Cita
  #8  
Antiguo 07-11-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 22
Descendents Va por buen camino
Si te refieres a los componentes que yo te dije.Vienen con demos.
Mira que se te habran instalado.
Responder Con Cita
  #9  
Antiguo 07-11-2003
perceptron perceptron is offline
Miembro
 
Registrado: nov 2003
Posts: 15
Poder: 0
perceptron Va por buen camino
Muchas gracias a amabos por vuestro interes y por vuestra ayuda. Me estais ayudando muchisimo.

Roman me referia a los componentes que he descargado. Gracias por tus explicaciones me han estan ayudando un monton.

Gracias de nuevo.

Saludos
Responder Con Cita
  #10  
Antiguo 07-11-2003
perceptron perceptron is offline
Miembro
 
Registrado: nov 2003
Posts: 15
Poder: 0
perceptron Va por buen camino
Descients acabo de instalar lo que me dijistes y he localizado las demos pero no me funciona ninguna no me compila ninguno de ellos.

Gracias.

PD: Perdonad que sea tan pesado pero es que todavia no controlo delphi y estoy aprendiendo. GRACIAS
Responder Con Cita
  #11  
Antiguo 07-11-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 22
Descendents Va por buen camino
Tienes los componentes instalados?
Que error te da?
Que delphi utilizas?
dame datos
Gracias
Responder Con Cita
  #12  
Antiguo 07-11-2003
perceptron perceptron is offline
Miembro
 
Registrado: nov 2003
Posts: 15
Poder: 0
perceptron Va por buen camino
Pues mira tengo delphi 7 instalado, y no me funciona ninguno de los ejemplos

en uno me da error en esta sentencia

Item.ishtml:= true;
[Error] OptionsMain.pas(45): Undeclared identifier: 'ishtml'

y claro como se para a saber si habra mas errores.

Gracias.


PD: Gracias a vosotros por vuestra ayuda
Responder Con Cita
  #13  
Antiguo 08-11-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 22
Descendents Va por buen camino
Comenta esa linea y ya veras que te funcionara.
A mi tambien me pasa.
Pon "//" delante de la linea y ya funciona.

Ya me diras ke tal
Responder Con Cita
  #14  
Antiguo 08-11-2003
perceptron perceptron is offline
Miembro
 
Registrado: nov 2003
Posts: 15
Poder: 0
perceptron Va por buen camino
Gracais descents, ya he conseguido echarlo a andar. Era lo que me comentabas.

Gracias por todo.
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 04:58:54.


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