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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  contador en segundos? timer?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: contador en segundos? timer?  (Leído 2,380 veces)
markx

Desconectado Desconectado

Mensajes: 11


Ver Perfil
contador en segundos? timer?
« en: 2 Septiembre 2007, 22:35 pm »

 
 var tiempo
 tiempo = 0
 
   mientras  tiempo <= "10" {

        haceralgo()

     sino
 
salir
 
}


bueno algo asi seria lo que quiero programar en vb.. utilizando un timer k vaya contando en segundos hasta 10 y que haga algo mientras el tiempo en segundos sea menor a 10, alguna idea? pistas?
thanks!


En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: contador en segundos? timer?
« Respuesta #1 en: 2 Septiembre 2007, 23:19 pm »

Hay mil maneras de hacer eto, aca hay un ejemplo que creo es de lo mas facil

Option Explicit

Private lTime As Long

Private Sub Form_Load()
    lTime = Timer
    Timer1.Interval = 1000
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
    Timer1.Enabled = False
    If lTime + 10 < Timer Then
        Debug.Print "OK"
        lTime = Timer
    End If
    Timer1.Enabled = True
End Sub


En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: contador en segundos? timer?
« Respuesta #2 en: 3 Septiembre 2007, 00:12 am »

Hay mil maneras de hacer eto, aca hay un ejemplo que creo es de lo mas facil

Option Explicit

Private lTime As Long

Private Sub Form_Load()
    lTime = Timer
    Timer1.Interval = 1000
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
    Timer1.Enabled = False
    If lTime + 10 < Timer Then
        Debug.Print "OK"
        lTime = Timer
    End If
    Timer1.Enabled = True
End Sub

Lo que haces aca es ejecutar una funcion cada 1 segundo, y lo que markx pide es ejecutar una funcion mientras el tiempo sea mejor a eso:

Voy arreglar tu codigo :P
Código
  1. Dim Tiempo&
  2. Private Sub Form_Load()
  3. Timer1.Interval = 1000
  4. Timer1.Enabled = False
  5. End Sub
  6.  
  7. Private Sub Timer1_Timer()
  8. Tiempo = Tiempo + 1
  9. End Sub
  10.  
  11. PRivate Sub Command1_Click()
  12. 'Este empieza a ejecutar las acciones mientras el tiempo sea mejor a 10 segundos
  13. Timer1.Enabled = True
  14. Tiempo = 0
  15. Call Verificar("10")
  16. End Sub
  17.  
  18. Private Sub Verificar(TiempoAVerificar&)
  19. While Tiempo <= TiempoAVerificar
  20. 'Funciones
  21. DoEvents
  22. Wend
  23. End Sub
  24.  

Listo :P creo que puede funcionar asi, me dio pereza sacar el visual, asi que si hay algun error posteadlo.
Saludos :)
En línea

H4NG3R

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: contador en segundos? timer?
« Respuesta #3 en: 3 Septiembre 2007, 00:43 am »

Código:
Private Sub Wait(ByVal nSec As Integer)
    'Esperar un número de segundos
    Dim t1 As Date, t2 As Date

    t1 = Second(Now)
    t2 = t1 + nSec
    Do
        DoEvents
    Loop While t2 > Second(Now)
End Sub
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: contador en segundos? timer?
« Respuesta #4 en: 3 Septiembre 2007, 03:44 am »

HaDeS, el timer si se ejecuta cada 1 segundo pero la funcion no la funcion se ejecuta cada 10 si miras bien el codigo vas a ver que "Debug.Print "OK" se ejecuta cada 10 seg. Sino hacelo facil abri VB pega el code y probalo. Y si el lo que quiere es alreves lo unico que tiene que hacer y invertir el sigo , negar el if o usar un else, pero al final de cuentas es lo mismo.
« Última modificación: 3 Septiembre 2007, 03:47 am por cobein » En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: contador en segundos? timer?
« Respuesta #5 en: 3 Septiembre 2007, 03:49 am »

see me equivoque :P, vi tu code por encima, pero tu tambien te equivocaste :P lee:
..
utilizando un timer k vaya contando en segundos hasta 10 y que haga algo mientras el tiempo en segundos sea menor a 10
...

Jeje, saludos :)

