elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  DoEvents se cuelga!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: DoEvents se cuelga!  (Leído 1,944 veces)
pandoro

Desconectado Desconectado

Mensajes: 15


Ver Perfil
DoEvents se cuelga!
« en: 4 Junio 2008, 19:35 pm »

Hola tengo una pregunta sobre una aplicacion que tengo hecha en Visual Basic 6, hace unos cuantos bucles, y dentro de uno tengo un DoEvents y cuando da un par de vueltas se cuelga en el DoEvents y no hace nada mas, se queda en esa linea. No se como solucionarlo.

Alguien me podria ayudar?

Gracias.

Un saludo.


En línea

Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.164


Cheats y Trainers para todos!


Ver Perfil WWW
Re: DoEvents se cuelga!
« Respuesta #1 en: 4 Junio 2008, 19:45 pm »

copy/paste todo el trozo de código donde aparecen los bucles... asi por telépatia es algo difícil.


En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
Kizar


Desconectado Desconectado

Mensajes: 1.325


kizar_net


Ver Perfil
Re: DoEvents se cuelga!
« Respuesta #2 en: 4 Junio 2008, 20:44 pm »

El DoEvents no es el problema, le problema esta en que no se cumplen las condiciones para salir de el bucle y se convierte en un proceso infinito.
El DoEvents solo se utiliza dentro de los bucles para consumir menos cantidad de recursos del sistema, es como una pausa muy pequeña.
En línea

Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.164


Cheats y Trainers para todos!


Ver Perfil WWW
Re: DoEvents se cuelga!
« Respuesta #3 en: 4 Junio 2008, 21:22 pm »

Un ejemplo claro para usar DoEvents:

Código
  1. For i = 1 to 1000
  2.   Label1.Caption = i
  3. Next i

Al ejecutar esto, el usuario sólo alcanzará ver el número 1000 de forma instantánea. Si queremos mostrar el progreso del bucle podemos usar lo siguiente:

Código
  1. For i = 1 to 1000
  2.   Label1.Caption = i
  3.   If i Mod 10 = 0 Then
  4.      DoEvents
  5.      Sleep 250
  6.   End If
  7. Next i

Esta nueva condición que hay dentro del bucle hace que el código entre en modo Sleep cada 10 iteraciones. Es facil... Dividimos la variable i entre 10, si el resto de la división es 0 entonces la condición se cumple. En este ejemplo el usuario verá:

1,10,20,30,40, ..., 980, 990, 1000

Si cambiamos la condición:

Código
  1. If i Mod 50 Then

El usuario obtendrá:

1,50,100,150, ..., 950, 1000

(Ojo, Sleep es una API que no he declarado en este ejemplo, para usarla primero hay que declarar dicha API)

Saludos!!
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO] Problema con Application.DoEvents() « 1 2 »
.NET (C#, VB.NET, ASP)
Eleкtro 12 10,180 Último mensaje 17 Enero 2013, 00:05 am
por $Edu$
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines