Make your own free website on Tripod.com
4ta.parte Volver a  arreglos parte 3 Ir al Indice Ir a For Each
El siguiente ejercicio realiza un arreglo a partir de 1 Shape (llamado "S"). Para que el Shape pueda funcionar como un arreglo, en la Ventana de Propiedades colocaremos a Index en 0. El código deberá agregar 254 Shapes a los que daremos un color. Un menú, de nombre Color nos permite optar entre Rojo, Verde, Azul o un conjunto de colores definidos en forma aleatoria mediante Random y randomize.
Primero crearemos desde Herramientas/Editor de Menús, un menú con lo indicado en la figura de la izquierda. Los nombres serán mnucolor, mnurojo, mnuverde, mnuazul y mnu aleatorio. La selección se hará directamente mediante código por lo que no se debe poner nada en el Editor de Menús.
Private Sub mnurojo_Click()
mnurojo.Checked = True
mnuverde.Checked = False
mnuazul.Checked = False
For I = 0 To 255
S(I + 1).BackColor = RGB(I, 0, 0)
'La variable I irá aumentando de 1 en 1 haciendo el rojo más intenso en cada nuevo shape
Next
End Sub
Private Sub mnuazul_Click()
mnurojo.Checked = False
mnuverde.Checked = False
mnuazul.Checked = True
For I = 0 To 255
S(I + 1).BackColor = RGB(0, 0, I)
Next
End Sub
Private Sub mnuverde_Click()
mnurojo.Checked = False
mnuverde.Checked = True
mnuazul.Checked = False
For I = 0 To 255
S(I + 1).BackColor = RGB(0, I, 0)
Next
End Sub
Private Sub mnualeatorio_Click()
Randomize
For I = 0 To 255
S(I).BackColor = RGB(Rnd * 255, Rnd * 255, Rnd * 255)
'Rnd indicará un valor aleatorio por lo que cada Shape tendrá un color distinto.
Next
End Sub
Private Sub Form_Load()
For I = 0 To 10
'Define la cantidad de 'filas (11 en total)
For J = 1 To 24
'Define la cantidad de'columnas
N = (I * 24) + J
If N <= 256 Then
'El ciclo terminará en 255
Load S(N)
'Carga S 255 veces
S(N).Left = 210 * J + 1
'De la posición del 1er. shape (1 twip)respecto a la izquierda los shapes subsiguientes aparecerán 210 'twips a la izquierda
S(N).Top = I * 210 + 5
'De la posición del 1er. shape (5 twips) respecto a la parte superior, cada nuevo shape se ubicará
'210 twips más abajo

S(N).Visible = True
'Todos Visibles
S(0).Visible = False
'El original no estará visible
End If
Next
Next
End Sub
En la próxima veremos otra Estructura de Control: For-each
Volver arriba Volver a  arreglos parte 3 Ir al Indice Ir a For Each