Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Grid View Y Drag And Drop
Autor Mensaje
Responder citando   Descargar mensaje 
Mensaje Grid View Y Drag And Drop 
 
Hola a todos

   Este post, más que una duda, lo quiero dejar como un apunte por si a alguien le ocurre lo mismo que a mí. El caso es que quería hacer drap & drop desde un grid view (en modo múltiple) hacia un tree view. Básicamente tuve 3 problemas graves.

  1. Selección del nodo de destino - > Quería que al moverme por el tree view haciendo drag, se me fueran seleccionando los nodos para poder elegir, cosa que gambas no hace de por sí. En el ejemplo de gambas de Drag & Drop (que por cierto, no funciona) se muestra como hacer esto.

  2. No me pregunteis por qué, pues no lo sé. Pero para que funcione, el evento DRAG del tree view tiene que estar escrito (aunque no lo use). Si quito el código de abajo, el programa deja de funcionar, a pesar de que no hago nada!! en el evento. Preguntaré en la lista de gambas porque huele a BUG

Public Sub arbol_listas_Drag()
    ' NO BORRAR
End
 


   3. Para acabar de rematar la faena: Al estar en modo múltiple el grid, al hacer drag y luego drop en el tree, la selección de elementos en el grid origen se volvía loca. Para evitarlo, colocar un STOP EVENT al final del evento MOUSE DRAG del grid view.

Escribo todo esto porque no os imagináis la que he tenido que formar para hacer funcionar el código y por más que buscaba, no daba con la solución. Os dejo el código de los cuatro eventos que he tenido que programar. Si veis algo mejorable, ya me comentais

Public Sub listado_MouseDrag()
    Dim cadena As String
    Dim i As Long
    If Mouse.Left = True Then        
        For i = 1 To listado.Rows.Count
            If listado.Rows[i - 1].Selected = True Then
                cadena = cadena & listado[i - 1, 1].Text & "/"
            Endif
        Next
        cadena = Left(cadena, Len(cadena) - 1)
        listado.Drag(cadena)
    End If
    Stop Event
End
Public Sub arbol_listas_Drop()
    Dim elementos As String[]
    Dim i As Integer
    Dim rs As Result
    Dim clave As String
    clave = ""
    If Not arbol_listas.FindAt(Drag.X, Drag.Y) Then
        clave = arbol_listas.Item.Key
    Endif  
    ' Necesito el id de la lista a la que mando los elementos
    If arbol_listas.Count > 0 And IsNumber(clave) Then
        rs = mBBDD.dbOMM.Exec("SELECT * FROM listas WHERE padre=" & CInt(clave))
        If rs.Count > 0 Then Return
        elementos = Split(Drag.Data, "/")
        For i = 1 To elementos.Count
            mBBDD.dbOMM.Exec("DELETE FROM fichas_listas WHERE id_lista=" & CInt(clave) & " AND id_ficha=" & CInt(elementos[i - 1]))  
            rs = mBBDD.dbOMM.Create("fichas_listas")
            rs["id_lista"] = CInt(clave)
            rs["id_ficha"] = CInt(elementos[i - 1])
            rs.Update
        Next
        cargar_arbol(CInt(clave))
    End If
End
Public Sub arbol_listas_DragMove()
    With arbol_listas
        If Not .FindAt(Drag.X, Drag.Y) Then
          arbol_listas.UnselectAll  
          arbol_listas.Item.Selected = True
        Endif
    End With
End
Public Sub arbol_listas_Drag()
    ' NO BORRAR
End
 


[edito] El UnselectAll al arbol lo hago porque también es múltiple y si no lo coloco, se me seleccionan todos los elementos del arbol por los que me muevo mientras arrastro.
 




===================
Proyecto Open Media Manager -> http://www.OpenMediaManager.com
 
última edición por netking86 el Martes, 15 Noviembre 2011, 11:29; editado 1 vez 
netking86 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Drag And Drop jose2190 General 3 Domingo, 19 Septiembre 2010, 10:22 Ver último mensaje
jsbsan
No hay nuevos mensajes Drag/Drop pittusa General 4 Domingo, 30 Enero 2011, 18:31 Ver último mensaje
pittusa
No hay nuevos mensajes Alinear Imagen En Grid View netking86 Controles/Librerías/Componentes 1 Jueves, 24 Marzo 2011, 12:59 Ver último mensaje
netking86
No hay nuevos mensajes Drag Drop, Drag Source, Tag Shell General 0 Domingo, 08 Octobre 2017, 11:28 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron