Creare un Cronometro: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (10 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 1: | Riga 1: | ||
==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. | ||
<BR>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 | |||
<FONT color=gray>' ''Assegna l'orario di questo istante:''</font> | |||
tempo = Time | |||
End | |||
Public Sub Timer1_Timer() | |||
Write "\r" & Format(CDate(Time - tempo), "hh:nn:ss.uuu") | |||
End | |||
''' | Public Sub Application_Read() <FONT Color=gray>' ''Cliccando sul tasto "Invio" della tastiera, si solleva questo Evento''</font> | ||
Timer1.Stop | |||
<FONT Color=gray>' ''Consente di terminare il programma nel caso vi sia la subroutine "Application_Read()":''</font> | |||
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 | |||
<FONT Color=gray>' ''Prende l'orario nel momento dell'avvio del programma:''</font> | |||
tm = Now | |||
While Not bo | |||
<FONT Color=gray>' ''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.''</font> | |||
Write "\r" & Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond)) | |||
Flush | |||
Wait 0.01 | |||
Wend | |||
''' | <FONT Color=gray>' ''Consente di terminare il programma nel caso vi sia la subroutine "Application_Read()":''</font> | ||
Quit | |||
End | |||
'''End''' | Public Sub Application_Read() <FONT Color=gray>' ''Cliccando sul tasto "Invio" della tastiera, si solleva questo Evento''</font> | ||
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". | |||
<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") <SUP><FONT color=gray>'</font>[[[#Note|nota 1]]]</sup> | |||
Wait 0.001 | |||
Loop | |||
End | |||
Volendo, anziché usare un ciclo, sarà possibile usare anche la Classe "Timer". | |||
| Riga 30: | Riga 90: | ||
* <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> | * <FONT color=#B22222>uuu</font> = millesimi di secondo. | ||
Versione attuale delle 08:55, 1 lug 2024
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.