Differenze tra le versioni di "Creare un Cronometro"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
==Cronometro usando la Classe ''Timer''==
+
==Cronometro usando la funzione "Time"==
Per realizzare un semplice Cronometro porremo sul form un ''Timer'' con ritardo posto ad "1", un ''Button'' ed un oggetto di testo nel quale visualizzare il tempo trasorso:
+
Per realizzare un semplice cronometro che mostri l'ora, i minuti, i secondi, nonché i decimi, i centesimi e i millesimi di secondo, si può usare la funzione "Time".
 +
<BR>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")
 +
    Wait 0.01
 +
  Loop
 +
 
 +
'''End'''
  
'''Private''' tempo As Date
+
==Cronometro che calcola il tempo trascorso, usando la Classe ''Timer''==
 +
Per realizzare un semplice Cronometro porremo sul form un ''Timer'' con ritardo posto ad "1", un ''Button'' ed un oggetto di testo nel quale visualizzare il tempo trascorso:
 +
Private tempo As Date
 
   
 
   
 
   
 
   
Riga 20: Riga 31:
 
  '''Public''' Sub Timer1_Timer()
 
  '''Public''' Sub Timer1_Timer()
 
   
 
   
     TextBox1.Text = Format(CDate(Time - tempo), "hh:nn:ss.uu")  <SUP>&#091;[[#Note|1]]&#093;</sup>
+
     TextBox1.Text = Format(CDate(Time - tempo), "hh:nn:ss.uuu")  <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
 
   
 
   
 
  '''End'''
 
  '''End'''
  
 
+
====Medesimo esempio, ma in un'applicazione a ''riga di comando'' ed usando un ciclo anziché un ''Timer''====
==Cronometro in un'applicazione a ''riga di comando''==
 
 
Per realizzare un cronometro in un'applicazione a ''riga di comando'' senza l'uso della Classe ''Timer'', si prenderà l'orario all'avvio dell'applicazione medesima, e in un apposito ciclo si passerà alla funzione ''Date( )'' la differenza fra l'orario corrente e quello iniziale.
 
Per realizzare un cronometro in un'applicazione a ''riga di comando'' senza l'uso della Classe ''Timer'', si prenderà l'orario all'avvio dell'applicazione medesima, e in un apposito ciclo si passerà alla funzione ''Date( )'' la differenza fra l'orario corrente e quello iniziale.
 
  ''' Public''' Sub Main()
 
  ''' Public''' Sub Main()
 
    
 
    
  Dim i As Integer
 
 
   Dim tm As Date
 
   Dim tm As Date
 
    
 
    
Riga 36: Riga 45:
 
    
 
    
 
   Do
 
   Do
    i = DateDiff(tm, Now, gb.Millisecond)
+
     Write "\rTempo: " & Date(0, 0, 0, 0, 0, 0, DateDiff(tm, Now, gb.Millisecond))
     Write "\rTempo: " & Date(0, 0, 0, 0, 0, 0, i)
 
 
     Wait 0.001
 
     Wait 0.001
 
   Loop
 
   Loop
 
    
 
    
 
  '''End'''
 
  '''End'''
 
  
  
Riga 51: Riga 58:
 
* <FONT color=#B22222>nn</font> = minuti;
 
* <FONT color=#B22222>nn</font> = minuti;
 
* <FONT color=#B22222>ss</font> = secondi;
 
* <FONT color=#B22222>ss</font> = secondi;
* <FONT color=#B22222>uu</font> = decimi, centesimi e millesimi di secondo.
+
* <FONT color=#B22222>uuu</font> = decimi, centesimi e millesimi di secondo.

Versione delle 00:47, 3 nov 2020

Cronometro usando la funzione "Time"

Per realizzare un semplice cronometro che mostri l'ora, i minuti, i secondi, nonché i decimi, i centesimi e i 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")
   Wait 0.01
 Loop
 
End

Cronometro che calcola il tempo trascorso, usando la Classe Timer

Per realizzare un semplice Cronometro porremo sul form un Timer con ritardo posto ad "1", un Button ed un oggetto di testo nel quale visualizzare il tempo trascorso:

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()

   TextBox1.Text = Format(CDate(Time - tempo), "hh:nn:ss.uuu")   [Nota 1]

End

Medesimo esempio, ma in un'applicazione a riga di comando ed usando un ciclo anziché un Timer

Per realizzare un cronometro in un'applicazione a riga di comando senza l'uso della Classe Timer, si prenderà l'orario all'avvio dell'applicazione medesima, e in un apposito ciclo si passerà alla funzione Date( ) la differenza fra l'orario corrente e quello iniziale.

 Public Sub Main()
 
 Dim tm As Date
 
' Prende l'orario iniziale:
 tm = Now
 
 Do
   Write "\rTempo: " & Date(0, 0, 0, 0, 0, 0, DateDiff(tm, Now, gb.Millisecond))
   Wait 0.001
 Loop
 
End


Note

[1] Questo tipo di formattazione del tempo restituisce:

  • hh = ora;
  • nn = minuti;
  • ss = secondi;
  • uuu = decimi, centesimi e millesimi di secondo.