Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Duda: Parar un segundo en tiempo de ejecución

Estas en el tema de Duda: Parar un segundo en tiempo de ejecución en el foro de Visual Basic clásico en Foros del Web. Buenas! Soy nueva por el Foro, pero reconozco que me ha sido de mucha ayuda otras veces, para varias dudas que me han ido surgiendo. ...
  #1 (permalink)  
Antiguo 03/06/2013, 05:27
Avatar de Idrialen  
Fecha de Ingreso: junio-2013
Mensajes: 1
Antigüedad: 10 años, 10 meses
Puntos: 0
Duda: Parar un segundo en tiempo de ejecución

Buenas!

Soy nueva por el Foro, pero reconozco que me ha sido de mucha ayuda otras veces, para varias dudas que me han ido surgiendo.

Ahora me toca escribir, porque para esta no he encontrado ningún "problema real" pero no consigo hacer lo que realmente quiero.
Me gustaría comentaros el tema, y que me digais qué ideas se os ocurren para poder solventarlo.

La idea es el juego de hacer parejas. Una persona hace clic en una carta, se guarda su información en una variable y después hace clic en otra y se hace lo mismo. Si sus valores coinciden bien, sino mal.

Para ello tengo dos arrays de imagenes, uno que se llama cartas y tiene los valores de esas cartas y otro array de fondos para que la carta de abajo no se vea hasta que se haga clic.

Código:
If carta1Tag = "" Then      ' Cojo la primera carta
        carta1Tag = cartas(Index).Tag   ' Guardo el Tag
        carta1Index = Index             ' Guardo su Index
        picFondo(carta1Index).Visible = False   ' Le digo que la imagen que tiene por encima no se vea.
        
    Else ' ya hay una carta cogida anteriormente, repito como en la carta 1

        carta2Tag = cartas(Index).Tag   ' Cojo la segunda carta
        carta2Index = Index
        picFondo(carta2Index).Visible = False
       
       
        If carta1Tag <> carta2Tag Then
            
            ' Aqui no puedo meter un Sleep
            ' Pero quiero quitar el msgbox de Incorrecto y que pase un segundo antes
            ' de que pase a la siguiente instruccion
            
            'MsgBox ("Incorrecto")
            
            picFondo(carta1Index).Visible = True
            picFondo(carta2Index).Visible = True
            
            
            'Vacio los valores del tag y del Index
            
            
        Else
            
            MsgBox ("Correcto")
            ' Vacio los valores del tag y el index
         
            
            
        End If
    End If
El problema que tengo es que al hacer clic en la segunda carta, y en caso de que no sean pareja sale directamente INCORRECTO en el msgbox pero no se llega a ver el dibujo en sí de la carta.

He probado con un Sleep y la imágen no desaparecia.
He probado con Timers pero me repetian algo cada X veces.

Lo único que necesito es que después de pinchar la segunda carta y que se vea la figura pase un segundo hasta que se verifica si son iguales o no.

Espero haberme explicado y que me podais echar un cable con alguna idea. Porque yo ya no sé qué mas probar. A lo mejor es por alguna tontería en la que no me estoy fijando , asi que una ayudita me vendría muy bien xD

Gracias por adelantado!
  #2 (permalink)  
Antiguo 04/06/2013, 13:20
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Duda: Parar un segundo en tiempo de ejecución

Yo probaria un timer y algo asi:

Código vb:
Ver original
  1. Private sub Pausa(byval Tiempo as integer)
  2.   Timer1.Interval=Tiempo
  3.   Timer1.Enabled=true
  4.   Do While Timer1.Enabled=True
  5.     doevents
  6.   loop
  7. End sub
  8.  
  9. Private sub Timer1_Timer()
  10.   Timer1.Enabled=False
  11. End Sub
Y antes de mostrar el error pones la pausa

Pausa 1000 ' en milisegundos
MsgBox "...."

No se si lo he probado alguna vez pero es una de las opciones.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #3 (permalink)  
Antiguo 04/06/2013, 13:56
 
Fecha de Ingreso: enero-2008
Ubicación: Lima - Perú
Mensajes: 1.127
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Duda: Parar un segundo en tiempo de ejecución

Otra opcion al timer seria que utilizes un bucle FOR de 1 a 1000 ó 10000 para que te de unos segundos antes de que vacies tus variables

Por otro lado tambien podrias utilizar un progressbar que seria lo mismo que el FOR
http://www.recursosvisualbasic.com.a...rogressbar.htm
__________________
123.http://bunker.host22.com
  #4 (permalink)  
Antiguo 02/07/2013, 16:31
 
Fecha de Ingreso: mayo-2012
Ubicación: un departamento
Mensajes: 15
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Duda: Parar un segundo en tiempo de ejecución

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'usar_____________________________________________ _______
Call Sleep(1000) '1 segundo

Etiquetas: form, parar, segundo, tiempo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:31.