Cette petite source très simple développée sous Visual Basic Express 2008 permet à l'utilisateur de programmer et de gérer ses alarmes, en leur assignant une tonalité au choix ou non. Cette application peut tourner en fond en réduisant la fenêtre. Celle-ci se glisse dans la barre des tâches. De plus, l'utilisateur peut choisir si l'application doit se lancer au démarrage de Windows ou non.
Ceci est ma première source sur CS, donc place aux remarques constructives :)
Source / Exemple :
' CLASSE D'ALARME
'On utilise DirectX uniquement pour lire un ficher audio.
Imports Microsoft.DirectX
Imports Microsoft.DirectX.AudioVideoPlayback
Public Class clsAlarm
'Déclaration des variables.
Private _Nom As String
Private _Detail As String
Private _Date As Date
Private _Tonalite As String
Private WithEvents tVerif As New Timer 'Déclaration d'un timer avec évenements.
#Region "Property"
' PROPRIETES DE LA CLASSE
'C'est ici que sont les propriétés de la classe, rien de bien compliqué. Je vais en détaillé une, le fonctionnement est le même pour toutes les autres.
'Propriété "Nom".
Public Property Nom() As String 'De type String.
' Imagineons Alarm1 As New clsAlarm.
Get 'Lorsque l'on demande cette propriété (maVar = Alarm1.Nom)
Return _Nom 'On retourne la valeur de la variable _Nom (déclarée plus haut).
End Get
Set(ByVal value As String) 'Lorsque l'on attribut une valeur à cette propriété (Alarm1.Nom = maVar)
_Nom = value 'On modifie la valeur de la variable _Nom, on lui attribut la valeur "value".
End Set
End Property
Public Property Details() As String
Get
Return _Detail
End Get
Set(ByVal value As String)
_Detail = value
End Set
End Property
Public Property AlarmDate() As Date
Get
Return _Date
End Get
Set(ByVal value As Date)
_Date = value
End Set
End Property
Public Property Tonalite() As String
Get
Return _Tonalite
End Get
Set(ByVal value As String)
_Tonalite = value
End Set
End Property
#End Region
'A la création de la variable via la classe.
'On demande 4 choses, le nom, la description, la date, et le chemain du fichier audio.
Public Sub New(ByVal _AlarmName As String, ByVal _AlarmDetail As String, ByVal _AlarmDate As Date, ByVal _AlarmTonalite As String)
'On les attributs aux variables.
_Nom = _AlarmName
_Detail = _AlarmDetail
_Date = _AlarmDate
_Tonalite = _AlarmTonalite
'On initialise le timer à 1 seconde, et on le lance.
tVerif.Interval = 1000
tVerif.Start()
End Sub
' TICK DU TIMER.
Private Sub tVerif_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tVerif.Tick
If Date.Now.ToString = _Date.ToString Then 'Si la date et l'heure actuelle du pc correspondent à la date et l'heure de l'alarme.
If Not _Tonalite = "" Then 'Et si l'alarme possède une tonalité.
Dim mPiste As New Audio(_Tonalite) 'Alors on initialise le son via DirectX.
mPiste.Play() 'Puis on le lance.
'En attendant on affiche une MessageBox, avec quelques informations sur l'alarme.
MessageBox.Show("Alarme : " & _Nom & vbCrLf & "Détails : " & _Detail, "Alarme !", MessageBoxButtons.OK)
mPiste.Stop() 'Puis à la fermeture de la MessageBox, on éteint la musique.
Else
'Si l'alarme ne possède pas de tonalité (l'utilisateur ne souhaite pas qu'une musique se lance).
'On affiche simplement une MessageBox d'informations !
MessageBox.Show("Alarme : " & _Nom & vbCrLf & "Détails : " & _Detail, "Alarme !", MessageBoxButtons.OK)
End If
End If
End Sub
End Class
Conclusion :
En conclusion, cette source permet de voir différents éléments. Dans un premier temps, elle permet de voir la gestion simple des alarmes via POO. Mais elle permet aussi la gestion de la base de registre (rien de bien compliqué), ainsi que du Systray avec un menu contextuel. Enfin, elle permet de voir le composant AudioVideoPlayback, qui est le composant le plus simple de DirectX.
Les améliorations possibles :
- Changement de couleur dans la liste des alarmes lorsque une alarme est passée.
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.