Com Crear un Cronòmetre

En aquesta oportunitat voldria mostrar com crear un cronòmetre en visual basic. Net utilitzant el component timer.

Bé, no pretenc que aquest sigui un exemple pas a pas mostrant cadascuna de les propietats modificades de cada control, molt al contrari, em vull concentrar en la funcionalitat del cronòmetre i els deixaré el disseny a vostès. Simplement els mostraré el que vaig fer jo.

Els controls a utilitzar són: un formulari, tres botons i dues etiquetes. També necessitarem afegir al formulari un component Timer. Es veuria mes o mes així:

bé, el primer que farem serà definir quatre variables privades a nivell del formulari.

 Private hora As Integer = 0
 Private minut As Integer = 0
 Private 2 As Integer = 0
 Private milisegon As Integer = 0

El component Timer ha de tenir la seva propietat interval en 100.

Crearem una funció per mostrar al Label1 el pas del temps:

     Sub mostrarTiempo ()
         Label1.Text = hora.ToString.PadLeft (2, "0") & ":"
         Label1.Text & = minuto.ToString.PadLeft (2, "0") & ":"
         Label1.Text & = segundo.ToString.PadLeft (2, "0") & ":"
         Label1.Text & = milisegundo.ToString.PadLeft (1, "0")

         Label1.Refresh ()
     End Sub

En l'esdeveniment tick del component Timer és on es desenvolupa tota la lògica del cronòmetre. Copia el següent codi allà:

 mil · lisegon + = 1
 If mil · lisegon = 9 Then
     mil · lisegon = 0
     2 + = 1
     If 2 = 59 Then
         2 = 0
         minut + = 1
         If minut = 59 Then
             minut = 0
             hora + = 1
         End If
     End If
 End If
 mostrarTiempo ()

Bé, només resta el codi dels tres botons. El botó iniciar activa el timer:

 Timer1.Enabled = True

El botó Pausa atura el timer:

 Timer1.Enabled = False

I el botó tornar a zero restableix els valors de les variables:

 hora = 0
 minut = 0
 2 = 0
 mil · lisegon = 0

 mostrarTiempo ()

Espero que aquest exemple no els resulti complicat i per sobretot que els sigui útil. Finalment els deixo una captura del cronòmetre en funcionament:

