Autor |
Mensaje |
guadafan
Aprendiz
Registrado: Agosto 2012
Mensajes: 81
Edad: 49 Ubicación: Alcalá de Guadaira (Sevilla)
|
Mover Un Picturebox Con El Ratón
Hola, para mover un picturebox (o cualquier otra cosa) con el ratón, utilicé el evento picturebox_mouseDrag() y simplemente asigné mouse.X y mouse.Y a mi picturebox.X y picturebox.Y respectivamente.
Pero eso hace que el picturebox tiemble de un lado para otro rápidamente ¿Cómo es la manera correcta de hacer esto?
Gracias.
|
#1 Miercoles, 22 Julio 2015, 19:29 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Mover Un Picturebox Con El Ratón
Te señalo esta pagina (mover sin Drag&Drop) con ejemplos que escribi en el WIKI del foro italiano de los programadores Gambas:
http://www.gambas-it.org/wiki/index...a_Drag_%26_Drop
En partiicular alli lee el paragrafo: " Spostamento con riferimento alla posizione del cursore del mouse rispetto al contenitore "
última edición por vuott el Miercoles, 22 Julio 2015, 20:07; editado 3 veces
|
#2 Miercoles, 22 Julio 2015, 20:02 |
|
|
guadafan
Aprendiz
Registrado: Agosto 2012
Mensajes: 81
Edad: 49 Ubicación: Alcalá de Guadaira (Sevilla)
|
Re: Mover Un Picturebox Con El Ratón
Gracias, funciona perfectamente, ahora sólo me falta entender por qué
|
#3 Jueves, 23 Julio 2015, 00:12 |
|
|
v3ctor
Analista Programador
Registrado: May 2013
Mensajes: 1786
Edad: 44 Ubicación: Uruguay
|
Re: Mover Un Picturebox Con El Ratón
buenas,
che vuott vi el codigo asi de apuro, al toque, y lo que me llamo la atencion en la propiedad tag es que es un array
la propiedad tag se puede usar un array de palabras o números?
la propiedad tag es de tipo variant?
Property Tag As Variant
Devuelve o establece una etiqueta para el control .
Esta propiedad se destina para el programador y nunca es utilizado por el componente.
Puede contener cualquier Valor tipo Variant.
jajajaj tanto tiempo y recién hoy me doy cuenta que en la propiedad tag se pueden guardar decenas de datos con array lo cual es sustancial pues se puede manipular infinidad de situaciones.
hoy aprendí algo nuevo jajajj, gracias vuott.
=================== Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
última edición por v3ctor el Jueves, 23 Julio 2015, 00:50; editado 2 veces
|
#4 Jueves, 23 Julio 2015, 00:48 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Mover Un Picturebox Con El Ratón
Cuesta entender el uso de la propiedad tag para otras cosas que no sean las habituales, por ejemplo índices.
Viene de costumbres de Visual Basic
Todo es cuestión de comenzar a probar cosas con la propiedad tag y ver usos distintos.
Lo que no podemos cambiar es nuestra mente, sobre todo si no está acostumbrada.
En ese caso hay que hacer un poco de yoga y ver mas allá de lo de siempre..no creo que
pueda, cuando no es el ruido de una obra, es el ruido de una moto, el ruido de una carpintería..
alguien que da un grito..auunnn, auuun, la madre que los parió!.
Una canción decía.."Quiero una motocicleta.."...pues yo digo..."Quiero una metralletaaaa..."
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#5 Jueves, 23 Julio 2015, 08:51 |
|
|
guadafan
Aprendiz
Registrado: Agosto 2012
Mensajes: 81
Edad: 49 Ubicación: Alcalá de Guadaira (Sevilla)
|
Re: Mover Un Picturebox Con El Ratón
Lo puse como me dijiste en el wiki (solo que lo cambié al estilo novato porque estoy más acostumbrado), como decía, funciona perfectamente, pero lo que no entiendo es por qué no se dispara el evento mousemove si el ratón se mueve dentro del control, sino que se dispara cuando haces clic+mueves el ratón. Para mí eso es un dragmouse clicar y arrastrar ¿no?
|
#6 Jueves, 23 Julio 2015, 09:09 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Mover Un Picturebox Con El Ratón
me doy cuenta que en la propiedad tag se pueden guardar decenas de datos con array lo cual es sustancial pues se puede manipular infinidad de situaciones.
No exageres con los Variant !
El tipo Variant ocupa 16 byte en un sistema de 64bit.
Lo puse como me dijiste en el wiki (solo que lo cambié al estilo novato porque estoy más acostumbrado), como decía, funciona perfectamente, pero lo que no entiendo es por qué no se dispara el evento mousemove si el ratón se mueve dentro del control, sino que se dispara cuando haces clic+mueves el ratón.
El evento MouseMove() se dispara cuando el ratón se mueve dentro del control mientras un botón del ratón es presionado.
|
#7 Jueves, 23 Julio 2015, 14:16 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Mover Un Picturebox Con El Ratón
Vuott:
El ultimo código de los tres ejemplos no parece "completo", o funcional del todo.
Prueba a desplazar el objeto sobre el contenedor padre original y ahora quita el dedo del botón del ratón.
El componente se pierde en el segundo contenedor...no se ve!.
( Se ve que cambia en la consola a otro contenedor padre)
¿ No necesitas usar el eje "Y" cuando le dices que ahora tiene un "nuevo padre"..contenedor padre.?..
En cambio si lo llevas hasta el panel y quitas el dedo del botón del ratón el objeto cambia de contenedor padre.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#8 Sabado, 25 Julio 2015, 13:56 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Mover Un Picturebox Con El Ratón
El ultimo código de los tres ejemplos no parece "completo", o funcional del todo.
Sì, Shell, era solo un simple ejemplo por el .Reparent, pero era demasiado parcial.
Ahora lo he completado.......espero.
http://www.gambas-it.org/wiki/index...et.C3.A0_Parent
Gracias y saludos.
última edición por vuott el Sabado, 25 Julio 2015, 16:45; editado 2 veces
|
#9 Sabado, 25 Julio 2015, 16:44 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Mover Un Picturebox Con El Ratón
Ahora lo he completado.......espero.
Ahora ya funciona!.
Ah, podíamos también haber usado: ( Y así no usamos el nombre del formulario actual, que puede ser cualquiera ).
Public Sub PictureBox1_MouseUp()
If Panel1.Children.Count = 0 And Mouse.Inside(Panel1) Then
'If PictureBox1.Parent.Name = "FMain3" And Mouse.Inside(Panel1) Then
With PictureBox1
'Se realiza la modificación del contenedor padre del objeto
'el contenedor "Panel1" pasa a ser el nuevo "Padre" del objeto
.Reparent(Panel1, .X - Panel1.X, .y - Panel1.y)
Print "Nuevo contenedor padre: " & .Parent.Name
End With
End If
End
Es que en mi ejemplo Panel1 estaba vació.
Y a todo esto, ¿ cómo es que no usasteis Drag Drop ?.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
última edición por Shell el Sabado, 25 Julio 2015, 19:40; editado 2 veces
|
#10 Sabado, 25 Julio 2015, 19:19 |
|
|
|