Delphi PDF
Delphi PDF
Delphi PDF
Ms
2ème partie :
laboratoire de programmation :
DELPHI
Introduction
Laboratoire de programmation Delphi.
I. Introduction à Delphi
Delphi est un AGL (Atelier de Génie Logiciel) permettant de réaliser des applications
s’exécutant sur Windows. Le terme « atelier » vient du faite que Delphi propose un ensemble
d’outils dans un même environnement tel que : un éditeur de code, un compilateur, des outils
de débogages, …
Les éléments fondamentaux du langage Pascal ont été vus durant les laboratoires relatifs au
Turbo Pascal. Voici un bref rappel de ces notions.
VAR VAR
Identificateur : Type ; NomDeLaVariable : TypeDeDonnées ;
Afin de visualiser le schéma dans son ensemble, celui-ci est repris à la page suivante.
Construites
Type énuméré NomDuType =(Valeur1, Valeur2, Valeur3)
Simples
Type ensemble Set of type énuméré
Données
Statique Array [intervalle] of type
Pointeur
Objet
Au départ le programme initialise certaines variables ( /!\ initialiser une variable, ne signifie
pas lui affecter la valeur 0, mais lui affecter une certaine valeur qui peut être égale à 0). Une
boucle est mise en œuvre afin de réitérer le programme permettant ainsi à l’utilisateur de
recommencer un traitement au tant de fois qu’il le souhaite, tout en lui donnant la possibilité
de quitter le programme. En finalisant l’application, celle-ci doit réaliser certaine tâche
comme par exemple, inviter l’utilisateur à sauvegarder son travail.
=> l’ordre d’exécution des instructions est défini par le programmeur.
Utilisateur : Clique sur un bouton (cf à l’exemple ci-dessus), clique sur un menu,
déplacement la souris, …
Quel est l’élément qui permet d’identifier une et une seule voiture ?
=> numéro de châssis.
Quels sont les propriétés qui vont déterminer l’aspect d’une voiture ?
=> marque, modèle, couleur, …
Quels sont les actions que l’on peut effectuées avec une voiture ?
=> démarrer, arrêter, changer de vitesse, …
Les fiches et les composants visuels sont des objets particuliers. En effet, ils héritent
de toutes les caractéristiques des objets et intègrent 2 caractéristiques
supplémentaires, qui sont :
• l’interface graphique,
• les événements.
Tous les composants sont des objets, par contre tous les objets ne sont pas
des conposants.
Fiche
Les fiches, qui deviendront après compilation des fenêtres, constituent les fondations
d’une application sous Windows.
Les fiches serviront à concevoir des fenêtres principales (avec menu, barre d’outils,
barre d’état) et des boîte de dialogue (ou fenêtre secondaire).
Une application peut être construite sur le modèle SDI ou le modèle MDI.
Une application SDI possède une fenêtre Une application MDI est constituée d’une fenêtre
principale et affiche généralement des boîtes principale et de fenêtres enfants.
de dialogue en cas de besoin.
Ex. : WordPad Ex. : Word
Fenêtre principale Fenêtre principale
Boîte de dialogue
Identité
Interface graphique
Propriétés et événements
(*)
(*)
Contrôle
Classe (TEdit)
Interface graphique
Identité
En effet, la zone de saisie est identifiée, dans le code, par l’identificateur Edit1 de la
propriété « Name ».
Propriétés
Edit1.Color :=ClLime
Syntaxe générale
Objet.Propriété :=valeur ;
Méthodes
Syntaxe générale :
Objet.méthode
Evénement
A è l’é é t
Définitions : GUI
Programme
GUI : Interface Utilisateur (Graphique)
* : contrôle
*
Fiche
*
*
*
.PAS (PAScal)
Projet
Unité1 Fiche 1 .DFM (Delphi ForM)
Nom de l’unité
Interface
Section où l’on
déclare les
variables ou les
routines qui
Implémentation
Section contenant le
code des routines.
Programme n°1 :
Exercice dirigé en Delphi.
Première partie
L’application doit permettre à l’utilisateur de saisir deux nombres réels. L’action sur le
bouton de commande « Somme » permet d’afficher la somme des deux nombres
dans une boîte de dialogue.
Deuxième partie
Lors de la saisie des nombres, les caractères invalides (‘t’,’&’,…) doivent immédiatement être
effacés, afin d’obtenir des nombres correctes lors de l’addition.
2. Interfaces utilisateurs
3. Aide à la conception
La fonction StrToFloat (prédéfinie dans Delphi) sera utilisée pour convertir une
chaîne de caractères en un nombre réel. Pour effectuer l’opération inverse, il suffit
d’utiliser la fonction FloatToStr (De réel vers chaîne de caractères).
Programme n°2 :
La calculatrice.
Première partie
Deuxième partie
Troisième partie
2. Interface graphique.
3. Aide à la conception
Lorsque le bouton Euro n’est pas utilisé, la fenêtre Edit du haut est inactive.
Programme n° 3 :
Calcul électronique.
1. But du programme.
Dans ce programme vous apprendrez à utiliser les objets les plus couramment
utilisés.
Ce programme est divisé en deux, une partie calcule la tension de sortie d’un
diviseur de tension. La deuxième partie calcule la fréquence de coupure d’un circuit
RC.
Les composants qui doivent se trouver sur la fenêtre sont les suivants :
7 composants Edit.
• Edit1 : Donne la tension d’alimentation.
• Edit2 : Donne le choix de la valeur de la résistance 1.
• Edit3 : Donne le choix de la valeur de la résistance 2.
• Edit4 : Donne la tension aux bornes de la résistance 2.
• Edit5 : Donne le choix de la valeur de la capacité.
• Edit6 : Donne le choix de la valeur de la résistance.
• Edit7 : Donne la fréquence de coupure du circuit RC.
6 boutons.
• Button1 : On choisi d’utiliser le programme pour le diviseur de tension.
• Button2 : On choisi d’utiliser le programme pour le circuit RC.
• Button3 : Bouton Reset, remise à zéro de tous les composants.
• Button4 : Ferme le programme.
• Button5 : Donne le résultat du diviseur de tension lors du clique.
• Button6 : Donne le résultat de la fréquence de coupure lors du clique.
Ensuite vous pouvez introduire la tension d’alimentation qui sera de type integer.
Ensuite vous pouvez cliquer sur le button5 qui donnera dans l’Edit4 la valeur de la
tension de sortie du diviseur de tension.
Vous devez indiquer votre nom et prénom dans la propriété Caption du composant
Form1.
Le choix de la résistance se fera de la même manière que dans le premier cas, pour
la capacité le choix se fera dans le tableau ci dessous.
Ensuite vous pouvez cliquer sur le button6 qui donnera dans l’Edit7 la valeur de la
fréquence du coupure du circuit RC.
Lors d’un clique sur le bouton Reset, tous les Edit doivent être effacé et la propriété
Enabled des Edit et des Button4 et Button5 doit passer à False.
3. Interface graphique.
Programme n° 4 :
Programmation de portes logiques.
1. But du programme.
Dans ce programme, nous allons modéliser toutes les portes logiques en affichant la
table de vérité et les entrées/sorties de la porte choisie.
Réalisez l’interface graphique ci-dessous, elle contiendra une image, trois CheckBox,
une StringGrid, un menu ( Fichier et A propos ), un Timer et un ComboBox.
Dessinez les portes logiques : AND, NAND, OR, NOR, XOR, NXOR.
Le timer sert à vérifier toutes les 0.5s les entrées de la porte logique et forcément
d’afficher le résultat correspondant. Il doit également lire le ComboBox pour pouvoir
afficher le dessin de la porte choisie et également créer la table de vérité dans le
StringGrid.
3. Interface graphique.
4. Aide à la conception.
Pour charger une image dans un composant Timage vous devez taper :
Nom_composant.Picture.Bitmap.LoadFromFile(chemin_de_image);
Pour accéder à la chaîne contenue dans une cellule donnée. ACol spécifie la
coordonnée en colonne de la cellule et ARow la coordonnée en ligne. La première
ligne et la première colonne correspondent à une valeur nulle.
Programme n° 5 :
Manipulation des images.
But : Réalisation d’un calendrier avec des images différentes pour chaque mois de
l’année.
1. Connaissances théoriques
Pour ajouter une image, un dessin ou une icône, il suffit d’aller dans l’onglet
Supplément et ensuite de cliquer sur l’icône Image.
Propriétés utiles.
Ajouter un panel :
Pour ajouter un Panel, vous devez aller dans l’onglet Standard et ensuite cliquer sur
Panel.
Propriétés utiles :
Controls[word] : Cette fonction est un tableau qui représente tous les contrôles
contenus dans un autre contrôle. Nous pourrons donc accéder aux images
contenues dans le panel. Par exemple Panel1.Controls[0] représente la première
image du container. Pour accéder à ses propriétés, il faut le déclarer comme un objet
en précisant son type avec le mot clé as. L’ensemble doit être entre parenthèses.
Par exemple pour modifier sa propriété picture, il faut écrire
(Panel1.Controls[0] as Timage).Picture.
Propriétés utiles :
Date
Var :=Date ;
Cette fonction donne la date actuelle du système.
Var doit être de type Tdate.
Var contiendra l’année, le mois et le jour.
FormatDateTime(arg1,arg2)
Var :=FormatDateTime(arg1,arg2) ;
Var doit être de type string.
Cette fonction retourne la date de arg2 dans le format spécifié par arg1.
Si arg1 est ‘yyyy’, var contiendra l’année sur quatre chiffres.
Si arg1 est ‘mmmm’, var contiendra le mois en toutes lettres.
DecodeDate(Date,A,M,J) (procedure)
DayOfWeek(Date)
EncodeDate(A,M,J)
Pour ajouter une procédure il faut d’abord la déclarer dans la clause type juste au
dessus de Private de la manière suivante : Procedure nom ;
Ensuite il ne reste plus qu’à l’écrire à la fin de l’unité et dans ce cas il faut écrire :
Procedure TForm1.nom ;
Pour appeler une procédure, il suffit de taper son nom à l’endroit voulu.
3. Réalisation du programme.
Un contrôle Image qui affichera une image différente pour chaque mois.
Un panel dans lequel vous ajouterez les 12 images correspondant aux différents
mois.
Un label qui nous donne le mois et un label qui nous donne l’année.
Nom de la variable :
Nom de la procédure :
Créez un tableau, comme constante, de type string qui contiendra les jours de la
semaine en commençant par dimanche.
Syntaxe :
Syntaxe :
Placez dans le contrôle Image1, une des images du Panel1 en fonction du mois
actuel. En utilisant la propriété Controls.
Syntaxe :
Syntaxe :
Placez dans une variable la date du dernier jour du mois. En utilisant la fonction
EncodeDate.
Si le mois actuel est différent de décembre, on prend le premier jour du mois
suivant et on retranche 1.
Sinon, on prend le premier janvier de l’année suivante et on retranche 1.
Syntaxe :
Syntaxe :
Modifiez la grille.
Pour ce faire ajoutez dans les cellules de la première ligne les jours de la
semaine. A partir de dimanche. En utilisant la fonction Cells et un For To Do.
Syntaxe :
Placez dans une variable le jour à afficher. Le premier jour du mois à afficher est
le 1 ! ! !
Syntaxe :
Q ? Pourquoi 37 solutions ?
Pour i = 0 jusque 36
Si i<(var contenant le jour de la semaine du 1e jour du mois)-1 ou
(jour à afficher>nbr de jour du mois)
alors
On affiche dans la cellule la chaîne vide ‘’.
Sinon
On affiche dans la cellule le jour à afficher et on incrémente ce jour.
Pour savoir dans quelle ligne et dans quelle colonne afficher le jour, il faut
utiliser le modulo et la division tronquée.
Syntaxe :
Pour cet exercice, vous devez ajouter 4 images qui vont être utilisées comme
boutons.
Nom de l’image :
Nom de l’image :
Nom de l’image :
Nom de l’image :
Pour qu’un événement se déroule lors d’un clic sur l’image, il faut la sélectionner et
aller dans l’onglet Evénement de la fenêtre Inspecteur d’objets et ensuite double-
cliquez OnClick.
Vous entrez de cette manière dans la procédure qui sera exécutée lors du clic sur
l’image.
Syntaxe :
Syntaxe :
Faites de la même manière pour les trois autres images en modifiant les paramètres
utiles.
Programme n° 6 :
Les trackbars et les shapes.
1. But du programme.
Créer une fenêtre de la même manière que ci-dessous. Cette fenêtre doit contenir un
menu déroulant, deux TrackBar, quatre timers, six Shapes et un bouton.
Lors du clique sur le bouton Démarrer, le TrackBar1 (celui du dessus, qui portera le
nom tb1) se met en marche, le shape vert s’éteint et le shape jaune s’allume ( shape
horizontal ), ce shape sera allumé pendant toute la durée du déplacement du
curseur. Ensuite lorsque le curseur de tb1 arrive à la fin, le shape rouge(shape à la
fin) s’allume et le jaune s’éteint, le TrackBar2 (celui du dessous, qui portera le nom
tb2) se met en route de la même manière que tb1.
Lorsque le curseur de tb2 arrive au milieu de son parcours, il fait revenir le curseur
du tb1 à sa position initiale, le rouge du tb1 s’éteint et le jaune s’allume en clignotant
jusqu’au moment où il arrive à sa position de départ à ce moment le jaune s’éteint et
le vert s’allume.
On fait la même chose avec tb1 lorsqu’il arrive au milieu, il fait revenir le curseur de
tb2 à sa position initiale.
3. Interface graphique.
4. Aide à la conception.
Dans le menu Fichier, vous aurez un menu Quitter (Raccourci F10), ce menu comme
son nom l’indique sert à quitter le programme.
Dans le menu A Propos, vous aurez un menu Concepteur, lors d’un clique sur ce
menu apparaîtra une fenêtre avec votre nom, votre prénom et votre groupe.
Pour ouvrir une forme, vous avez le choix entre deux méthodes :
• Show
• Showmodal
Programme n° 7 :
Utilisation des radiogroups.
1. But du programme.
Le programme que vous devez créer déterminera les caractéristiques d’un shape,
ces caractéristiques seront définies dans une fenêtre supplémentaire.
Créer une fenêtre, Dessin, ressemblant à celle ci-dessous. Dans laquelle ce trouve
un menu contenant :
Fichier dans lequel on trouve le menu Quitter avec le raccourci Alt Q.
Forme dans lequel on trouve le menu Configuration avec le raccourci F2.
A Propos dans lequel on trouve le menu Concepteur.
De plus dans cette fenêtre, vous devez rajouter un composant Shape, qui portera le
nom Dessin.
Lorsque vous cliquez sur le menu Configuration, la fenêtre ci dessous doit s’ouvrir.
Dans cette fenêtre se trouvera 2 composants RadioGroup, un des deux donnera la
forme du Shape ce trouvant sur la première fenêtre, l’autre donnera sa couleur. Ceci
doit se passer lors du clique sur le bouton OK qui en plus de donner la couleur et la
forme du shape, doit fermer la fenêtre configuration. Le bouton Cancel ferme
simplement la fenêtre Configuration.
Lors du clique sur le menu Concepteur, doit apparaître une fenêtre dans laquelle
vous indiquerez votre nom, prénom et votre groupe.
Programme n° 8 :
Manipulation des fichiers.
Dans ce programme vous allez apprendre à écrire le plus simplement dans un fichier
texte. Ensuite vous créerai un éditeur de texte avec les options copier et coller.
Un fichier peut être accédé sous trois modes: l'écriture, l'ajout ou la lecture. Les
fichiers sont conservés sur des supports de stockage comme les disquettes, disques
durs, cd-rom,... Le DOS exige que la structure d'un nom de fichier soit composée de
1 à 8 caractères et d'une extension facultative de 3 lettres.
Avant toute manipulation sur les fichiers, il est nécessaire d'assigner au nom du
fichier une variable logique. Celle-ci servira de référence dans le programme, en lieu
et place du nom de fichier. L’assignation s’effectue via deux instructions.
Var
F : TextFlie;
Begin
AssignFile(F, 'C:\DELPHI\FICHIER.DAT');
End.
Le type prédéfini TextFile, repris ici dans la section Var, indique l'utilisation d'un
fichier de caractères structurés en lignes, c.-à-d. texte (avec CR/LF).
Lecture
Pour lire les informations d'un fichier, Delphi offre les instructions Read et ReadLn.
Ecriture
WriteLn(variable - Logique, string) a pour effet d'écrire dans le fichier désigné par la
variable logique le contenu de la variable, ici, string.
TMemo
Plusieurs propriétés agissent sur l'affichage et sur la saisie du texte dans le mémo, Il
est possible d'inclure des barres de défilement dans le mémo à l'aide de la propriété
ScrollBars. Si vous voulez que le mémo soit automatiquement redimensionné en
fonction des changements de taille du texte, utilisez la propriété AutoSize. Si vous
voulez un retour à ligne du texte, basculez WordWrap à True. Si vous voulez offrir à
l'utilisateur la possibilité d'inclure des tabulations dans le texte, basculez WantTabs à
True.
• Propriété Name Edition, pour rendre le nom de l'objet plus parlant par la suite.
• Propriété Lines [vide] pour que l'objet ne contienne aucune valeur de départ.
Créez un menu Fichier dans lequel il y aura Ouvrir, Enregistrer sous et Quitter.
Pour réagir aux menus Ouvrir et Enregistrer sous, vous devez ajouter les
composants OpenDialog et SaveDialog.
Lorsque l'utilisateur aura choisi son fichier dans la boîte de dialogue ouvrir, ce dernier
sera transféré dans la propriété Lines du composant Memo.
Créez le presse-papiers,
Edition.CutToClipboard;
Edition.CopyToClipboard;
Edition.PasteFromClipboard;
Programme n° 9 :
Gestion des fichiers typés - Répertoire téléphonique
2. Conception
Menu Fichier
Edition
Formulaire
Interface graphique
3. Aide à la programmation
Cette section vous donne les mots-clés qui vous serviront à la programmation de
l’application. La syntaxe et la signification de ces mots-clés sont disponibles dans
l’aide en ligne de Delphi.
Fermeture CloseFile
Pour la gestion des fichiers typés, je vous invite à consulter l’aide en ligne de Delphi
en recherchant les mots-clés suivants : Seek, FileSize, FilePos.
L’accès aux boîtes de dialogue de Windows se fait à l’aide des composants visuels
suivants :
Manipulation 10:
Les carrefours.
Dans ce programme vous allez apprendre à enchaîner les Timers ainsi qu’à faire
bouger une image.
Vous devez choisir deux carrefours, réaliser les différents feux à l’aide de shape et
ensuite faire passer la voiture entre ces 2 carrefours. La voiture doit évidemment
s’arrêter lorsque le feux est rouge.
2. Interface graphique
3. Aide à la conception.
Pour faire bouger une image, il suffit d’utiliser la propriété « Left » pour la faire
avancer de droite à gauche et la propriété « Top » pour la faire monter ou
descendre.
Manipulation 11 :
Création et utilisation de Dll.
1. But du programme.
2. Interface graphique.
3. Aide à la conception.
Vous devez ensuite créer un programme qui utilisera cette « dll » (cf. interface
graphique).