Gambas France BETA


Pas de compte ? Incription

Alarme

À propos de ce code

Une petite alarme pédagogique

Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
' Gambas class file

PRIVATE iTemp AS INTEGER '<------------------------------------------------- le décompte en seconde
PRIVATE MonSon AS Sound '<----------------------------------------------------- le son de l'alarme
PRIVATE ouverture3 AS STRING = "ouverture3" '<--------------------------------- le nom du son

PUBLIC SUB son($son AS STRING) '<--------------------------------------------- définition du son

SELECT CASE $son
CASE ouverture3
TRY MonSon = Sound.Load("ouverture3.ogg") '<--------------------- le fichier son
END SELECT
TRY MonSon.Play() '<----------------------------------------------------- jeu du son

END

PUBLIC SUB timDecomp_Timer() '<--------------------------------------------- évènement de décompte du temps

DIM iHour, iMinute, iSeconde AS INTEGER '<--------------------------------- mes variables locales

IF itemp > 0 THEN '<----------------------------------------------------- si la variable est définie
DEC iTemp '<--------------------------------------------------------- la variable globale est décrémentée
ELSE '<----------------------------------------------------------------- sinon on sort de l'évènement
lblWillBe.Text = "" '<------------------------------------------------- label du temps qu'il sera est vide
RETURN '<------------------------------------------------------------- retour dans la boucle évènements
ENDIF

iHour = (itemp \ 3600) MOD 3600 '<----------------------------------------- les heures à partir du temps de décompte en secondes
iMinute = (itemp MOD 3600) \ 60 '<----------------------------------------- les minutes à partir du temps de décompte en secondes
' iMinute = (itemp \ 60) Mod 60 '<----------------------------------------- autre possibilité pour les minutes
iSeconde = (itemp MOD 3600) MOD 60 '<------------------------------------- les secondes à partir du temps de décompte en secondes

lblSecond.Text = CStr(iHour) & " h " & CStr(iMinute) & " m " & CStr(iSeconde) & " s " '<-- affichage repère

IF itemp = 0 THEN '<----------------------------------------------------- nettoyage de fin de décompte
son(ouverture3) '<----------------------------------------------------- jeu du son
timDecomp.Stop '<----------------------------------------------------- arrêt de l'évènement décompte
TimeBox1.Value = 0 '<------------------------------------------------- valeur à zéro du TimeBox
TimeBox1.Enabled = TRUE '<--------------------------------------------- le TimeBox est à nouveau utilisable
lblSecond.Text = "" '<------------------------------------------------- le label d'affichage du décompte est vide
lblTempsRest.Visible = FALSE '<------------------------------------- le label teps restant est vide
lblWillBe.Text = "" '<------------------------------------------------- le label du temps qu'il sera est vide
ENDIF

END

PUBLIC SUB btValid_Click() '<------------------------------------------------- évènement du bouton de validation

iTemp = Hour(TimeBox1.Value) * 3600 + Minute(TimeBox1.Value) * 60 + Second(TimeBox1.Value) '<-- définition du décompte en secondes
TimeBox1.Enabled = FALSE '<--------------------------------------------- le timeBox est rendu inopérationnel
lblTempsRest.Visible = TRUE '<--------------------------------------------- affichage du temps restant
timDecomp.Start '<--------------------------------------------------------- déclenchement de l'évènement Timer_Timer
lblWillBe.Text = Format(DateAdd(Time(Now), gb.Second, itemp), "hh:nn:ss") '<-- temps qu'il sera

END

PUBLIC SUB btAnnul_Click() '<------------------------------------------------- évènement du bouton d'annulation

timDecomp.Stop '<--------------------------------------------------------- arrêt dde l'évènement Timer_Timer et nettoyage
TimeBox1.Value = 0 '<----------------------------------------------------- le timeBox est remis à zéro
TimeBox1.Enabled = TRUE '<------------------------------------------------- il est rendu à nouveau opérationnel
lblTempsRest.Visible = FALSE '<----------------------------------------- le label temps restant est invisible
lblSecond.Text = "" '<----------------------------------------------------- le label de décompte est vidé
lblWillBe.Text = "" '<----------------------------------------------------- le label du temps qu'il sera est vidé

END

PUBLIC SUB timNow_Timer() '<------------------------------------------------- évènement affichage de l'heure

lblNow.Text = Format(Time(Now), "hh:nn:ss") '<----------------------------- affichage de l'heure actuelle

END

PUBLIC SUB Form_Open() '<----------------------------------------------------- évènement ouverture du formulaire

timNow.Start '<--------------------------------------------------------- déclenchement de l'évènement Timer_Timer

END

Commentaires