• Viernes 8 de Noviembre de 2024, 20:04

Autor Tema:  Retraso!!!!  (Leído 1858 veces)

fORU-

  • Miembro MUY activo
  • ***
  • Mensajes: 225
  • Nacionalidad: mo
    • Ver Perfil
Retraso!!!!
« en: Jueves 13 de Septiembre de 2007, 07:23 »
0
hola, ando experimentando vb.net y me surguio una duda y a la vez un problema ya que mi programa no hace lo que quiero por no saber manejar los retrasos en vb.net. mi problemas es el siguien:

Do While (quinientos > 0)

                    PictureBox4.Visible = True
                    'aqui ocupo un retraso'
                    PictureBox4.Visible = False
                    quinientos = quinientos - 1
Loop

un compa;ero me dijo que usara                          System.Threading.Thread.CurrentThread.Sleep(1000)

pero no me funciona me marca esa linea de comando subrayada en verde.
agradeceria si alquien tiene la forma correcta de usar ese thread o de otra forma para poder implementra un retraso en el codigo que les presente.
gracias!!!
atte:fORU-

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Retraso!!!!
« Respuesta #1 en: Jueves 13 de Septiembre de 2007, 16:05 »
0
no te serviria usar timer para efectuar eso ?.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

sergios_

  • Nuevo Miembro
  • *
  • Mensajes: 20
  • Nacionalidad: es
    • Ver Perfil
    • http://masprogramacionymenosprozac.blogspot.com
Re: Retraso!!!!
« Respuesta #2 en: Jueves 13 de Septiembre de 2007, 21:14 »
0
Hola foru-,

Entiendo que lo que quieres hacer es que un dibujo parpadee (aparezca y desaparezca). A mí me parece que el ejemplo que has puesto no funciona porque si te fijas entras en el bucle, visualizas la imagen, y te quedas esperando un tiempo. Luego quitas la imagen, decrementas el contador y al volver al comienzo del bucle muestras la imagen de nuevo. Osea, que en realidad quitas la imagen e inmediatamente después la vuelves a visualizar así que no vas a llegar a ver nada. El bucle tendría que ser algo así.

do while (quinientos > 0)
picturebox.visible = true
'Metes la espera
picturebox.visible = false
'Metes otra espera
quinientos = quinientos - 1
loop

¿Podrías poner el mensaje que te saca cuando te subraya en verde el System.Threading.Thread.CurrentThread.Sleep(1000)? Así vemos porque se está quejando el Visual Studio.

Como dice lencho también puedes hacerlo usando un timer. Por ejemplo, declaras un contador dentro del formulario (dim contador as integer) y cuando quieras que el dibujo parpadee arrancas el timer. Dentro de la rutina que se ejecuta cuando salta el timer simplemente cambias el estado de la propiedad visible del picturebox e incrementas el contador. Cuando el contador llegue a un determinado número paras el contador y ya está.

Espero que te sirva de algo. Un saludo
============================
"Si sale, sale. Si no sale, hay que volver a empezar.
Todo lo demás son fantasías." - Edouard Manet

http]

fORU-

  • Miembro MUY activo
  • ***
  • Mensajes: 225
  • Nacionalidad: mo
    • Ver Perfil
Re: Retraso!!!!
« Respuesta #3 en: Sábado 15 de Septiembre de 2007, 07:33 »
0
Sale gracias a todos, utilize timers, pero batalle poco ,lo bueno es que al final lo logre!!
XD
atte:fORU-