Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 29-08-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Hola...

Pues resulta que la clase TTreeNode no cuenta con ningún evento que te pueda ayudar a lograr lo que buscas...

En dado caso, tienes que usar el evento OnChange del TTreeView, el cual se dispara cada que cambias de un nodo a otro... El parámetro Node de este evento contiene el nodo que se acaba de seleccionar...

Ahora, para identificar a un nodo individualmente puedes usar ya sea su propiedad ItemId, que identifica a un nodo de forma única en la colección de nodos, o puedes usar la propiedad Data de tipo Pointer en la cual puedes guardar cualquier tipo de información:

Código Delphi [-]
type
  // Tipo de dato que vas a guardar en la propiedad Data de TTreeNode
  PNodeData: TNodeData;
  
  TNodeData = record
    Nombre: string;
    Value: Integer;
  end;

// Ejemplo de como guardar información en la propiedad Data de TTreeNode
procedure TForm1.AddNode(ACaption, AName: string; AValue: Integer);
var
  Node: TTreeNode;
  NodeData: PNodeData;

begin
  Node := TreeView1.Items.Add(nil, ACaption);
  with Node do
  begin
    ImageIndex := 0;
    SelectedIndex := 1;
    StateIndex := 2;
    New(PNodeData);
    with PNodeData^ do
    begin
      Nombre := AName;
      Value := AValue
    end;
    Data := PNodeData
  end
end;

// Ejemplo de como recuperar la información de la propiedad Data de TTreeNode
procedure TForm1.TreeView1OnChange(Sender: TObject; Node: TTreeNode);
begin
  if PNodeData(Node.Data)^.ANombre = 'Nodo1' then
    ShowMessage('Seleccioné el nodo 1, con valor ' + IntToStr(PNodeData(Node.Data)^.Value))
end;

// Al destruir la forma, liberara la memoria ocupada por la propiedad Data de TTreeNode
procedure TForm1.Form1Destroy(Sender: TObject);
var
  I: Integer;
  NodeData: PNodeData;

begin
  for I := 0 to Pred(TreeView.Items.Count) do
  begin
    if Assigned(TreeView1.Items[i].Data) then
    begin
      NodeData := TreeView1.Items[i].Data;
      Dispose(NodeData)
    end
  end
end;

Espero que con estos ejemplos puedas lograr lo que desees...


Saludos...
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problemas con el TreeView y los nodos Gustavo Gowdak OOP 5 23-09-2007 17:44:19
saber que Nodos hijo pulse en TreeView DISAC_FIGO OOP 2 18-01-2007 19:34:28
Accesos de Usuarios a Nodos de TreeView Maury Manosalva OOP 0 09-09-2005 22:00:28
Como utilizar el Treeview, desplegar la info del arbol binario al treeview leo21 OOP 1 08-04-2004 22:42:44
TreeView y colores para los nodos gqxns Varios 2 20-01-2004 12:28:31


La franja horaria es GMT +2. Ahora son las 16:01:40.


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
Copyright 1996-2007 Club Delphi