Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ..::[ thekingkid ]::.. en 30 Enero 2006, 16:39 pm



Título: error funcion no funciona como yo espero(XD)
Publicado por: ..::[ thekingkid ]::.. en 30 Enero 2006, 16:39 pm
buenas... hola como estan... como siempre uno obsecionado con eso de la programacion estuve intentando realizar una funcion que deberia funcionar pero... no funciona ahi les va:
esta funcion es llamada desde otra funcion

private sub otra_funcion()
on error goto error
if t=0 then
shell"c:windowsdx.exe",vbnormalfocus

else
end if
exit sub
ERror:
call checarerror ''''aqui hablo a mi otra funcion
end sub

private sub checarerror()
on error goto error
dim conta as string
conta="1"
DEnuevo:
select case conta


case 1: ''''aqui ya esta ecte cte ctc funcion y se va a
            conta=conta+1
            goto DEnuevo
case 2: hace lo mismo en
case 3:todos
case 4:los casos
case 5:lo mismo manda a goto de nuevo
case 6:salvo el ultimo caso que termina la funcion exit sub

end select
goto Denuevo
exit sub
error:
goto Denuevo
end sub
'''''''''''' el caso es que cuando lo hace solo hasta el caso 2 y luego regresa a la funcion que lo llamo.... y no acaba de correr todos los casos osea el 3,4,5,6 etc y pues no se por que  ayudemne si?

gracias















Título: Re: error funcion no funciona como yo espero(XD)
Publicado por: hentei en 30 Enero 2006, 17:36 pm
Mira en primer lugar lo que estas usando sos procedimientos no funciones. Las funciones se declaran Function y terminan en End Function.
El problema que tiene checarerror() es conta="1". Despues cuando haces  conta=conta+1 lo maximo que va a llegar es 2 porque cuando haga el goto denuevo, conta se va a reiniciar a 1.
No entiendo bien lo que hace tu programa asi que no te puedo ayudar mas.
Espero que te haya servido.


Título: Re: error funcion no funciona como yo espero(XD)
Publicado por: ..::[ thekingkid ]::.. en 31 Enero 2006, 01:19 am
perdon.. estaba mal echo.... ya lo edite... lo que pasa entonces quedaria la etiqueta despues de establacer a conta="1" entonces por ese lado no hay problema... la situacion es que necesito que recorra el desde el primero hasta el ultimo caso entonces en cADA caso se va a aumentando un uno si era 1a 2 y 3 etc entoces entraria al caso 1 y 2 y 3 etc pero solo hace dos casos y de ahi sale del procedimiento y se va de nuevo de donde fue llamado osea al procedimiento otra_funcion y entonces no corre todos los casos...




Pd gracias entei por tormarte la molestia de revisar el codigo y perdon pero estaba mal editado(lo mal postee no es como el que esta en mi proyecto ) ahora ya lo corregi pero es de agradecerce que te tomes la molestia de revisar el codigo grax.. y espero me puedan ayudar con el codigo...  gracias


Título: Re: error funcion no funciona como yo espero(XD)
Publicado por: scod en 2 Febrero 2006, 06:27 am
no llama a la funcion porque nunca encuentra la llamada,...

Código:
private sub otra_funcion()
on error goto error
if t=0 then
shell"c:windowsdx.exe",vbnormalfocus

else
end if
exit sub
ERror:
call checarerror ''''''''aqui hablo a mi otra funcion
end sub

el problema es que pones el exit sub antes de llamar a la otra funcion, lo que hace entons es salirse de la funcion y nunca llega a la linea de call,...

no deberira estar el call en el else? no entiendo porque pones el goto :s

saludos


Título: Re: error funcion no funciona como yo espero(XD)
Publicado por: NYlOn en 2 Febrero 2006, 18:26 pm
Mi pregunta es: ¿Como te das cuenta cuando pasa a la otra funcion?


Título: Re: error funcion no funciona como yo espero(XD)
Publicado por: ..::[ thekingkid ]::.. en 3 Febrero 2006, 03:19 am
solo llamaria a la funcion si fue error:
Código:
private sub otra_funcion()
on error goto error
if t=0 then
shell"c:windowsdx.exe",vbnormalfocus

else
end if
exit sub
ERror:
call checarerror ''''''''aqui hablo a mi otra funcion
end sub


entonces si hay error brinca a la etiqueta error
y de ahi llama checarerror entonces ahi entra error
pero no ahi el problema.... cuando quiero que recorra los casos del 1 al ultimo caso entonces solo corre dos casos y ya regresa a  otra funcion de nuevo despues de la  linea que lo llamo osea  seria end sub de ahi sale.... y no funca,.... XD