|
|
|
AJOUT D'UNE FONCTION ALARME1. Réglage de l'alarmeNous allons faire sonner ce réveil jusqu'ici un peu inutile... L'idée est de permettre à l'utilisateur de programmer une alarme (un message) en indiquant la date et l'heure. Pour indiquer ces informations, l'utilisateur doit disposer d'une fiche de saisie comme celle présentée ci-dessous :
D'où sort cette boîte de dialogue ? Une fiche Delphi est un objet.
Le composant Horloge est en fait représenté par plusieurs classes (Thorloge, Taiguille, ...). Chaque classe peut contenir des attributs de tout type, et notamment de type classe (une horloge "contient" trois aiguilles par exemple). Rien ne s'oppose donc à ce que la classe Thorloge contienne un attribut de type Tfm_dialogue. Il faudra donc :
Pour mémoriser l'alarme programmée, la classe Thorloge doit également disposer des attributs suivants :
Ouverture et fermeture du dialogue L'ouverture de la boîte de dialogue sera faite sur l'événement double-clic de l'horloge elle-même. Il faut pour cela définir une méthode "horlogeDblClick" chargée d'afficher la fiche et indiquer cette méthode comme gestionnaire de l'événement double-clic sur le composant par " OnDblClick:=horlogeDblClick;" (cette affectation doit être faite dans le constructeur de la classe Thorloge). La boîte de dialogue va être affichée de manière modale : l'utilisateur devra cliquer ok ou annuler avant de pouvoir continuer à faire autre chose. L'ouverture modale est faite par la méthode ShowModal qui retourne une information de type ModalResult permettant de savoir sur quel bouton l'utilisateur a cliqué : if dialogue.ShowModal=mrOk then // renseigner alarme, momentAlarme et libelleAlarme. endif La valeur de retour associée à un bouton peut être programmée de deux manières :
procedure Tfm_dialogue.bt_okClick(Sender: TObject); begin // traitement de contrôle de la date et de l'heure d'alarme ModalResult:=mrOk; end; Saisie de la date et de l'heure Les zones de saisie date et heure sont des composants TDateTimePicker (respectivement dtp_date et dtp_heure). Ce composant est paramétrable et peut donc représenter une date (TDate) ou une heure (TTime). Pour obtenir une valeur de type DateHeure (TDateTime), il suffit en fait d'ajouter une valeur de type date et une valeur de type heure. En effet, une valeur de type TDateTime est un réel dont la partie entière représente la date et la partie décimale représente l'heure. Il faudra donc affecter la valeur Time du composant dpt_heure à la propriété Time du composant dtp_date. A l'issue de cette affectation, la propriété "DateTime" du composant "dtp_date" contiendra le moment complet saisi par l'utilisateur. Déclenchement de l'alarme programmée A chaque déclenchement du composant Timer, il faut vérifier si l'alarme est programmée et envoyer le message prévu si le moment est venu. Travail à faire
2. Réaction paramétrableL'utilisateur de notre composant peut avoir envie de déclencher un traitement particulier lors du déclenchement de l'alarme (au lieu d'afficher un simple message) : jouer un concerto de Mozart, formater le disque dur, etc... Afin de lui offrir cette possibilité, il faut publier la procédure à déclencher comme une propriété de l'horloge. Cette propriété est de type "procedure of object", c'est-à-dire qu'elle représente l'adresse d'une méthode. Le programmeur pourra donc y mettre n'importe quelle fonction membre de la classe du formulaire principal de son application. Pour pouvoir déclarer une telle propriété, il faut créer un type au début du fichier horloge.pas : type TprocAlarme=procedure of object; Il suffit ensuite de :
Travail à faire
|
||||||||||||||||||||||||||||||||||||||
|
_____________________________________________
|