Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Drag & Drop
Autor Mensaje
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
 



 
JaM0N - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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.

 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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:

 error_drag_and_drop

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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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!
 



 
maikl - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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.
 



 
maikl - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Drag & Drop 
 
Ok, ahora me funciona perfectamente.

He hecho una pequeña aplicación a modo de ejemplo.
 cogerysoltar
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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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
 

 



 
angelnu - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Drag And Drop jose2190 General 3 Domingo, 19 Septiembre 2010, 11: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 Drag&Drop En Treeview Grandamakulo Controles/Librerías/Componentes 10 Sabado, 17 Diciembre 2016, 23:02 Ver último mensaje
Grandamakulo
No hay nuevos mensajes FileChooser Y Drag & Drop didier18 Aplicaciones/Fragmentos de Código 2 Miercoles, 27 Enero 2016, 22:54 Ver último mensaje
didier18
 

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


 
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
No puede descargar archivos
No puede publicar eventos en el calendario