Differenze tra le versioni di "Timer"

Da Gambas-it.org - Wikipedia.
Riga 15: Riga 15:
 
   
 
   
 
   
 
   
  '''Public''' timer1_Timer()  <Font Color= #006400>' ''Viene sollevato l'evento "_Timer" (ogni ms 500)''</font>
+
  '''Public''' Sub timer1_Timer()  <Font Color= #006400>' ''Viene sollevato l'evento "_Timer" (ogni ms 500)''</font>
 
   
 
   
 
   <Font Color= #006400>' ''...qui fa qualcosa...''</font>
 
   <Font Color= #006400>' ''...qui fa qualcosa...''</font>
Riga 45: Riga 45:
 
   
 
   
 
   
 
   
  '''Public''' timer1_Timer()
+
  '''Public''' Sub timer1_Timer()
 
    
 
    
 
  <Font Color= #006400>' ''Possiamo impostare qui il ritardo principale del "Timer":''</font>
 
  <Font Color= #006400>' ''Possiamo impostare qui il ritardo principale del "Timer":''</font>
Riga 63: Riga 63:
 
   
 
   
 
   
 
   
  '''Public''' SUB Form_Open()
+
  '''Public''' Sub Form_Open()
 
   
 
   
 
   With Timer1
 
   With Timer1
Riga 76: Riga 76:
 
   
 
   
 
   
 
   
  '''Public''' SUB Button1_Click()
+
  '''Public''' Sub Button1_Click()
 
   
 
   
 
  <Font Color= #006400>' ''Viene abilitato il Timer, il quale solleva l'evento "_Timer"''
 
  <Font Color= #006400>' ''Viene abilitato il Timer, il quale solleva l'evento "_Timer"''

Versione delle 20:33, 9 gen 2013

La Classe Timer può essere creata da codice:

Private timer1 As Timer


Public Sub Form_Open()

  With timer1 = New Timer As "timer1"
' In questo caso il "Timer" si attiva ogni 500 millisecondi:
    .Delay = 500
' Quindi viene attivato:
    .Start
  End With

End


Public Sub timer1_Timer()   ' Viene sollevato l'evento "_Timer" (ogni ms 500)

  ' ...qui fa qualcosa...

End


Evitare un ritardo nella prima attivazione del Timer

L'esempio precedente prevede un ritardo, posto con la proprietà .Delay, di 500 millisecondi. Questo ritardo avverrà anche al momento della sua prima attivazione, ossia della partenza del Timer medesimo. Per ovviare a questo ritardo in fase di prima attivazione (partenza iniziale), si dovrà porre la proprietà .Delay ad 1 millisecondo (ma se non interessa una partenza con questo bassissimo ritardo, ovviamente si può porre un qualunque valore). La definizione del ritardo principale (quello che nel precedente esempio era di ms 500) potrà essere posta altrove (anche nella sub-routine scatenata dall'evento _Timer):

Private timer1 As Timer


Public Sub Form_Open()

  With timer1 = New Timer As "timer1"
' Qui poniamo il ritardo minimo della prima attivazione del "Timer":
    .Delay = 1
  End With

End


Public Sub Button1_Click()

' Qui ad esempio attiviamo il "Timer":
    timer1.Start

End


Public Sub timer1_Timer()
 
' Possiamo impostare qui il ritardo principale del "Timer":
    timer1.Delay = 500

  ' ...qui fa qualcosa...

End


Usare l'oggetto speciale Timer

L'uso del Timer potrà avvenire, oltre attraverso la creazione della specifica Classe Timer, anche ponendo sul Form l'oggetto speciale Timer presente nell'IDE di Gambas.


Facciamo un altro semplice esempio esplicativo del funzionamento del Timer, suppondendo in questo caso che sia stato posto sul Form l'oggetto speciale Timer:

Private a As Integer


Public Sub Form_Open()

  With Timer1
' All'avvio poniamo il Timer come disabilitato:
    .Enabled = False
' poniamo il Delay inizialmente a 1 millisecondo,
' per non generare alcun ritardo quando premeremo il tasto "Button1":
    .Delay = 1
  End With

End


Public Sub Button1_Click()

' Viene abilitato il Timer, il quale solleva l'evento "_Timer"
' (l'effetto della proprietà ".Enabled = True" è equivalente al metodo ".Start"):
     Timer1.Enabled = True
      
End


Public Sub Timer1_Timer()   ' Subroutine invocata con l'attivazione di Timer

 ' Viene posto un ritardo pari a ms 100:
   Timer1.Delay = 100

' Dunque, ogni ms 100 verrà stampato in console il nuovo valore della variabile " a ":
   Print a

   Inc a

End