Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: xadap en 2 Septiembre 2005, 20:01 pm



Título: -
Publicado por: xadap en 2 Septiembre 2005, 20:01 pm
-


Título: Re: secuencia de instrucciones en VB6
Publicado por: yeikos en 2 Septiembre 2005, 21:49 pm
Expón algo del código para poder situarnos algo mejor...


Título: Re: secuencia de instrucciones en VB6
Publicado por: Slasher-K en 3 Septiembre 2005, 04:22 am
Deberías saber que el impulso viene de esos sensores, no entiendo cuál es el problema y para qué usas timers. Explicate un poco mejor.

Saludos.


Título: -
Publicado por: xadap en 3 Septiembre 2005, 23:04 pm
-


Título: Re: secuencia de instrucciones en VB6
Publicado por: Slasher-K en 4 Septiembre 2005, 00:08 am
Antes que todo, excelente proyecto :), mis felicitaciones.

Ahora con el código, podrías usar un timer y una variable estática. El siguiente ejemplo muestra como hacerlo:

Código:
Private Sub Timer1_Timer()
        Static iState%

  Select Case iState
    Case 0:
      'Haces que el robot realice una acción, en este caso sería que vaya hacia atrás.

    Case 1:
      'El Robot gira.

    Case Else
      iState = 0
       Timer1.Enabled = False 'Deshabilita el Timer para que sólo haga la secuencia una vez.
  End Select

  iState = iState + 1
End Sub

Saludos.


Título: -
Publicado por: xadap en 4 Septiembre 2005, 00:22 am
-


Título: Re: secuencia de instrucciones en VB6
Publicado por: Slasher-K en 4 Septiembre 2005, 00:56 am
Primero te explico lo que hace. La variable estática sirve para mantener el mismo valor en cada intervalo de tiempo. Si no fuera estática cuando termina el procedimiento (End Sub) se borraría el valor.

Ahora con la cuestión del tiempo, el problema es que el Timer tiene un valor en la propiedad Interval predeterminado. Lo que podés hacer es crear un procedimiento para que espere un determinado tiempo, luego usarlo para esperar cuando el robot tiene que girar.

Por ejemplo:

Código:
Sub WaitSyn(Milliseconds As Long)
      Dim snTimer!

  snTimer = Timer

  'Entra al bucle y lo ejecuta hasta que se cumpla el tiempo especificado.
  '
  Do While (Timer - snTime) < (Milliseconds / 1000)
    DoEvents
  Loop
End Sub

Luego llamas a este procedimiento para que espere un determinado tiempo antes de que el robot gire:

Código:
Private Sub Timer1_Timer()
        Static iState%

  Select Case iState
    Case 0:
      'Haces que el robot realice una acción, en este caso sería que vaya hacia atrás.

    Case 1:
      'El Robot gira.

      'Espera tres segundos antes de hacer que el robot gire.
      '
      Call WaintSyn(3000)
    Case Else
      iState = 0
       Timer1.Enabled = False 'Deshabilita el Timer para que sólo haga la secuencia una vez.
  End Select

  iState = iState + 1
End Sub

Saludos.


Título: Re: secuencia de instrucciones en VB6
Publicado por: Xpeed en 4 Septiembre 2005, 01:10 am
Do While (Timer - snTimer) < (Milliseconds / 1000)*

xD

un saludo.


Título: -
Publicado por: xadap en 4 Septiembre 2005, 01:27 am
-


Título: -
Publicado por: xadap en 4 Septiembre 2005, 23:50 pm
-