Disegnare un orologio su una DrawingArea prendendo l'orario del sistema
Da Gambas-it.org - Wikipedia.
Versione del 26 mar 2021 alle 19:08 di Vuott (Discussione | contributi) (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...")
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 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 = (n - 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.0, al fine di ottenere la correlazione fra gradi e secondi sull'orologio grafico virtuale: n = CSingle(Format(Time, "ss")) * 6.0 DrawingArea1.Refresh End