Club Delphi  
    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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-08-2005
quake2420 quake2420 is offline
Miembro
 
Registrado: abr 2004
Posts: 28
Poder: 0
quake2420 Va por buen camino
Problemas con el TreeView y el ListView

Hola amigos estoy implementando una especie de explorador de windows donde a la izquierda de la interfaz tengo un arbol de directorios(TTreeView) y en la derecha tengo una lista de iconos(TListView).
Mi problema es como puedo diferenciar a la hora de por ejemplo borrar una carpeta, que yo haya borrado esa carpeta desde el TListView o desde el TReeView. El codigo que tengo implementado es el siguiente:
Código:
 procedure TMainForm.Deleteclick1(Sender: TObject);
begin
	
   if TListView.selected.selected then
		 Deletecategory
   else
		 Deletecategoryanim
Responder Con Cita
  #2  
Antiguo 11-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Si el método que escribiste lo comparten ambos componentes "TreeView" y "ListView" puedes diferenciar quién lo ejecutó mediante el parámetro "Sender" del mismo, o sea, comprobando el tipo de este. Esto sería una cosa así:

Código Delphi [-]
 procedure BorrarCarpeta(Sender: TObject);
  begin
    if (Sender is TTreeView) then
    begin
      // Lo que tengas pensado hacer
    end;
    if (Sender is TListView) then
    begin
      // ...
    end;
  end;
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 11-08-2005 a las 13:33:38. Razón: (corrección del texto)
Responder Con Cita
  #3  
Antiguo 11-08-2005
quake2420 quake2420 is offline
Miembro
 
Registrado: abr 2004
Posts: 28
Poder: 0
quake2420 Va por buen camino
No me funciona

He puesto el codigo como tu me has dicho y no me funciona.
¿Puede ser por que el procedimiento Deleteclick sea un item de un objeto menu y por eso no me diferencia si yo donde estoy es en el treeview o en el listview
SAludos
Responder Con Cita
  #4  
Antiguo 11-08-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por quake2420
¿Puede ser por que el procedimiento Deleteclick sea un item de un objeto menu y por eso no me diferencia si yo donde estoy es en el treeview o en el listview?
Justamente. Te será imposible averiguar que el "Sender" del método es un "TTreeView" o un "TListView" si al método se llega a través de un "TMenuItem"... ¿No puedes crear un método que pudiera utilizarse tanto en el "TListView", en el "TTreeView" y hasta en el "TMenuItem"? Lo digo un tanto a la ligera, pero, que sepas que no te funciona por lo dicho: compruébalo mirando que el "Sender" es un "TMenuItem", verás como en tu caso (ahora mismo) todo irá como se espera.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 11-08-2005 a las 14:54:07. Razón: (corrección del texto)
Responder Con Cita
  #5  
Antiguo 11-08-2005
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hola

Regresando a la pregunta original, puedes comprobar el componente que tiene el foco en estos momentos a través de la propiedad Focused del mismo. Con esto al dar clic en el menuitem sabrás si estás posicionado en el TTreeView o en el TListView


Código Delphi [-]
 if TreeView1.Focused then
   BorraEnTreeView
 else if ListView1.Focused then
      BorraEnListView
    else
      ShowMessage('No hay nada seleccionado');

Espero te ayude

Saludos.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #6  
Antiguo 11-08-2005
quake2420 quake2420 is offline
Miembro
 
Registrado: abr 2004
Posts: 28
Poder: 0
quake2420 Va por buen camino
Me funciona!!!!

Gracias yusnerqui, como dices tú en tu ultima respuesta me funciona perfectamente.
Muchas gracias!!!!!!
Saludos
Responder Con Cita
Respuesta


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


La franja horaria es GMT +2. Ahora son las 20:10:31.


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