Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Drag & Drop

Drag & Drop
Artículo
  Responder citando Descargar mensaje    
Mensaje Drag & Drop 
 
Hola, soy nuevo en esto y estoy inetentando hacer algo simple pero bonito para comenzar... Estoy modificando el Reproductor de sonido que viene como ejemplo y quiero agregarle la opción de Drop...
el problema es que no se muy bien como hacerlo (hace tiempo no programo otra cosa que javascript o php ) y la documentación que encuentro por todos lados solo dice

EVENT Drop ( )

'This event is raised when a drag is dropped in the control.

PROPERTY Drop AS Boolean

'Returns or sets if a control accepts drops.

SUB Drag ( Data AS Variant [ , Format AS String ] )

'Starts a drag & drop process.

'    * Data is the data to be dragged. It can be a String or an Image.
'    * If Data is a text, then you can specify in Format the MIME type of this text. For example, "text/html".

EVENT Drag ( )

'This event is raised when the mouse enters the control during a drag & drop process.

'Event Cancellation
'If you stop the event with STOP EVENT, then the drop will be rejected.

EVENT DragMove ( )

'This event is raised while the mouse moves inside the control during a drag & drop process.

'Event Cancellation
'If you stop the event with STOP EVENT, you indicate that the part of the control where the mouse cursor is does not accept the drop.  


Y no tengo ni idea como usarlo. Estaría muy ineteresante que junto a esa información pusieran al menos 5 lineas de código a modo de ejemplo para gente como yo  

Bueno, saludos



 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 JaM0N [ 14 Octubre 2009, 06:25 ]


Drag & Drop
Comentarios
  Responder citando Descargar mensaje    
Mensaje Re: Drag & Drop 
 
Nunca he usado D&D, pero mira en los ejemplos que vienen con Gambas, hay un ejemplo llamado precisamente "DragNDrop".

Es un proyecto muy simple, pero que muestra su uso básico.

Saludos



 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 jguardon [ 16 Octubre 2009, 20:59 ]
  Responder citando Descargar mensaje    
Mensaje Re: Drag & Drop 
 
Es muy simple.

1. En el control del que vas a hacer drop pones la propiedad DROP a TRUE.

2. En el control del que quieres hacer drag escribes el evento mousedrag (para hacer drag con el ratón)
PUBLIC SUB textbox_MouseDrag()

IF Mouse.left THEN
  textbox.Drag(textbox.text)
ENDIF
END


Con eso ya has programado que cuando hagas drag en un textbox te lleves el contenido. Igual podrías llevarte cualquier otra cosa naturalmente. El método drag inicia el proceso drag y te llevas lo que hayas metido como argumento.

Así que ahora ya puedes arrastrar desde un textbox a otro por ejemplo. Te queda por programar lo que ocurrirá cuando hagas el drop. para eso está el evento drop
sub textbox2_drop
textbox2.text=textbox1.drop
end sub


Hay algún otro método para programar lo que ocurre mientras mueves el ratón y tal, pero lo fundamental es eso.

 



 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 soplo [ 27 Octubre 2009, 21:25 ]
  Responder citando Descargar mensaje    
Mensaje Re: Drag & Drop 
 
He intentado ejecutar tu cogido en dos textbox ( textbox1 (parga hacer drag) y textbox2 (para hacer el drop) ).

Pero cuando lo ejecuto me da el siguiente error a la hora de pulsar el boton left del raton en el textbox1:

 Image

Y se queda bloqueado el raton, teniendo que salir del  Gambas2, con el teclado.

¿que he hecho mal?


PUBLIC SUB TextBox1_MouseDrag()
  IF Mouse.Left THEN
    TextBox1.Drag(TextBox1.text)
    ENDIF
 END

PUBLIC SUB TextBox2_Drop()
  TextBox2.text = TextBox1.Drop
END


He utilizado UBUNTU 9.10 y Gambas2-2.17



 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 jsbsan [ 01 Noviembre 2009, 11:05 ]
  Responder citando Descargar mensaje    
Mensaje Re: Drag & Drop 
 
Hola, he hecho pruebas y faltaria usar el objeto drop que no depende de quien envia, ya que no debes saber quien envia el dato sino solo el dato que llega al control.

PUBLIC SUB TextBox1_MouseDrag()

  TextBox1.Drag("hola") 'El valor que sea, por defecto texto, si es otra cosa lo cambias por parámetro.

END

PUBLIC SUB TextBox2_Drop()

  TextBox2.Text = Drag.Data

END

