Creare un Cronometro

Da Gambas-it.org - Wikipedia.

Creare un cronometro all'interno di un ciclo che mostri il tempo trascorso dall'avvio del ciclo

Usando la Classe Timer

In questo esempio si ha un Cronometro adatto a visualizzare il tempo trascorso dall'avvio del programma.
Si farà uso della Classe "Timer".

Private Timer1 As Timer
Private tempo As Date


Public Sub Button1_Click()

 With Timer1
   .Delay = 1
   .Start
 End With

' Assegna l'orario di questo istante:
 tempo = Time

End


Public Sub Timer1_Timer()

 Write "\r" & Format(CDate(Time - tempo), "hh:nn:ss.uuu")

End


Public Sub Application_Read()  ' Cliccando sul tasto "Invio" della tastiera, si solleva questo Evento
 
 Timer1.Stop

' Consente di terminare il programma nel caso vi sia la subroutine "Application_Read()":
 Quit

End

Usando un ciclo

In quest'altro esempio si farà uso del ciclo "While...Wend".

Mostriamo un esempio a riga di comando, nel quale, premendo il tasto "Invio" sulla tastiera, si determinerà l'uscita dal ciclo:

Private bo As Boolean


Public Sub Main()
 
 Dim tm As Date
 
' Prende l'orario nel momento dell'avvio del programma:
 tm = Now
 
 While Not bo
' La funzione "DateDiff()" passa alla funzione "Time()" la differenza, espressa in millisecondi, tra il corrente orario e quello memorizzato all'avvio del programma.
' La funzione "Time()" passa alla funzione "Write" un valore temporale, consentendo anche di mostrare i millisecondi.
   Write "\r" & Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond))
   Flush
   Wait 0.01
 Wend

' Consente di terminare il programma nel caso vi sia la subroutine "Application_Read()":
 Quit
 
End


Public Sub Application_Read()  ' Cliccando sul tasto "Invio" della tastiera, si solleva questo Evento
 
 bo = True
 
End

Cronometro che mostra l'orario corrente, usando la funzione "Time"

Per realizzare un semplice cronometro che mostri l'orario attuale, comprensivo di ora, minuti, secondi, nonché di decimi, centesimi e millesimi di secondo, si può usare la funzione "Time".
Mostriamo un esempio in ambiente grafico, nel quale l'orario corrente sarà mostrato nell'intestazione di una finestra:

Public Sub Button1_Click()
 
 Do
   Me.Caption = Format(Time, "hh:nn:ss.uuu")   '[Nota 1]
   Wait 0.001
 Loop
 
End

Volendo, anziché usare un ciclo, sarà possibile usare anche la Classe "Timer".


Note

[1] Questo tipo di formattazione del tempo restituisce:

  • hh = ora;
  • nn = minuti;
  • ss = secondi;
  • uuu = millesimi di secondo.