Chapitre N02 PDF
Chapitre N02 PDF
Chapitre N02 PDF
Module
Delphi monoposte
Chapitre II
Premiers pas avec Delphi
SEMESTRE 2
Année 2013/2014
1
Module Delphi Chapitre II
Nous allons suivre ces bons conseils et commencer à placer des objets sur notre
fiche (que nous appellerons Exemple).
Le moyen le plus simple pour placer un objet (ou contrôle, ou encore composant) sur une
fiche est de le repérer dans la liste proposée par Delphi (partie supérieure de l'écran) et de
double-cliquer sur son icône. Un objet de ce type est alors inséré au centre de la fiche. Un
autre moyen pour placer un objet est le suivant: après avoir cliqué sur son icône, il faut
cliquer sur la fiche et déplacer la souris; l'objet prend alors les dimensions imposées.
Voici comment le code correspondant à la fiche est automatiquement modifié par Delphi
2
Module Delphi Chapitre II
Delphi appelle Projet une application Windows qu'il gère. Avant de sauvegarder
tous les fichiers d'un projet sur disque il est conseillé de créer un répertoire permettant de les
accueillir. La sauvegarde s'obtient à l'aide de l'option Fichier /
Enregistrer le projet sous... Si aucune sauvegarde n'a encore été effectuée, Delphi propose d'abord
d'enregistrer la unit sous le nom UNIT1.PAS. Il vaut mieux, comme indiqué plus haut, changer le
nom que Delphi propose par défaut; par exemple, indiquons EXU1.pas. Puis Delphi demande le nom
du projet et propose PROJETCT1.DPR. Là nous spécifions, par exemple, EXE1.DPR. Dans la figure
qui suit, on voit comment Delphi a répercuté ces choix dans le code source. Afin de ne pas avoir de
doutes sur les différents noms de fichiers, il convient de bien comprendre comment Delphi les gère.
3
Module Delphi Chapitre II
Jusqu'à présent nous avons vu une unit, mais pas de programme principal. Où se
cache-t-il ? On peut le voir à l'aide de la commande Voir le Source du projet du menu Projet. Sur la
figure on voit une fenêtre avec deux onglets: un pour le programme principal (projet) et un pour la
unit. Si le projet fait appel à plus d'unit, il y aurait plus d'onglets. On constate que EX1 est le nom du
projet (EX1.DPR), mais aussi le nom du programme. De plus, dans la clause uses on voit la ligne:
exu1 in 'exu1.pas' {Exemple};
où: - exu1 est le nom interne de la unit.
- exu1.pas est le nom du fichier dans lequel se trouve la unit (pas forcément le même) - Exemple est
le nom de la fiche associée à cette unit.
On peut être déçu par la simplicité du programme principal. En fait, il ne sera jamais beaucoup plus
imposant que cet exemple.
4
Module Delphi Chapitre II
5
Module Delphi Chapitre II
6
Module Delphi Chapitre II
Avant de passer à la suite il faut créer une nouvelle fiche (menu Fichier/Nouvelle
fiche) dont le nom sera "Expo". Dans cette fiche placez un contrôle de type
image dont on garde le nom ("Image1") et un bouton de type BitBtn à partir de la
palette Supplément et mettez sa propriété Kind à BkClose pour que la fiche
se ferme quand on clique dessus et cela sans écrire la moindre ligne de code. Ce
type de bouton à la faculté de contenir un texte (Caption) et une image. Voici cette fiche en
construction:
7
Module Delphi Chapitre II
Revenez sur la première fiche en placez le code suivant dans l'événement"OnClick" du bouton
"Dessin". Ce code se résume à Expo.show où Expo est le nom de la seconde fiche et show est la
méthode permettant de charger et d'afficher une fiche.
lors de la sauvegarde du projet, Delphi demande quel nom il doit donner au fichier contenant l'unité
rattachée à la fiche "Expo". Pour des raisons de cohérence (la première fiche étant dans "exu1.pas")
nous choisissons "exu2.pas"; lors de la compilation du projet (menu Projet/Compiler) Delphi affiche
un message d'erreur. En effet, depuis la première fiche on fait référence à la deuxième fiche, mais
cette dernière (donc son unité) est inconnue de la première fiche (donc unité). Dans une grande
bonté d'âme Delphi propose d'ajouter la ligne uses exu2; dans l'unité de la première fiche, ce qui
permet de supprimer l'erreur.
A ce stade vous pouvez déjà exécuter le programme, appeler la seconde fiche, la fermer, etc.
Toutefois, la seconde fiche ne contient pas d'image visible. Nous allons voir 3 possibilités de placer
une image dans cette fiche.
Première solution: placer une image dans la propriété "Picture" de l'objet "Image1’’ en cliquant sur les
3 points à côté de "(vide)" puis cliquer sur le bouton Charger et
sélectionnez à partir d’un dossier une image.
8
Module Delphi Chapitre II
Deuxième solution: charger une image depuis le code lorsque la fiche "Expo" est activée. Par
exemple, placez le code suivant dans l'événement "OnActivate" de la fiche "Expo": En effet, la
propriété "picture" possède une méthode "loadfromfile" permettant de charger une image. Taper
entre parenthèse et entre cote le nom du fichier, du lecteur et du chemin.
9
Module Delphi Chapitre II
Troisième solution: proposer à l'utilisateur de choisir lui-même l'image qu'il veut voir. Pour cela, on
utilise un des composants de dialogue standard proposés par Windows.
Supprimez le code figurant sur la figure précédente. Ajouter un bouton dont le nom est "Charger" sur
la seconde fiche. Ajouter sur cette même fiche un OpenDialog à partir de la palette de composants
que l'on appellera "Ouvrir".
Voici comment se présente la fiche
contenant le nom du fichier choisi. Il est fortement conseillé de tester le résultat de la méthode
"execute" avant d'utiliser "Ouvrir.filename", car si l'utilisateur abandonne le dialogue ("cancel") la
propriété "filename" n'est pas utilisable. Il est bien entendu possible de spécifier le répertoire de
départ, le ou les extensions de fichiers acceptées par défaut, etc. Ces différentes améliorations sont
laissées comme exercice.
11
Module Delphi Chapitre II
6°) Conclusion
Le petit exemple construit ci-dessus a pour but de:
- montrer quels sont les principes de base à utiliser pour construire une application avec Delphi.
- montrer qu'avec quelques lignes de code il est possible de construire une application fonctionnelle,
sûre et d'un aspect propre
- donner envie de réfléchir sur de nouveaux problèmes à résoudre à l'aide de Delphi Rappelons
encore que :
Delphi permet d'obtenir des programmes dont les performances sont au moins aussi bonnes que
celles obtenues avec le meilleur compilateur C, car derrière Delphi il y a du C pour ce qui est de la
génération du code et de l'optimisation.
12
Module Delphi Chapitre II
7°) QCM
1. Donner les noms par défaut d’un projet, d’une unité, d’une fiche.
2. Comment changer le titre d’une fiche ?
3. Quel est le rôle du composant Edit
4. Quel est l’événement qui se déclanche quand on saisie dans Edit ?
5. Quelle est l’instruction qui nous permet d’appeler la fiche nommée Expo.
6. Quel est le code ajouté par Delphi à l’appel de la fiche ?
7. Quelle est l’instruction qui nous permet de charger le ficher image :
c:\Exos\premiers\Chimical.bmp dans le composant image1?
8. Quel est le composant de dialogue qui nous permet de charger une image librement d’une
unité de stockage ?
13
Module Delphi Chapitre II
14