Spanish Control IMAGE

Joserra

Member
Licensed User
Longtime User
Hola a todos,

estoy intentando realizar un programilla para aprender las notas musicales y esta parte me da problemas.
Me podriais ayudar?

Sub Globals
'Declare the global variables here.
Dim Img(28)
Dim i, w, x, y, z
End Sub

Sub App_Start
Form1.Show
y=0
Z=0

Img(0)=Image1.Image 'Do3
Img(1)=Image2.Image 'Re3
Img(2)=Image3.Image 'Mi3
Img(3)=Image4.Image 'Fa3
Img(4)=Image5.Image 'Sol3
Img(5)=Image6.Image 'La3
Img(6)=Image7.Image 'Si3
Img(7)=Image8.Image 'Do4
Img(8)=Image9.Image 'Re4
Img(9)=Image10.Image 'Mi4
Img(10)=Image11.Image 'Fa4
Img(11)=Image12.Image 'Sol4
Img(12)=Image13.Image 'La4
Img(13)=Image14.Image 'Si4
Img(14)=Image15.Image 'Do5
Img(15)=Image16.Image 'Re5
Img(16)=Image17.Image 'Mi5
Img(17)=Image18.Image 'Fa5
Img(18)=Image19.Image 'Sol5
Img(19)=Image20.Image 'La5
Img(20)=Image21.Image 'Si5
Img(21)=Image22.Image 'Do6
Img(22)=Image23.Image 'Re6
Img(23)=Image24.Image 'Mi6
Img(24)=Image25.Image 'Fa6
Img(25)=Image26.Image 'Sol6
Img(26)=Image27.Image 'La6
Img(27)=Image28.Image 'Si6
textbox5.Text= ArrayLen (Img())
x=Rnd(0, ArrayLen (Img())-1)
textbox3.Text = x
For i=0 To ArrayLen(Img())-1
If i=x Then
Control("Image" & i).visible=true
End If
Next
End Sub

Sub Button8_Click
For i=0 To ArrayLen(Img())-1
If ControlType(Img(i)) = "Image" Then
Control("Image" & i).visible=false
End If
Next
For i=0 To ArrayLen(Img())-1
Control("Image" & i).visible=false
Next
textbox5.Text= ArrayLen (Img())
x=Rnd(0, ArrayLen (Img())-1)
textbox3.Text = x
For i=0 To ArrayLen(Img())-1
If i=x Then
Control("Image" & i).visible=true
End If
Next
End Sub

Gracias por todo
Saludos
Joserra
 

Cableguy

Expert
Licensed User
Longtime User
As postado tu codigo, pero no tu problema....
Que és que intentas hacer y no lo consegues?

Poxima vez, hace un upload del file spb generado por el IDE, es mas sencillo de testar...
 

Joserra

Member
Licensed User
Longtime User
Perdon por el descuido

Repito todo

estoy intentando realizar un programilla para aprender las notas musicales y esta parte me da problemas.
Me podriais ayudar?

Sub Globals
'Declare the global variables here.
Dim Img(28)
Dim i, w, x, y, z
End Sub

Sub App_Start
Form1.Show
y=0
Z=0

'Introduzco las imagenes en el array (estan todas marcadas como no visibles)
Img(0)=Image1.Image 'Do3
Img(1)=Image2.Image 'Re3
Img(2)=Image3.Image 'Mi3
Img(3)=Image4.Image 'Fa3
Img(4)=Image5.Image 'Sol3
Img(5)=Image6.Image 'La3
Img(6)=Image7.Image 'Si3
Img(7)=Image8.Image 'Do4
Img(8)=Image9.Image 'Re4
Img(9)=Image10.Image 'Mi4
Img(10)=Image11.Image 'Fa4
Img(11)=Image12.Image 'Sol4
Img(12)=Image13.Image 'La4
Img(13)=Image14.Image 'Si4
Img(14)=Image15.Image 'Do5
Img(15)=Image16.Image 'Re5
Img(16)=Image17.Image 'Mi5
Img(17)=Image18.Image 'Fa5
Img(18)=Image19.Image 'Sol5
Img(19)=Image20.Image 'La5
Img(20)=Image21.Image 'Si5
Img(21)=Image22.Image 'Do6
Img(22)=Image23.Image 'Re6
Img(23)=Image24.Image 'Mi6
Img(24)=Image25.Image 'Fa6
Img(25)=Image26.Image 'Sol6
Img(26)=Image27.Image 'La6
Img(27)=Image28.Image 'Si6

'Compruebo que estan todas
textbox5.Text= ArrayLen (Img())

'Selecciono una aleatoriamente
x=Rnd(0, ArrayLen (Img())-1)

'Compruebo que correponde
textbox3.Text = x

'Le digo al programa que la haga visible
For i=0 To ArrayLen(Img())-1
If i=x Then
Control("Image" & i).visible=true
End If
Next
End Sub

'Hasta aquí todo sin problemas.

El botton 8 tiene que seguir el programa y ocultar la nota visible haciendo aparecer otra segun corresponda pero poniendo los contadores de aciertos y fallos, ya existentes, a cero.

Sub Button8_Click
For i=0 To ArrayLen(Img())-1
Control("Image" & i).visible=false
Next
textbox5.Text= ArrayLen (Img())
x=Rnd(0, ArrayLen (Img())-1)
textbox3.Text = x
For i=0 To ArrayLen(Img())-1
If i=x Then
Control("Image" & i).visible=true
End If
Next
End Sub

Cuando hacemos 'run' ocurre mensaje de error en 'button8':

Control("Image" & i).visible=false

Referencia a objeto no establecida como instancia de un objeto


¿Porque aquí, si antes he usado la misma expresion y me la ha aceptado?

Gracias por todo
Saludos
Joserra
 

Cableguy

Expert
Licensed User
Longtime User
porque no utilizas un DoUntil?
desta forma las intruciones seguintes se repetem asta que la expression sea True....es mas sencillo de programar...
 

Joserra

Member
Licensed User
Longtime User
Gracias por responderme tan rapido.

Realmente tienes razon, pero de esta forma me encuentro mas comodo, aunque eso no quita que luego, una vez visto que todo funciona, lo intente optimizar.

De todas forma y como intentaba explicar, mi problema radica en:

"Cuando hacemos 'run' ocurre mensaje de error en 'button8':

Control("Image" & i).visible=false

Referencia a objeto no establecida como instancia de un objeto

¿Porque aquí, si antes he usado la misma expresion y me la ha aceptado?"

Saludos
 

Cableguy

Expert
Licensed User
Longtime User
posta el file completo del codigo, com ele form...(el spb file), para que possa editarlo e "ver" el error!!!
puede ser que la a apginas tantas, el control image x devuelva vazio o no existente!
 
Top