31 Responses to "Com Crear un Cronòmetre"

  1. Informació Bitacoras.com ...

    Valora en Bitacoras.com: En aquesta oportunitat voldria mostrar com crear un cronòmetre en visual basic. Net utilitzant el component timer. Bé, no pretenc que aquest sigui un exemple pas a pas mostrant cadascuna de les propietats modificades de ...

  2. Edith Bautista diu:

    Moltes gràcies em va ser molt útil tot just començar amb. Net i molt ben descrit.

    Adéu.

  3. júnior mezaq diu:

    estan molt bons els exemples ... i gràcies per aportar els coneixements qya Tiens per als q recien comencem ...

  4. Gen diu:

    Hola!
    px moltes gràcies va ser de moltíssima ajuda teu codi em va servir és mes em llevat la vida jajaja ...
    no gaire treball gràcies ...
    chao bye kuidate ...

  5. Adyir diu:

    Moltes gràcies man ... sense complicacions aquest exemples, molt molt bo, que déu t'ajudi a tu igual ...

  6. bacotich diu:

    Molt bon Aportació et felicito segueix aixi!

  7. Galvis diu:

    moltes gràcies m'ha servit molt

  8. Fernando diu:

    El cronòmetre aquesta bé sol que no compta el temps 00:01:59:0 el segon 59 no ho explica del 58 salta a 00 i el 59 que no existeix, txeca teu codi si us plau

  9. Fernando diu:

    La solució seria així
    Mil · lisegon + = 1
    If mil · lisegon = 10 Then
    Mil · lisegon = 0
    Segon + = 1
    If Segon = 60 Then
    Segon = 0
    Minut + = 1
    If Minut = 60 Then
    Minut = 0
    Hora + = 1
    End If
    End If
    End If
    MostrarTiempo ()
    D'aquesta manera el segon o minut 59 existiria però s'agraeix l'aportació.

  10. elflaco diu:

    Molt bo, moltes gràcies! em va sortir a mi que sóc duranga

  11. Darwin diu:

    GRÀCIES! per l'exemple em desperto la lògica xq realitzi un mega projecte avaluant aquest exemple espere segueixin suviendo exemple d'aquesta magnitud Déu els beneeixi

  12. Darwin diu:

    Sóc nou programant haci realitzi el meu projecte.

    Public Class Form1
    Private hora As Integer = 0
    Private minut As Integer = 0
    Private 2 As Integer = 0
    Private milisegon As Integer = 0
    Sub mostrarTiempo ()

    Label1.Text = hora.ToString.PadLeft (2, "0") & ":"

    Label1.Text & = minuto.ToString.PadLeft (2, "0") & ":"

    Label1.Text & = segundo.ToString.PadLeft (2, "0") & ":"

    Label1.Text & = milisegundo.ToString.PadLeft (1, "0")

    Label1.Refresh ()
    End Sub
    Private Sub Timer1_Tick (ByVal sender As System.Object, ByVal i As System.EventArgs) Handles Timer1.Tick
    mil · lisegon + = 1
    If mil · lisegon = 9 Then

    mil · lisegon = 0
    2 + = 1

    If 2 = 59 Then

    2 = 0

    minut + = 1

    If minut = 59 Then

    minut = 0

    hora + = 1

    End If

    End If
    End If
    mostrarTiempo ()
    End Sub

    Private Sub Button1_Click (ByVal sender As System.Object, ByVal i As System.EventArgs) Handles Button1.Click
    Timer1.Enabled = True
    End Sub

    Private Sub Button2_Click (ByVal sender As System.Object, ByVal i As System.EventArgs) Handles Button2.Click
    Timer1.Enabled = False
    End Sub

    Private Sub Button4_Click (ByVal sender As System.Object, ByVal i As System.EventArgs) Handles Button4.Click
    End
    End Sub

  13. Jaime diu:

    Moltes Gràcies per l'aportació

  14. CARRARO diu:

    Bon codi!!

  15. JonPrince diu:

    Bon codi .... em va servir a la perfecció corregit l'error ja esmentat .... gràcies

  16. CRIS diu:

    gràcies per la teva aportació em va servir de molta ajuda

  17. Riper diu:

    Hola amic quisioera saber on fas un blog??? És a dir aquesta pàgina ¡?
    em podries ajudar : D

  18. Romina diu:

    aquesta genial em quedo magnífic gràcies al teu tutorial aora ja tinc una idea de com utilitzar el timer.

  19. M1m! Diu:

    grax x el codi
    zi em zirvio!!
    ^ ○ ^

  20. david diu:

    gràcies amb aquest codi estic programant una mica mes gran jejej
    gràcies ...

  21. Wolverine diu:

    excel · lent Codi molt Útil sobretot per desenvolupar alguna aplicació que controli temps d'espera d'un procés

    Gràcies mil

  22. boget diu:

    i si volgués en compte enrere com seria?

  23. aldrin diu:

    Un exemple molt bo ho havia fet en c + + amb la meva profresor de programació però no tenia idea com era en visual basic.net gràcies per l'aportació un exemple molt senzill i alhora molt atractivo.Gracias

  24. juan diu:

    molt bo només una cosa, en el botó de reset si ho pressiones es posa a 0 però segueix corrent el temps per això només hauries de posar

    Private Sub btn_reset_Click (ByVal sender As System.Object, ByVal i As System.EventArgs) Handles btn_reset.Click
    Timer1.Enabled = False
    hora = 0
    minut = 0
    2 = 0
    mil · lisegon = 0
    mostrarTiempo ()
    End Sub

  25. andres diu:

    Hola gràcia per l'aportació

    Voldria saber com adaptar-lo a ASP amb VB ja que en utilitzar el codi la pàgina queda realitzant postback

    Gràcies

  26. alfras diu:

    moltíssimes gràcies, el buscava

  27. MHESSHY diu:

    MOLT BONA INFORMACIÓ em vas salvar d'una dificultat
    ..
    ..
    GRÀCIES

  28. gatiaz diu:

    Moltes gràcies per les aportacions. Són molt clars i molt bons.

  29. Elio Amhad diu:

    Molt bona aportació, és el que estava buscant!!
    gràcies

Comentar