Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2005
jymy788 jymy788 is offline
Miembro
 
Registrado: jun 2004
Posts: 120
Poder: 20
jymy788 Va por buen camino
TreeView excepción

Buenos días a todos.

Vamos a ver si me sé explicar: estoy utilizando un TtreeView (en Delphi 7)para hacer una estructura recursiva entre tablas de la base de datos, vamos, que tengo un porrón de nodos. De todas formas ese no es el problema, el caso es que si intento arrastrar un nodo (de dentro) al nodo raiz, y sobre paso este por encima, se cuelga mi aplicación y se cierra inmediatamente sin mostrarme ni un puñetero mensaje de error.

Supongo que me he explicado como el culo, vamos ni que fuera lunes. Esto me pasaba también si intentaba arrastrar (drag over) un elemento desde la parte superior a cualquiera de los nodos "escondidos" por el scroll ya que no cabían en la pantalla y el treeview se hacia la "picha un lío" para tratar de encontrar el nodo target donde soltar el elemento.

Esto lo solucioné de la siguiente manera, metiendo en el evento drag over estas lineas de código

if Y <= DistanceToScroll then
SendMessage(TV.Handle, WM_VSCROLL, SB_LINEUP, 0)
else if Y >= TV.ClientHeight - DistanceToScroll then
SendMessage(TV.Handle, WM_VSCROLL, SB_LINEDOWN, 0);

Pues bien, esta "solución" no es del todo válida porque si el drag over se hace muy deprisa o se te va la pinza y te mueves por el árbol hasta el final, donde no hay nodos, la aplicación casca igual.

En fin, si alguien me puede echar un cable con esto, estaría eternamente agradecido.
Responder Con Cita
 



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 21:43:03.


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