Y quieres algo chulo? con el mismo código que te he puesto prueba a arrastrar un archivo de una ventana del explorador de archivos al textbox2, se pondrá el nombre del archivo arrastrado en el textobox.
El objeto Drag contiene los datos del arrastre actual, junto con el tipo de datos.
En tu prueba podrias hacer que si el archivo es extension mp3 pues que suene.
Saludos y suerte!



 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 maikl [ 01 Noviembre 2009, 11:48 ]
  Responder citando Descargar mensaje    
Mensaje Re: Drag & Drop 
 
ep ep ep que falta poner en las propiedades del textbox2 el valor true a la propiedad Drop, en el diseño.



 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 maikl [ 01 Noviembre 2009, 11:49 ]
  Responder citando Descargar mensaje    
Mensaje Re: Drag & Drop 
 
Cierto cierto.

La propiedad DROP lo que hace es indicar que objetos pueden recibir un drag.

Cuando sueltas en ese control se genera el evento textbox2_drop y allí
sub textbox2_drop
textbox2.text=textbox1.drop
end sub


No conocía al objeto DRAG. Todos los días se aprende algo

 

Una cosa mas. El método drag (textbox1.drag(textbox1.text) admite un parámetro. Si no se pone se asume que lo que se copia es texto plano o imagen, pero si se pone el parámetro se puede especificar que es otro tipo de dato (como por ejemplo XML). El parámetro que se pone es el tipo MIME que se quiere usar y que por defecto es "text/html"

Control.drag("video.avi","video/x-msvideo")


Esta es la lista de los mimetypes (aunque por lo visto gambas no funciona con todos)

Mime Types



 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 soplo [ 01 Noviembre 2009, 17:00 ]
  Responder citando Descargar mensaje    
Mensaje Re: Drag & Drop 
 
Ok, ahora me funciona perfectamente.

He hecho una pequeña aplicación a modo de ejemplo.
 Image
Este es el codigo del formulario principal :

' Gambas class file

'propiedades drog:
'TextBox2.Drop debes declararlas  desde el editor de propiedades TRUE
'ListBox1.Drop debes declararlas  desde el editor de propiedades TRUE
'listbox2.Drop debes declararlas  desde el editor de propiedades TRUE


PUBLIC SUB Form_Open()
ListBox1.Add("Andalucia")
ListBox1.Add("Canarias")
listbox1.add("Murcia")
END


'coger
PUBLIC SUB TextBox1_MouseDrag()
  IF Mouse.Left THEN
     TextBox1.Drag(TextBox1.Text)
    ENDIF
 END

PUBLIC SUB ListBox1_MouseDrag()
  IF Mouse.Left THEN
   listbox1.Drag(ListBox1[ListBox1.index].text)
  ENDIF
END

PUBLIC SUB ListBox2_MouseDrag()
  IF Mouse.Left THEN
   listbox2.Drag(ListBox2[ListBox2.index].text)
  ENDIF
END



'soltar
PUBLIC SUB TextBox2_Drop()
  TextBox2.text = Drag.Data
END


PUBLIC SUB ListBox1_Drop()
  ListBox1.Add(Drag.data)
  END
PUBLIC SUB listbox2_Drop()
  ListBox2.Add(Drag.data)
END

 


La publicare en mi blog, gracias a todos por vuestras respuestas



 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 jsbsan [ 01 Noviembre 2009, 19:31 ]
  Responder citando Descargar mensaje    
Mensaje Re: Drag & Drop 
 
Estoy haciendo pruebas con el Drag and Drop  y me repite los datos al hacer Drop .
El codigo es el siguiente:

PUBLIC SUB ListBox1_MouseDrag()

    IF Mouse.Left THEN
    ' inicio el drag
     ListBox1.Drag(ListBox1[ListBox1.Index].Text, "text/plain")
    ENDIF

END

PUBLIC SUB TxaDespues_Drop()
     ' suelto el texto en un texarea
  TxaDespues.Text = Drag.Data ' al parar aqui observo Drag.Data y los datos son correctos

END
 




 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 angelnu [ 11 Noviembre 2009, 20:42 ]
  Responder citando Descargar mensaje    
Mensaje Re: Drag & Drop 
 
si, a mi también me pasó eso y no recuerdo bien pero creo que lo que hice fue hacer un drag.hide porque lo que pasa es que el drag sigue activo por si quieres pastear en otro sitio.

La verdad es que no lo recuerdo porque lo hice hace tiempo y tuve que darle bastantes vueltas hasta conseguirlo. Como no tengo el código aquí no lo puedo mirar, pero creo que fue eso.



 
Desconectado Ver perfil del usuario Enviar mensaje privado  
 soplo [ 11 Noviembre 2009, 20:54 ]
Mostrar mensajes anteriores:
Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente
 

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