Visual Basic - llamar a funcion

Life is soft - evento anual de software empresarial
 
Vista:

llamar a funcion

Publicado por MATIAS (103 intervenciones) el 27/03/2005 18:49:39
Tengo un ciclo FOR...supongamos que itera 3 o 4 veces. En cada iteración obtengo un resultado (variable = algo)
Lo que yo quiero hacer es que despues de cada resultado me llame a una funcion, la cual como parametros recibe ese resultado....
Segun mis pruebas....el problema es que el ciclo lo hace tan rapido que solo llama a la funcion una sola vez. Como solucion, a cada resultado lo almaceno en un listbox....y luego del ciclo FOR llamo a un timer, el cual llama X veces a la funcion como items tenga en el listbox

Si bien anda de maravillas, me gustaria usar menos codigo y menos controles....por eso: como puedo llamar a la funcion X veces dentro del FOR?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:llamar a funcion

Publicado por Ayudante (349 intervenciones) el 27/03/2005 23:13:55
Mientras ejecutas el for, podrías agregar una línea que no haga nada, solo que dé tiempo a tu proceso, la instrucción es "doevents".

También debes depurar esa ejecución, pues resulta extraño que solo se ejecute 1 vez en vez de 3 o 4 según tu propuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:llamar a funcion

Publicado por MATIAS (103 intervenciones) el 28/03/2005 02:18:31
probe poner "doevents" antes, despues y durante el ciclo FOR pero siempre lo mismo
que raro no?....a la funcion se que la llama porque se ejecuta pero como que el ciclo se interrumpe....se corta a la primera.......
esta mal vista mi solucion? digo, como programador........eso de que guardo los resultados en un listbox y con un timer ejecuto cada item
o deberia buscar la forma de llamar a la funcion dentro del FOR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:llamar a funcion

Publicado por Benjo (679 intervenciones) el 28/03/2005 03:06:10
Matias
Las llamdas a las funciones no son asincrónicas , por lo que al pasar la ejecución a una función, esta no vuelve hasta que se haya concluido.
Quizás si estos problemas se te planteen con la instalación de Hook de sistema, pero con funciones o rutinas de tu propia aplicación no es posible.
Debés tener otro problema en la ejecución del código.
Por ejemplo te envio adjunto una pequeña rutina en donde te darás cuenta que tras una iteración de cien millones de ciclos uno a uno se ejecuta el bucle de diez que lo desencadena.
Si querés colocá el código que estas utilizando dado que puede haber algún problema en la sintaxis que mno permite la ejecución de tu función.
Private Sub Command1_Click()
For i = 1 To 10
Call doloop(i)
Next
End Sub

Private Sub doloop(ByVal inter As Integer)

For u = 1 To 100000000
Next


Debug.Print "Función DoLoop ", inter

End Sub

Muchas suerte

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:llamar a funcion

Publicado por Ayudante (349 intervenciones) el 28/03/2005 03:10:39
No será que tocas la variable de incremento/decremento del for, en algún punto que no te acuerdes o algo?

Sería bueno que ejecutes en modo de "debug" el ciclo. Ponte un "breakpoint" con F9 en el inicio del for, luego ver paso a paso con F8 para ver qué ocurre.

También ten cuidado de no poner un "Exit For"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar