Differenze tra le versioni di "Timer"

Da Gambas-it.org - Wikipedia.
Riga 22: Riga 22:
  
  
Oppure si potrà porre sul Form l'oggetto speciale ''Timer'' prendendolo dall'IDE di Gambas.
+
===Evitare un ritardo nell'attivazione del ''Timer''===
 +
L'esempio precedente prevede un ritardo, posto con la proprietà ''.Delay'', di 500 millisecondi. Questo ritardo avverrà anche al momento dell'attivazione, ossia della partenza del ''Timer'' medeismo. 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) andrà posta nella sub-routine scatenata dall'evento ''_Timer'':
 +
'''Private''' <Font Color= #B22222>timer1 As Timer</font>
 +
 +
 +
'''Public''' Sub Button1_Click()
 +
 +
  With <Font Color= #B22222>timer1 = New Timer As "timer1"</font>
 +
    .Delay = 1
 +
    .Start
 +
  End With
 +
 +
'''End'''
 +
 +
 +
'''Public''' timer1_Timer()  <Font Color= #006400>' ''Viene sollevato l'evento "_Timer" (ogni ms 500)''</font>
 +
 +
<Font Color= #006400>' ''Possiamo impostare qui il ritardo principale del "Timer":''</font>
 +
    timer1.Delay = 500
 +
 +
  <Font Color= #006400>' ''...qui fa qualcosa...''</font>
 +
 +
'''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.
  
  

Versione delle 20:04, 9 gen 2013

La Classe Timer può essere creata da codice:

Private timer1 As Timer


Public Sub Button1_Click()

 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 timer1_Timer()   ' Viene sollevato l'evento "_Timer" (ogni ms 500)

  ' ...qui fa qualcosa...

End


Evitare un ritardo nell'attivazione del Timer

L'esempio precedente prevede un ritardo, posto con la proprietà .Delay, di 500 millisecondi. Questo ritardo avverrà anche al momento dell'attivazione, ossia della partenza del Timer medeismo. 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) andrà posta nella sub-routine scatenata dall'evento _Timer:

Private timer1 As Timer


Public Sub Button1_Click()

 With timer1 = New Timer As "timer1"
   .Delay = 1
   .Start
 End With

End


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

' 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()

   With Timer1
' Viene posto un ritardo pari a ms 100
     .Delay = 100
' Viene abilitato il Timer, il quale solleva l'evento "_Timer"
' (il risultato del metodo ".Enabled = True" è equivalente al metodo ".Start"):
     .Enabled = True
      
End


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

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

   Inc a

End