Visual Basic - Drag & Drop

Life is soft - evento anual de software empresarial
 
Vista:

Drag & Drop

Publicado por Juan R. (36 intervenciones) el 20/11/2002 22:27:30
Si alguien tiene un ejemplo basico de Arrastrar y Soltar que me pueda facilitar en Vb 6.0
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Drag & Drop (PRUEBA)

Publicado por J2ML (464 intervenciones) el 22/11/2002 21:42:13
Por ejemplo:
1.- Declaras dos variables publicas:
Dim DifX as Integer
Dim DifY as Integer
2.- Colocas la propiedad Dragmode del objeto que deseas mover en automático (esto te ahorra el código para el efecto visual del arrastre) por ejemplo para una imagen:
Image1.DragMode = 1 'Esto lo puedes hacer en tiempo de diseño
3.- En el evento mouse move del objeto (en este caso la imagen) colocas:
Private Sub Image1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
DifX = X
DifY = Y
End Sub
4.- En el evento de Drag_Drop del objeto contenedor (en este caso el Formulario) colocas:
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Left = X - DifX
Source.Top = Y - DifY
End Sub
5.- Luego le quitas la propiedad de dragmode automatic para que no puedan seguir moviendo el objeto.
image1.dragmode=0

Por último tienes que tener cuidado cuando muevas objetos como botones, checkbox, option buttons, etc. En general objetos que tengan asociado un evento click, porque al activar la propiedad dragmode a automatic este evento no está disponible (es decir no se activará nunca un click antes que un evento de drag & drop automático). Para solucionar esto podrías:
1.- Activar el arrastre automático de los objetos sólo con el botón derecho del mouse.
2.- Colocar algún botón, menú, etc. Que al invocarlo te coloque todos los objetos en rutina de arrastre automático y otro botón, menú, etc. Que lo desactive.

P.D. ¿ Era lo que esperabas ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar