Differenze tra le versioni di "Disegnare un orologio su una DrawingArea prendendo l'orario del sistema"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Il codice, che segue, mostra come disegnare su una ''DrawingArea'' con la Classe ''Paint'' un essenziale orologio circolare con lancetta, prendendo come riferimento l'orario d...")
 
Riga 1: Riga 1:
 
Il codice, che segue, mostra come disegnare su una ''DrawingArea'' con la Classe ''Paint'' un essenziale orologio circolare con lancetta, prendendo come riferimento l'orario del sistema.
 
Il codice, che segue, mostra come disegnare su una ''DrawingArea'' con la Classe ''Paint'' un essenziale orologio circolare con lancetta, prendendo come riferimento l'orario del sistema.
  Private n As Single
+
  Private b As Byte
 
   
 
   
 
  '''Public''' Sub Form_Open()
 
  '''Public''' Sub Form_Open()
Riga 22: Riga 22:
 
   r = 60
 
   r = 60
 
  <FONT Color=gray>' ''Imposta il punto sulla circonferenza dove è posto il secondo n. 0, ossia il grado da dove avrà inizio a ruotare la lancetta:''</font>
 
  <FONT Color=gray>' ''Imposta il punto sulla circonferenza dove è posto il secondo n. 0, ossia il grado da dove avrà inizio a ruotare la lancetta:''</font>
   c = (n - 90)
+
   c = (b - 90)
 
   d = 2
 
   d = 2
 
    
 
    
Riga 41: Riga 41:
 
  '''Public''' Sub Timer1_Timer()
 
  '''Public''' Sub Timer1_Timer()
 
    
 
    
  <FONT Color=gray>' ''Ottiene il valore del secondo corrente e lo moltiplica per 6.0, al fine di ottenere la correlazione fra gradi e secondi sull'orologio grafico virtuale:''</font>
+
  <FONT Color=gray>' ''Ottiene il valore del secondo corrente e lo moltiplica per 6, al fine di ottenere la correlazione fra gradi e secondi sull'orologio grafico virtuale:''</font>
   n = CSingle(Format(Time, "ss")) * 6.0
+
   n = Second(Time) * 6
 
    
 
    
 
   DrawingArea1.Refresh
 
   DrawingArea1.Refresh
 
    
 
    
 
  '''End'''
 
  '''End'''

Versione delle 18:04, 2 gen 2022

Il codice, che segue, mostra come disegnare su una DrawingArea con la Classe Paint un essenziale orologio circolare con lancetta, prendendo come riferimento l'orario del sistema.

Private b As Byte

Public Sub Form_Open()
 
 With Timer1
' Ogni centesimo di secondo si attiva il "Timer" per andare a vedere l'orario del sistema:
   .Delay = 100
   .Start
 End With
 
End

Public Sub DrawingArea1_Draw()
 
 Dim x, y, r As Short
 Dim c, d As Float
 
 x = DrawingArea1.W * 0.5
 y = DrawingArea1.H * 0.5
' Imposta la dimensione del raggio del cerchio, ossia della lancetta dell'orologio:
 r = 60
' Imposta il punto sulla circonferenza dove è posto il secondo n. 0, ossia il grado da dove avrà inizio a ruotare la lancetta:
 c = (b - 90)
 d = 2
 
 With Paint
   .Brush = .Color(Color.Red)
   .Ellipse(x - 2, y - 2, 4, 4, 0, 360, False)
   .Ellipse(x - ((r * d) / 2), y - ((r * d) / 2), r * d, r * d, 0, 360, False)
   .Stroke
   .Brush = .Color(Color.Blue)
   .MoveTo(x, y)
   .LineTo(x + (r * Cos(Rad(c))), y + (r * Sin(Rad(c))))
   .Stroke
   .End
 End With
  
End

Public Sub Timer1_Timer()
 
' Ottiene il valore del secondo corrente e lo moltiplica per 6, al fine di ottenere la correlazione fra gradi e secondi sull'orologio grafico virtuale:
 n = Second(Time) * 6
 
 DrawingArea1.Refresh
  
End