Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Onmouser en visual basic?

Estas en el tema de Onmouser en visual basic? en el foro de Visual Basic clásico en Foros del Web. Buenas!!! Pues el tema es el siguiente me gustaria que al poner el raton en lo alto de 1 imagen/boton se cambie la imagen e ...
  #1 (permalink)  
Antiguo 05/07/2009, 09:47
Avatar de dkmarley  
Fecha de Ingreso: marzo-2009
Mensajes: 48
Antigüedad: 15 años, 1 mes
Puntos: 0
Onmouser en visual basic?

Buenas!!!

Pues el tema es el siguiente me gustaria que al poner el raton en lo alto de 1 imagen/boton se cambie la imagen e probado con el boton mediante el mousemove pero al pasar se cambia la imagen i ya no se kita me gustaria k solo fuera al ponerse en lo alto...

No conozco muy bien los eventos en vb .. en realidad no conozco mucho de visual basic xDD haber si me podeis ayudar con este tema

Gracias y Paz
  #2 (permalink)  
Antiguo 05/07/2009, 10:16
 
Fecha de Ingreso: abril-2009
Mensajes: 136
Antigüedad: 15 años
Puntos: 1
Respuesta: Onmouser en visual basic?

Probar con setfocus para cuando se ubique sobre la imagen y lostfocus cuanto salgas de la imagen
  #3 (permalink)  
Antiguo 05/07/2009, 10:19
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Onmouser en visual basic?

Mira intenté con este código y funciona, tarda un poco en cargar la imagen cuidado.

Código Visual Basic:
Ver original
  1. Dim ruta1, ruta2 As String
  2. Dim eruta As Integer
  3. Private Sub Form_Load()
  4. ruta1 = "d:\Pimage1.jpg"
  5. Image1.Picture = LoadPicture(ruta1)
  6. eruta = 1
  7. Image1.Enabled = True
  8. End Sub
  9.  
  10. Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  11. ruta1 = "d:\Pimage1.jpg"
  12. ruta2 = "d:\Pimage2.jpg"
  13. If eruta = 1 Then
  14.     eruta = 2
  15.     Image1.Picture = LoadPicture(ruta2)
  16. ElseIf eruta = 2 Then
  17.     eruta = 1
  18.     Image1.Picture = LoadPicture(ruta1)
  19. End If
  20. End Sub
  #4 (permalink)  
Antiguo 06/07/2009, 06:37
Avatar de STK_Pablo  
Fecha de Ingreso: junio-2008
Ubicación: Las Rosas - Santa Fe - Argentina
Mensajes: 69
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Onmouser en visual basic?

Buenas, si bien la alternativa anterior anda yo te recominedo que coloques 2 controles de imagnes, les des las mismas caracteristicas y carges en cada uno de ellos una de las imagenes, al formulario contenedor ponele a TRUE las propiedades de ClipControls y AutoRedraw y utiliza los eventos GotFocus del primer control de imagen y LostFocus del segundo. Yo he utilizado esta tecnica hace ya akgunos años en uno de mis proyectos porque fue la que mas me gusto en rendimiento en ese momento. No realiza ningun tipo de parpadeo al cambiar la imagen....
  #5 (permalink)  
Antiguo 06/07/2009, 07:41
Avatar de dkmarley  
Fecha de Ingreso: marzo-2009
Mensajes: 48
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Onmouser en visual basic?

Buenas!!

FTech gracias!!! por el codigo he probado y funciona pero se ve todo muy raro es decir, parpadea mucho nose nose, se queda raro aunke funciona eso si.

He visto que comentais de nuevo lo de focus ( nose si te referiras a lo mismo que el primer comentario) pero he estado informandome y no se como funciona exactamente, me podeis comentar como va o darme algun lugar que tenga ejemplos para ver el funcionamiento.

En el codigo de arriba tendria k modificar la linea
Image1.Picture = LoadPicture(ruta2) por ruta1.gotfocus
Asi concentro el foco en esa imagen y con el mousemove cuando ponga el raton en lo alto ase el lostfocus para recobrar la imagen primera?

Creo que acabo de decir una burra xDD pero esque no pillo lo del foco y tal.

De todas formas gracias por la rapidez/informacion.

Saludos y Paz

Última edición por dkmarley; 06/07/2009 a las 07:54
  #6 (permalink)  
Antiguo 06/07/2009, 09:12
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Onmouser en visual basic?

En msdn:

Cita:
GotFocus Event
The GotFocus event occurs when a form or control receives the focus.
La verdad lo he probado con el ejemplo que dan, pero se consigue el foco, cuando se está haciendo referencia a un objeto. La verdad no se como se conseguirá el efecto de que el mouse esté por encima.

Cita:
parpadea mucho nose nose, se queda raro aunke funciona eso si.
Que raro :S a mi me funcionaba correctamente.( Tipica de un programador? En mi máquina funciona ^^)

No pero apartando la risa, es muy raro que te parpadee. Digamos, parpadea cuando está por cambiar de imágen? Es decir cuando sacas el mouse de dentro de la imágen?
  #7 (permalink)  
Antiguo 06/07/2009, 09:40
Avatar de dkmarley  
Fecha de Ingreso: marzo-2009
Mensajes: 48
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Onmouser en visual basic?

jajajaja

no lo de que "parpadea" esk el problema es k con mousemove siempre que te muevas por el botton va a ir cambiando y de ai el parpadeo que comento, lo que quiero es que si esta en lo alto ponga una imagen ( y no se cambie aunke el tio se dedique a dar vueltas en lo alto el boton) y que si esta fuera del boton pues otra imagen, hay viene el problema al falta alomjr el evento en vb.

He probado lo de gotfocus y lostfocus pero eso me sirve si quiero que cambie la imagen al acer click ya que se coloca el foco en el boton o al menos eso e conseguido yo xDD.

Simplificando xDD que al posarte con el curso en lo alto el boton salga 1imagen y al quitarte de ese boton salga otra imagen independientemente de si t mueves dentro del boton con el cursos
  #8 (permalink)  
Antiguo 06/07/2009, 09:56
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Onmouser en visual basic?

Mira:

Código VB:
Ver original
  1. Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  2. ruta1 = "d:\Pimage1.jpg"
  3. ruta2 = "d:\Pimage2.jpg"
  4.  
  5. If eruta = 1 Then
  6.     eruta = 2
  7.     Image1.Picture = LoadPicture(ruta2)
  8. ElseIf eruta = 2 Then
  9.     eruta = 1
  10.     Image1.Picture = LoadPicture(ruta1)
  11. End If
  12. End Sub

No tengo placa de video. Pero te cuento que es lo que ocurre conmigo:

Cuando salgo del command button, cambia la imagen, cuando entro y me muevo por dentro de la "zona" del button la imágen permanece intacta y no cambia.
  #9 (permalink)  
Antiguo 06/07/2009, 20:03
Avatar de STK_Pablo  
Fecha de Ingreso: junio-2008
Ubicación: Las Rosas - Santa Fe - Argentina
Mensajes: 69
Antigüedad: 15 años, 10 meses
Puntos: 1
De acuerdo Respuesta: Onmouser en visual basic?

Por el problema del parpadeo que decis, puede ser que tengas a Flase las propiedades AutoRedraw y ClipControl del Formulario contenedor.... otra explicacion creo que no hay
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:44.