Pdata. No modifiques los post :P
Si hace eso, entonces si se ejecuta la funcion cada segundo.
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: contador en segundos? timer?
« Respuesta #6 en: 3 Septiembre 2007, 03:59 am »

Solamente agregue mas texto no modifique nada del original
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: contador en segundos? timer?
« Respuesta #7 en: 3 Septiembre 2007, 04:33 am »

HaDeS mi intencion aca es cooperar y ayudar a los demas, si quiero competir me anoto en un concurso ok? si mi codigo esta mal o malinterprete una pregunta lo lamento soy humano.

Con respecto a las 3 soluciones que se presentaron te digo la tuya es literalmente lo que el dice, cosa que no tiene mucho sentido, para que utilizar un timer para verificar el tiempo cada 1 seg si la funcion que vas a ejecutar esta dentro de un loop? en todo caso es exactamente lo mismo que presento H4NG3R y la respuesta de el es mas simple y no depende de un timer. Con respecto a mi funcion "que si funciona" es mucho mas flexible, podes ejecutar tu codigo cana N millisecs o podes poner un intervalo de 1 millisec y vas  a tener practicamente el  el mismo efecto que en un loop y dependiendo de donde pongas tu funcion si en el if o en el else tambien podes ejecutar el codigo cada N segundos.

En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
markx

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: contador en segundos? timer?
« Respuesta #8 en: 3 Septiembre 2007, 04:56 am »

wenoo, se pelean por mi, me siento importante xDDDDDDDDDDD
nah, hablando enserio esta tdo bien, no es competencia, somos seres humanos todos y estamos para aprender y ayudarnos entre todos, no importa si cobein mal interpreto la pregunta, lo importante es la intencion, con esto no estoy criticando nada a hades tampoco.. lo k digo es no se piken!

weno con respecto al code de hades aki lo dejo arreglado funcionando:


Código:
Dim Tiempo As Integer
Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = False
End Sub
 
Private Sub Timer1_Timer()
Tiempo = Tiempo + 1
End Sub
 
Private Sub Command1_Click()
'Este empieza a ejecutar las acciones mientras el tiempo sea mejor a 10 segundos
Timer1.Enabled = True
Tiempo = 0
Call Verificar("10")
End Sub
 
Private Sub Verificar(TiempoAVerificar&)
While Tiempo <= TiempoAVerificar
 'Funciones
 Label1.Caption = Tiempo
 DoEvents
Wend
End Sub

solo cambie lo de "Dim tiempo&" por "Dim tiempo as Integer", podria haber puesto as long la variable pero no trabajare con numeros muy grandes asi k seria solo para desperdiciar memoria, ah y tambien agregue un label para depurar :)

ahora lo k no entiendo es para k es el "&", dim tiempo& ?
otra kosa, el "Call" para k lo pusiste? y para k se utiliza ?
« Última modificación: 3 Septiembre 2007, 04:58 am por markx » En línea

HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: contador en segundos? timer?
« Respuesta #9 en: 3 Septiembre 2007, 05:07 am »

Okas, mira podes declarar de varias formas las variables, ya te explico, mejor dicho te hago una tablita:
Tipo      Equivalencia
Integer      %
Long      &
Single      !
Double      #
Currency   @
String      $

Asi que:
Dim Tiempo&
equivale a decir
Dim Tiempo As Long

Solo los que he mencionado tienen esa equivalencia, los otros tipos de datos no la tiene...

Lo hago para ahorrarme el tener que copiar tanto.

Por otro lado la instruccion call solo se usa para llamar una funcion.
Es equivalente a decir
Verificar "10"

Es todo :P

Saludos ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema con contador que toma segundos del sistema
ASM
FERNIIIIN 3 2,057 Último mensaje 28 Mayo 2019, 23:39 pm
por xv0
15 segundos
Multimedia
Zorronde 5 28,473 Último mensaje 14 Octubre 2021, 05:36 am
por Danielㅤ
Contador 59 segundos en VHDL
Electrónica
Nicolau 1 8,021 Último mensaje 21 Enero 2023, 19:58 pm
por Meta
Poner un timer de 10 segundos
.NET (C#, VB.NET, ASP)
Meta 1 1,764 Último mensaje 21 Febrero 2024, 10:07 am
por elektrostudios2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines