Error----->"invalid outside procedure"

Iniciado por USUARIO_DE_SOFTWARE_LIBRE, 29 Diciembre 2005, 16:44 PM

0 Miembros y 1 Visitante están viendo este tema.

USUARIO_DE_SOFTWARE_LIBRE

esoty haciendo un juego muy simple, cundo lo quiero compilar me salta este error: "invalid outside procedure"
el codigo que pongo es este:

Option Explicit
Dim vidas As Byte
vidas = 3

Private Sub Picture1_Click()
Picture1.Picture = LoadPicture(App.Path & _
"\1.gif")
End Sub

Private Sub Picture10_Click()
Picture10.Picture = LoadPicture(App.Path & _
"\3.gif")
End Sub

Private Sub Picture11_Click()
Picture11.Picture = LoadPicture(App.Path & _
"\2.gif")
End Sub

Private Sub Picture12_Click()
If vidas = 1 Then
MsgBox "Fin del juego", "No te quedan más vidas haz perdido"
Else
vidas -1
MsgBox "Mal!", "Perdiste una vidas, ahora tienes" & vidas
End If
Picture12.Picture = LoadPicture(App.Path & _
"\m1.gif")
End Sub

Private Sub Picture13_Click()
If vidas = 1 Then
MsgBox "Fin del juego", "No te quedan más vidas haz perdido"
Else
vidas -1
MsgBox "Mal!", "Perdiste una vidas, ahora tienes" & vidas
End If
Picture13.Picture = LoadPicture(App.Path & _
"\m2.gif")
End Sub

Private Sub Picture14_Click()
Picture14.Picture = LoadPicture(App.Path & _
"\5.gif")
End Sub

Private Sub Picture15_Click()
Picture15.Picture = LoadPicture(App.Path & _
"\4.gif")
End Sub

Private Sub Picture2_Click()
Picture2.Picture = LoadPicture(App.Path & _
"\6.gif")
End Sub

Private Sub Picture3_Click()
If vidas = 1 Then
MsgBox "Fin del juego", "No te quedan más vidas haz perdido"
Else
vidas -1
MsgBox "Mal!", "Perdiste una vidas, ahora tienes" & vidas
End If
Picture3.Picture = LoadPicture(App.Path & _
"\m3.gif")
End Sub

Private Sub Picture4_Click()
Picture4.Picture = LoadPicture(App.Path & _
"\7.gif")
End Sub

Private Sub Picture5_Click()
If vidas = 1 Then
MsgBox "Fin del juego", "No te quedan más vidas haz perdido"
Else
vidas -1
MsgBox "Mal!", "Perdiste una vidas, ahora tienes" & vidas
End If
Picture5.Picture = LoadPicture(App.Path & _
"\m4.gif")
End Sub

Private Sub Picture6_Click()
Picture6.Picture = LoadPicture(App.Path & _
"\9.gif")
End Sub

Private Sub Picture7_Click()
Picture7.Picture = LoadPicture(App.Path & _
"\8.gif")
End Sub

Private Sub Picture8_Click()
If vidas = 1 Then
MsgBox "Fin del juego", "No te quedan más vidas haz perdido"
Else
vidas -1
MsgBox "Mal!", "Perdiste una vidas, ahora tienes" & vidas
End If
Picture8.Picture = LoadPicture(App.Path & _
"\m5.gif")
End Sub

Private Sub Picture9_Click()
Picture9.Picture = LoadPicture(App.Path & _
"\10.gif")
End Sub

agradezco a quien me pueda dar una mano
saludos

NYlOn

Seria mucho mas facil que marques la linea donde aparece el error.

Gracias.

USUARIO_DE_SOFTWARE_LIBRE

tienes razon de olvide de eso, el error me lo marca cuando declaro  le doi el valor a la variable "vidas", me marca el 3
saludos

NYlOn

