Très simple et pédagogique, pour ceux qui comme moi débute en VB, et cherche des exemples pas trop compliqué. C'est une pendule analogique qui récupère l'heure de Windows et la transforme via une formule, en coordonnées pour les aiguilles.
toutes les critiques sont le bien venu
Source / Exemple :
Dim i As Integer
Dim heure As Integer
Dim couleur As ColorConstants
Private Sub Form_Load()
Form1.BackColor = &H808080
'activation du timer
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Cls
heure = 1
'affiche l'heure digital
Label1.Caption = Mid(Format(Time, "hh:mm:ss"), 1)
'le cadran un angle de 6° pour 1 sec
For i = 1 To 60
s1 = Sin((6 * i) * 3.14159265358979 / 180) * 1100
c1 = Cos((6 * i) * 3.14159265358979 / 180) * 1100
s2 = Sin((6 * i) * 3.14159265358979 / 180) * 1200
c2 = Cos((6 * i) * 3.14159265358979 / 180) * 1200
'l'épaisseur et la couleur des traits du cadran par defaut
DrawWidth = 1
couleur = vbWhite
'l'épaisseur et la couleur des traits pour les heures
If (i / 5 = heure) Then
DrawWidth = 2
couleur = vbYellow
heure = heure + 1
End If
'l'épaisseur et la couleur des traits pour les quarts
If (i = 60 Or i = 15 Or i = 30 Or i = 45) Then
couleur = vbYellow
DrawWidth = 3
End If
'affichage les traits du cadran avec la couleur par defaut
Form1.Line (2000 + s1, 900 + 1100 - c1)-(2000 + s2, 800 + 1200 - c2), couleur
Next
'la taille et les coordonnées de l'aiguille des secondes
DrawWidth = 1
s = Sin((6 * Second(Time)) * 3.14159265358979 / 180) * 1000
c = Cos((6 * Second(Time)) * 3.14159265358979 / 180) * 1000
Form1.Line (2000, 2000)-(2000 + s, 1000 + 1000 - c), vbRed
'la taille et les coordonnées de l'aiguille des minutes
DrawWidth = 3
s = Sin((6 * Minute(Time)) * 3.14159265358979 / 180) * 1000
c = Cos((6 * Minute(Time)) * 3.14159265358979 / 180) * 1000
Form1.Line (2000, 2000)-(2000 + s, 1000 + 1000 - c), vbWhite
'la taille et les coordonnées de l'aiguille des heures
DrawWidth = 5
s = Sin((30 * Hour(Time)) * 3.14159265358979 / 180) * 700
c = Cos((30 * Hour(Time)) * 3.14159265358979 / 180) * 700
Form1.Line (2000, 2000)-(2000 + s, 700 + 1300 - c), vbYellow
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.