23/11/2010, 04:49
|
| | | Fecha de Ingreso: noviembre-2010
Mensajes: 9
Antigüedad: 14 años, 2 meses Puntos: 0 | |
Respuesta: imagenes en vb6 La idea es esta:
Tengo un form con x imagenes no visibles, de las que guardo su posicion top y left en dos arrays (ancho, alto).
Lo que pretendo hacer es colocar las imagenes en esas posiciones predefinidas, con los atributos top y left de manera aleatoria, es decir que nunca se sabe que imagen va a salir en cada posicion.
Algo así:
Almaceno las posiciones iniciales:
ancho(0)=imagen(0).left -> esto por cada imagen
alto(0)=imagen(0).top -> esto por cada imagen
Llamo a esta funcion para generar aleatorios no repetidos conprendidos entre un rango:
# Aleatorios no repetidos
#
# Function Generar_Aleatorio(Numero As Long)
#
# ' Vector para almacenar los números aleatorios
# Dim Aleatorios() As Integer
#
# Dim n As Long, i As Long
#
# 'Redimensiona el vector
# ReDim Aleatorios(Numero) As Integer
#
# 'Recorre el vector
# For i = LBound(Aleatorios()) + 1 To UBound(Aleatorios())
#
# n = i
#
# Do
# n = n - 1
# ' Compara hacia atrás, si está repetido genera un nuevo _
# número y lo guarda en el índice del vector _
# que estaba repetido, es decir en esa posición
#
# If Aleatorios(i) = Aleatorios(n) Then
# Aleatorios(i) = Int(((Numero + 1) * Rnd) + 0)
# n = i
# End If
#
# Loop Until n = 0
#
# Next
#
# generar_aleatorio=aleatorios
#
# End Function
PD: la funcion no me funciona con el valor 0 y no se como cambiarla para que me funcione (la he sacado de Internet).
anchos=generar_aleatorio(5) -> guardo los numeros aleatorios
altos=generar_aleatorio(5)
Luego para colocarlos:
x=0
imagen(0).left=ancho(anchos(x))
imagen(0).top=alto(altos(x))
x=x+1
imagen(1).left=ancho(anchos(x))
imagen(1).top=alto(altos(x))
....
Luego muestro las imagenes:
For x=0 To 3
imagen(x).visible=True
imagen2(x).visible = True
Next
Pero siempre me sale uno debajo de otro.
Todo esto debe funcionar al hacer click a un commandbutton.
Si necesitas mas código dimelo.
Gracias de antemano. |