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 22-08-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up Eventos Del Treeview

Holas amigos del foro, tengo un TreeView en mi formulario y necesito hacer lo siguiente :
Cuando le de doble click o Enter en uno de su nodos que me muestre un formulario que esta relacionado con este nodo; pero teniendo en cuenta que el nodo debe ser hoja; la verdad he logrado hacerlo pero no me satisface,pues tiene un problema que cuando selecciono el nodo, y le doy doble click en otro lado igual me hace el evento. Agradeceria cualquier ayuda, o sugerencia.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #2  
Antiguo 22-08-2008
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
Puedes usar el método GetHitTestInfoAt del TreeView, que te permite saber en qué parte exactamente se da el click:

Código Delphi [-]
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
  Node: TTreeNode;
  P: TPoint;

begin
  // Coordenadas donde se da el doble click
  P := TreeView1.ScreenToClient(Mouse.CursorPos);

  // Si se dió sobre la etiqueta del nodo ...
  if htOnLabel in TreeView1.GetHitTestInfoAt(P.X, P.Y) then
  begin
    // Obtener el nodo
    Node := TreeView1.GetNodeAt(P.X, P.Y);

    // Si es nodo hoja ...
    if not Node.HasChildren then
      ShowMessage(Node.Text);
  end;
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 22-08-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola rgstuamigo, puedes utilizar lal función GetHitTestInfoAt del TreeView.

Editado: controlando lo del hijo mas, así quedaría mi codigo:

Código Delphi [-]
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
 Punto : TPoint;
begin
 Punto := TreeView1.ScreenToClient(Mouse.CursorPos);

 if (htOnItem in TreeView1.GetHitTestInfoAt(Punto.X , Punto.Y)) AND Not (TreeView1.Selected.HasChildren) then
  showmessage('Estamos en el item '+TreeView1.Selected.Text);
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 22-08-2008 a las 17:33:40.
Responder Con Cita
  #4  
Antiguo 22-08-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up

Gracias por reponder roman tu codigo es bueno es lo que necesitaba,
Gracias tambien a Caro por responder aunque tu codigo es mas corto que el roman tiene u pequeño detalle que acepta tambien a nodos que son padres y lo que yo queria era que solo sea a un nodo hijo.
Pero como hago para el Enter?
Gracias a los dos son un veneno=bueno,rapido,eficaz ;para responder. Saludo.....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 22-08-2008 a las 17:33:42.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar un treeview a otro treeview mierda OOP 0 26-07-2006 12:29:17
Como utilizar el Treeview, desplegar la info del arbol binario al treeview leo21 Varios 2 08-04-2004 22:47:30
Como utilizar el Treeview, desplegar la info del arbol binario al treeview leo21 OOP 1 08-04-2004 22:42:44
Eventos xerkan Firebird e Interbase 5 13-10-2003 17:21:18


La franja horaria es GMT +2. Ahora son las 14:29:23.


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