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

Problema con HScroll solo en XP

Estas en el tema de Problema con HScroll solo en XP en el foro de Visual Basic clásico en Foros del Web. Hola a todos. Explico el problema esperando que alguien pueda echarme un cable. Unas imágenes que tienen que girar. Un control HScroll1 Max 2 Min ...
  #1 (permalink)  
Antiguo 29/04/2011, 07:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Problema con HScroll solo en XP

Hola a todos. Explico el problema esperando que alguien pueda echarme un cable.

Unas imágenes que tienen que girar.
Un control HScroll1
Max 2
Min 0


Código:
Private Sub HScroll1_Change()

'Para que el control no "estanque" nunca:

  Static Sumar As Integer
  If Sumar = 0 Then Sumar = 1

  If HScroll1.Value = HScroll1.Min Then
  Sumar = 1
  HScroll1.Value = HScroll1.Value + Sumar

  'Y aquí el código para que giren las imágenes.

End Sub

En Windows 7 el Scroll funciona sin problemas, pero en varios PC con XP en los que probé, El HScroll no responde, no es detectado.

He probado con HScroll1.SetFocus y tampoco va.

Gracias de antemano.
  #2 (permalink)  
Antiguo 29/04/2011, 13:13
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Problema con HScroll solo en XP

No tiene lógica este código.

(las mayusculas son para distinguir mi comentario del código)
Static Sumar As Integer
SUMAR SOLO VALE CERO LA PRIMERA VEZ QUE SE ENTRA EN LA SUB
E INMEDIATAMENTE SE LE ASIGNA EL VALOR UNO
If Sumar = 0 Then Sumar = 1

AQUI SIEMPRE LLEGARA SUMAR=1 ¿A QUE VIENE LA COMPARACION?
If HScroll1.Value = HScroll1.Min Then
Sumar = 1
HScroll1.Value = HScroll1.Value + Sumar

¿POR QUE NO LA DECLARAS CONSTANTE Y ACABAS ANTES:
Const Sumar = 1
HScroll1.Value = HScroll1.Value + Sumar

O MEJOR LO DEJAS EN:
HScroll1.Value = HScroll1.Value + 1

Por otro lado, al entrar en esta sub (change) se supone que ya ha cambiado el valor de hscroll1 por que has pinchado en el, de modo que cambiarlo aqui de nuevo es bastante inusual, si no es para controlar máximos o mínimos, y para eso están las propiedades max y min.

Lo de "estancarse" el control imagino que se refiere a que cuando pinchas en el a veces se queda pegado al raton y cuesta dejarlo donde quieres, pero ese código no creo que lo evite.

Que no responda el control es muy raro, y si pinchas en el para subirlo o bajarlo no hace falta hacer setfocus por estar ya enfocado.

Pon un punto de interrupción al comienzo de la sub y así compruebas si realmente no entra en ella el programa al pinchar en el scrollbar. Si entra pues lo sigues con F8 hasta que veas donde te falla.

Suerte
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #3 (permalink)  
Antiguo 29/04/2011, 13:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Problema con HScroll solo en XP

Hola pkj, gracias por las correcciones, ya las he aplicado.

De todas formas, creo que en parte no me he explicado bien. La barra HScroll, está oculta. Se trata de girar la noria al mouve move de las imágenes o del Form. Es decir, arrancas la aplicación y el control recibe el foco y en windows 7 funciona sin tener que pinchar en él. Sin embargo en XP o le clicas o no va, aunque ves que recibe el foco.

Gracias una vez más.

Un saludo
  #4 (permalink)  
Antiguo 29/04/2011, 13:32
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Problema con HScroll solo en XP

Tienes razón. No me acordaba de que yo tuve el mismo problema con el pkj-player.
Lo mejor es que cambies el hscroll por un slider que se mueve con la rueda del ratón.
En otro caso tendrás que usar métodos mas complicados para hacerlo.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #5 (permalink)  
Antiguo 29/04/2011, 13:37
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Problema con HScroll solo en XP

Es la primera vez que oigo hablar de Slider. Ya me pongo a buscar información. Muchas gracias, me ha sido muy útil la ayuda.

Un saludo
  #6 (permalink)  
Antiguo 29/04/2011, 13:41
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Problema con HScroll solo en XP

Solo agrega Microsoft windows common controls para poder incluirlo y usa el evento scroll en lugar del evento change.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #7 (permalink)  
Antiguo 29/04/2011, 13:46
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Problema con HScroll solo en XP

Gracias pkj. No sé si esta noria va a girar algún día. No apuesto mucho por ello, aunque paciencia tengo mucha, así que a ver que pasa.

Un saludo
  #8 (permalink)  
Antiguo 29/04/2011, 15:40
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Problema con HScroll solo en XP

Pues yo hice una prueba y va muy bien, y con ese código que pusiste aun va mejor.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #9 (permalink)  
Antiguo 29/04/2011, 16:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Problema con HScroll solo en XP

Ya gira! Utilicé el Slider que has dicho y sí que funciona (atrás, adelante, en Win7 y en WinXP y no pruebo más cosas por si acaso encuentro algún fallo más).

En cuanto al código de la circunferencia, si que se "desliza" de forma más suave, aunque supongo que depende del efecto que busques.

Gracias de nuevo por todo.

Un saludo

Etiquetas: xp
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




La zona horaria es GMT -6. Ahora son las 04:09.