Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: USUARIO_DE_SOFTWARE_LIBRE en 29 Diciembre 2005, 16:44 pm



Título: Error----->"invalid outside procedure"
Publicado por: USUARIO_DE_SOFTWARE_LIBRE en 29 Diciembre 2005, 16:44 pm
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


Título: Re: Error----->"invalid outside procedure"
Publicado por: NYlOn en 30 Diciembre 2005, 01:34 am
Seria mucho mas facil que marques la linea donde aparece el error.

Gracias.


Título: Re: Error----->"invalid outside procedure"
Publicado por: USUARIO_DE_SOFTWARE_LIBRE en 30 Diciembre 2005, 03:13 am
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


Título: Re: Error----->"invalid outside procedure"
Publicado por: NYlOn en 30 Diciembre 2005, 06:20 am
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:
Código:
Vidas = Vidas - 1

Un saludo.


Título: Re: Error----->"invalid outside procedure"
Publicado por: USUARIO_DE_SOFTWARE_LIBRE en 30 Diciembre 2005, 20:14 pm
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???


Título: Re: Error----->"invalid outside procedure"
Publicado por: 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
Código:
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
Código:
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


Título: Re: Error----->"invalid outside procedure"
Publicado por: Slasher-K en 3 Enero 2006, 06:19 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
Código:
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
Código:
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.


Título: Re: Error----->"invalid outside procedure"
Publicado por: Sancho.Mazorka en 3 Enero 2006, 09:52 am
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


Título: Re: Error----->"invalid outside procedure"
Publicado por: karmany en 3 Enero 2006, 12:50 pm
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


Título: Re: Error----->"invalid outside procedure"
Publicado por: USUARIO_DE_SOFTWARE_LIBRE en 9 Enero 2006, 20:46 pm
ya probe con el modulo, pero me marca lo mismo, me marca el 3...igual que antes...
gracias x la ayuda :'(


Título: Re: Error----->"invalid outside procedure"
Publicado por: NYlOn en 11 Enero 2006, 00:38 am
Saca el Option Explicit.


Título: Re: Error----->"invalid outside procedure"
Publicado por: USUARIO_DE_SOFTWARE_LIBRE en 12 Enero 2006, 01:14 am
Ya probé todo... :( :(  :(
creo que voy a tener que poner una sola vida...va a quedar re trucho el juego  :'( :'(