Creare un Cronometro: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Nessun oggetto della modifica
 
(2 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==
==Creare un cronometro all'interno di un ciclo che mostri il tempo trascorso dall'avvio del ciclo==
Nel caso in esame, se si deve uscire dal ciclo all'accadere di una condizione, si potrà utilizzare il ciclo "Repeat...Until".
===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:
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()
  Public Sub Main()
    
    
   Dim tm As Date
   Dim tm As Date
Riga 13: Riga 50:
   tm = Now
   tm = Now
    
    
   Repeat
   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 "CStr()" un valore temporale.''
  ' ''La funzione "Time()" passa alla funzione "Write" un valore temporale, consentendo anche di mostrare i millisecondi.''</font>
' ''La funzione "CStr()" consente di mostrare con "Write" in Console anche i millisecondi.''</font>
     Write "\r" & Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond))
     Write "\r" & CStr(Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond)))
    Flush
     Wait 0.001
     Wait 0.01
   Until bo
   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'''
  End
   
   
   
   
  '''Public''' Sub Application_Read()
  Public Sub Application_Read()  <FONT Color=gray>' ''Cliccando sul tasto "Invio" della tastiera, si solleva questo Evento''</font>
    
    
   bo = True
   bo = True
    
    
  '''End'''
  End
 


==Cronometro che mostra l'orario corrente, usando la funzione "Time"==
==Cronometro che mostra l'orario corrente, 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".
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:
<BR>Mostriamo un esempio in ambiente grafico, nel quale l'orario corrente sarà mostrato nell'intestazione di una finestra:
  '''Public''' Sub Button1_Click()
  Public Sub Button1_Click()
    
    
   Do
   Do
     Me.Caption = Format(Time, "hh:nn:ss.uuu")  <SUP>&#091;[[#Note|Nota 1]]&#093;</sup>
     Me.Caption = Format(Time, "hh:nn:ss.uuu")  <SUP><FONT color=gray>'</font>&#091;[[#Note|nota 1]]&#093;</sup>
     Wait 0.01
     Wait 0.001
   Loop
   Loop
    
    
  '''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".
==Cronometro che calcola il tempo trascorso da un certo orario, usando la Classe ''Timer''==
In quest'altro esempio, invece, si ha un Cronometro adatto a visualizzare il tempo trascorso da un certo orario che sarà impostato e partirà cliccando su un "Button" posto sul "Form".
<BR>Si farà uso in questo esempio della Classe "Timer" (ma potrebbe essere utilizzato, ovviamente, anche un ciclo).
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()
    TextBox1.Text = Format(CDate(Time - tempo), "hh:nn:ss.uuu")
'''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
 
<FONT color=gray>' ''Prende l'orario iniziale:''</font>
  tm = Now
 
  Do
    Write "\rTempo: " & Date(0, 0, 0, 0, 0, 0, DateDiff(tm, Now, gb.Millisecond))
    Wait 0.001
  Loop
 
'''End'''




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> = decimi, centesimi e millesimi di secondo.
* <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.