Ah ya entendi. Es porque solo le podes dar un valor a una variable en una funcion o sub funcion. Por ejemplo, en el Load de un Form (que es lo mas comun para estos casos).

Lo podes sulucionar moviendo ese Vidas = 3 al evento Form_Load.

Y otra observacion; estas poniendo Vida -1. Supongo que lo que estas tratando de hacer es restarle 1 al total de vidas, pero lo estas haciendo mal. El codigo correcto seria:

Vidas = Vidas - 1


Un saludo.

USUARIO_DE_SOFTWARE_LIBRE

ahora me salta otro error, cuando el programa llama a la varible vidas me  dice que la variable no estña definida... ¡ pero si la declare en el el formulario (form_load) !!
como tendria que declarar esta variable???

Sancho.Mazorka

#5
intenta cambiarla el tipo no le pongas byte ponele otra como integer y no lo tenes que declarar en el form_load poruqe no te dejaria usarla en otro lado declarada asi como esta, esta bien arriba pone dim vidas as integer y si pones vidas = 3 estarias declarandola como constante y encima creo qeu esta mal al vidas = 3 declarada como habias dicho antes en el form_load ya que al principio va a ser 3 y la podes usar con el valor que tenga en el momento por cualquier procedimiento, ya que estamos de que es el juego de que se trata???
a mi no me funciona eso de vidas =vidas 1 yo habia hecho en un timer seg = seg + 1 y simepre me qeudaba en uno el timer no las sumaba y estaba declarado el tipo de la variable y tambioen lo probe sin option explicit y nada, ahsta declare en forma global la variable y anda porque puede ser yo queria hacer un tipo reloj cuando se activara el timer iba a sumar de a uno (es la uinica forma que se hacer un reloj). Gracias y salu2.

PD: si no esta claro postealo y te lo hago un poco mas mejor  ;D. espero que eso solucione tu problema  ;)
Sancho Mazorka     :P
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



Slasher-K

Cita de: Sancho.Mazorka en  3 Enero 2006, 05:28 AM
intenta cambiarla el tipo no le pongas byte ponele otra como integer y no lo tenes que declarar en el form_load poruqe no te dejaria usarla en otro lado declarada asi como esta, esta bien arriba pone dim vidas as integer y si pones vidas = 3 estarias declarandola como constante y encima creo qeu esta mal al vidas = 3 declarada como habias dicho antes en el form_load ya que al principio va a ser 3 y la podes usar con el valor que tenga en el momento por cualquier procedimiento, ya que estamos de que es el juego de que se trata???
a mi no me funciona eso de vidas =vidas 1 yo habia hecho en un timer seg = seg + 1 y simepre me qeudaba en uno el timer no las sumaba y estaba declarado el tipo de la variable y tambioen lo probe sin option explicit y nada, ahsta declare en forma global la variable y anda porque puede ser yo queria hacer un tipo reloj cuando se activara el timer iba a sumar de a uno (es la uinica forma que se hacer un reloj). Gracias y salu2.

PD: si no esta claro postealo y te lo hago un poco mas mejor  ;D. espero que eso solucione tu problema  ;)
Sancho Mazorka     :P

Mejor relee el tutorial porque tenés errores muy graves de conceptos básicos.

JoKker, tenés que declarar la variable en el sector de Declaraciones, arriba de todo del módulo antes de cualquier procedimiento.

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

Sancho.Mazorka

mmm me dirias en que parte tengo errores o orrores si no me equivoco la primera parte se lo dije bien. talvez que no me doy cuenta o iinterprete mal todo. gracais por als correciones Slasher-K salu2.


sancho Mazorka    :P
Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html



karmany

Prueba a definir la vidas en un módulo de esta forma y siempre la tendrás definida en el proyecto:

Public vidas as integer

USUARIO_DE_SOFTWARE_LIBRE

ya probe con el modulo, pero me marca lo mismo, me marca el 3...igual que antes...
gracias x la ayuda :'(