Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/06/2004, 16:22
Avatar de Pip
Pip
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 280
Antigüedad: 21 años, 4 meses
Puntos: 0
Añado lo que se me ha ocurrido de código hasta el momento, no gran cosa como veis.

Código:
Private Sub vScroll_Change()
Dim x As Long
    If (vScroll.Value) Then
        x = (fraFrame.Height / (vScroll.Max)) * (vScroll.Value)
        fraFrame.Top = x - (x * 2)
    Else
        fraFrame.Top = 120
    End If
End Sub
No hay mucho que explicar pero aprovecho para decir que no funciona bien. En teoría, dividiendo el alto de mi frame entre el máximo valor que puede tener el vscroll conseguiría las "porciones" del frame (que viene a ser la ventana completa, por lo que dije antes), y multplicando esta porción por el value actual, nos desplazaríamos hasta la zona concreta, si el máximo valor es 5 y estamos en el value 2, nos encontraríamos a la mitad exacta de la ventana (todo esto no es cierto ya que no me funciona, era mi hipótesis).

Sin embargo cuando llego al valor máximo del vScroll, me encuentro "pasado", no me quedo corto si no que el top del frame es más negativo de lo que debería ser. Uso fraFrame.Top = x - (x * 2) porque es mi manera "casera" de volver negativo el número.

Ojalá alguien pueda darme la clave de todo esto...
__________________
por Pip