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
 
Mover Un Picturebox Con El Ratón
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
guadafan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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, 21:07; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mover Un Picturebox Con El Ratón 
 
Gracias, funciona perfectamente, ahora sólo me falta entender por qué  
 



 
guadafan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.

Public Sub Form_Open()

  Button1.Tag = [0, 0]

End


Public Sub Button1_MouseDown()

  With Button1
    .Tag[0] = Mouse.X
    .Tag[1] = Mouse.Y
  End With

End


Public Sub Button1_MouseMove()

' Il "Button" sarà posizionata in questo caso, rispetto al cursore del Mouse, alle coordinate come appresso determinate:
  With Button1
   .X = Mouse.ScreenX - Me.ScreenX - .Tag[0]
   .Y = Mouse.ScreenY - Me.ScreenY - .Tag[1]
  End With

End

 




===================
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, 01:50; editado 2 veces 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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?

Public Sub PBresize_MouseDown()

  ratoninicialX = Mouse.X
  ratoninicialY = Mouse.Y

End

Public Sub PBresize_MouseMove()

  PBresize.x = PBresize.x + Mouse.x - ratoninicialX
  PBresize.Y = PBresize.Y + Mouse.y - ratoninicialY

End
 

 



 
guadafan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mover Un Picturebox Con El Ratón 
 
v3ctor escribió:  
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.





guadafan escribió:  
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.
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mover Un Picturebox Con El Ratón 
 
Shell escribió:  
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, 17:45; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Mover Un Picturebox Con El Ratón 
 
vuott escribió:  

Ahora lo he completado.......espero.  


Ahora ya funciona!.  144amarillos_1437848327_452360

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ó.

 cambiodecontenedorpadre

Y a todo esto, ¿ cómo es que no usasteis Drag Drop ?.

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
última edición por Shell el Sabado, 25 Julio 2015, 20:40; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
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 Mover El Puntero Del Ratón En La Pantalla... vuott Aplicaciones/Fragmentos de Código 1 Domingo, 11 May 2014, 12:53 Ver último mensaje
shordi
No hay nuevos mensajes Mover Imagen Dentro De Un DrawingArea Con ... Shell General 10 Lunes, 30 Enero 2017, 11:55 Ver último mensaje
shordi
No hay nuevos mensajes Ver Imagen En Picturebox imagomundi Bases de Datos 9 Sabado, 22 Septiembre 2018, 14:41 Ver último mensaje
Shell
No hay nuevos mensajes Mover Un Rectángulo Horizontalmente Con E... Shell General 7 Miercoles, 27 Marzo 2019, 20:11 Ver último mensaje
Shell
 

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