Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   problemas con treeview (https://www.clubdelphi.com/foros/showthread.php?t=5076)

perceptron 07-11-2003 14:16:38

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.

roman 07-11-2003 16:06:15

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

perceptron 07-11-2003 17:51:29

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.

Descendents 07-11-2003 18:03:22

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

roman 07-11-2003 18:32:56

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

perceptron 07-11-2003 18:39:42

Gracias por la informacion, pero podrias explicarme un poco como utilizar dichos componentes por favor.

Gracias

roman 07-11-2003 18:43:01

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

Descendents 07-11-2003 18:55:18

Si te refieres a los componentes que yo te dije.Vienen con demos.
Mira que se te habran instalado.

perceptron 07-11-2003 19:13:25

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

perceptron 07-11-2003 19:16:54

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

Descendents 07-11-2003 19:34:58

Tienes los componentes instalados?
Que error te da?
Que delphi utilizas?
dame datos
Gracias

perceptron 07-11-2003 21:12:08

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

Descendents 08-11-2003 01:30:27

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

perceptron 08-11-2003 18:25:46

Gracais descents, ya he conseguido echarlo a andar. Era lo que me comentabas.

Gracias por todo.


La franja horaria es GMT +2. Ahora son las 12:36:44.

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