Ver Mensaje Individual
  #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
Reputación: 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