Differenze tra le versioni di "Creare un Cronometro"
Riga 1: | Riga 1: | ||
==Creare un cronometro all'interno di un ciclo che mostri il tempo trascorso dall'avvio del ciclo== | ==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 | ||
− | Mostriamo un esempio a riga di comando, nel quale premendo il tasto "Invio" sulla tastiera si determinerà l'uscita dal ciclo: | + | ===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 | Private bo As Boolean | ||
− | + | Public Sub Main() | |
Dim tm As Date | Dim tm As Date | ||
Riga 13: | Riga 50: | ||
tm = Now | 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.'' | <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 " | + | ' ''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)) | |
− | Write "\r" & | + | Flush |
− | Wait 0. | + | Wait 0.01 |
− | + | Wend | |
− | + | ||
<FONT Color=gray>' ''Consente di terminare il programma nel caso vi sia la subroutine "Application_Read()":''</font> | <FONT Color=gray>' ''Consente di terminare il programma nel caso vi sia la subroutine "Application_Read()":''</font> | ||
Quit | Quit | ||
− | + | End | |
− | ''' | + | Public Sub Application_Read() <FONT Color=gray>' ''Cliccando sul tasto "Invio" della tastiera, si solleva questo Evento''</font> |
bo = True | bo = True | ||
− | + | End | |
− | |||
==Cronometro che mostra l'orario corrente, usando la funzione "Time"== | ==Cronometro che mostra l'orario corrente, usando la funzione "Time"== | ||
Riga 46: | Riga 82: | ||
'''End''' | '''End''' | ||
Volendo, anziché usare un ciclo, sarà possibile usare anche la Classe "Timer". | Volendo, anziché usare un ciclo, sarà possibile usare anche la Classe "Timer". | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Riga 96: | 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>uuu</font> = | + | * <FONT color=#B22222>uuu</font> = millesimi di secondo. |
Versione delle 17:58, 23 giu 2023
Indice
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.