Differenze tra le versioni di "Creare un Cronometro"
(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 07:55, 1 lug 2024
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.