DEUST AMRL Orsay février 2007
Delphi séance N° 2
Coût d'un appel téléphonique
Objectif : calculer le coût d'un appel téléphonique depuis un téléphone fixe France Telecom vers un
mobile SFR ou Orange
N'hésitez pas à tester la démo TELMOB.EXE qui est sur F:\DEUST\DELPHI\DEMOS
edHeure
edDuree
rgJour bnCalcul
nlCout
rbCreuses
Légende de la copie d'écran :
début du nom composant
nl NumLabel
ed Edit
bn Button
rg RadioGroup
rb RadioButton
1. Le jour dans la semaine et l'heure de l'appel
Pour le choix du jour, dessinez un composant RadioGroup (palette Standard).
Tapez dans sa propriété Items (voir l'inspecteur d'objets) les 7 jours de la semaine. Donnez à la propriété
ItemIndex la valeur 0 : c'est le lundi qui doit être "coché".
Par la suite, c'est cette propriété ItemIndex qui indiquera le jour de la semaine choisi par l'utilisateur :
0 pour lundi, 1 pour mardi, etc.
Dessinez un Edit pour que l'utilisateur tapa l'heure de l'appel. Nommez-le edHeure et tapez 00:00 dans sa
propriété Text
Pour afficher si on est en heures creuses, dessinez un composant RadioButton (palette Standard).
Nommez-le rbCreuses. Il possède une propriété booléenne : Checked
L'instruction rbCreuses.Checked:=true aura comme effet de noircir le rond, et si on met false, le
rond sera vide.
1/2
2. Réaction au choix de jour
Réagissez au choix de jour : évènement OnChange de rgJour
si le jour est supérieur ou égal à 0 et inférieur ou égal à 4 (du lundi au vendredi)
si l'heure est supérieure ou égale à '08:00' et inférieure à '21:30'
on est en heures creuses
sinon
on n'est pas en heures creuses
sinon si le jour est égal à 5 (samedi)
si l'heure est supérieure ou égale à '08:00' et inférieure à '12:00'
on est en heures creuses
sinon
on n'est pas en heures creuses
sinon si le jour est égal à 6 (dimanche)
on est en heures creuses
Enregistrez les sources sur Z:
Testez le programme : vérifiez que pour une heure fixée, le choix de jour affiche le bon régime (heures
creuses ou non) dans le bouton radio.
3. Réaction à la modification de l'heure
Pour que la réaction à la frappe de l'heure soit la même que pour le choix de jour, il suffit de raccorder
l'évènement OnChange de edHeure à la réaction déjà programmée : choisissez rgJourClick dans la liste
déroulante.
Sauvegardez puis testez le programme : maintenant le bouton radio est mis à jour aussi quand on change
l'heure.
4. Calcul du coût d'un appel
Dessinez un composant Edit1 et nommez-le edDuree. Il recevra la durée de l'appel entré par l'utilisateur
(par exemple 00:02:30 pour deux minutes trente secondes).
Dessinez un bouton (bnCalcul) et un NumLabel (nlCout) qui recevra le coût calculé d'après une des
formules données plus bas.
Réagissez au clic sur le bouton :
déclaration d'une variable Duree de type real,
mémorisez dans Duree la conversion en minutes de la durée qui sera entrée dans edDuree :
Duree:=StrToTime(edDuree.Text)*24*60
car StrToTime donne un résultat en jour (0,xxxxx) et il y a 24 heures par jour et 60 minutes par heure
si on est en heures creuses
alors le coût vaut Duree * 0.052
sinon le coût vaut Duree * 0.095
5. Pour ceux qui ont fini tôt
L'ancien coût reste affiché jusqu'à ce qu'on clique sur bnCalcul, même si on change de date ou de durée ;
on pourrait rendre invisible le composant laCout dès qu'on change de jour, d'heure ou de durée, et le
rendre visible dès qu'on clique sur bnCalcul.
1
On pourrait aussi utiliser un composant MaskEdit (palette Suppléments) qui permet de définir un masque : Heure longue
et qui s'utilise comme un Edit
2/2