Débuter avec le langage Delphi étape par étape
…
Delphi est un environnement de programmation largement employé pour créer des applications Windows.
Delphi permet d'utiliser le langage Pascal
Comme beaucoup de logiciels, Delphi existe en plusieurs versions (Delphi1,...,
Delphi7, Delphi 2006,…, Delphi 2010, Delphi XE)
Le présent cours utilise le Borland Delphi 7
Le but du cours est d’apprendre la programmation des Bases de données avec Delphi
Eléments de programmation avec Delphi
Palette des composants Barre d’outils Barre de menus
…
Delphi permet de créer une seule application à la fois, ouverte en tant que projet
Un projet est l’état non compilé d’une application
Une application Windows est constituée de fenêtres. Le projet Delphi qui génère l’application contient donc ces fenêtres : les fiches
A chaque fiche est adjointe une seule unité ( code en langage Pascal qui décrit le
contenu de la fiche (boutons, menus, cases à cocher,….) et son fonctionnement ( ce qui
se passe lorsqu’on clique un bouton ) et bien d’autres choses)
: il est possible d’utiliser des unités qui ne sont associées à aucune fiche
Un projet Delphi est constitué d’un fichier projet ,d’unités et de fiches
Le fichier projet porte l’extension .DPR
Chaque fiche est stockée dans un fichier avec l’extension .DFM
Chaque unité est stockée également dans un fichier portant l’extension .PAS
La fiche et son unité associée portent le même nom de fichier (Delphi ne demande ce nom qu’une seule fois et l’utilise pour l’unité et pour la fiche)
: si la fiche est stockée dans un fichier Somme.DFM, son unité associée sera stockée dans le fichier Somme.PAS
Lors de la compilation, chaque fiche (fichier .DFM) avec son unité (fichier .PAS) seront transformées en un seul fichier (.DCU)
Tous les fichiers .DCU seront transformés en un seul fichier exécutable .EXE qui représente l’application Delphi générée.
: Le fichier .EXE porte le même nom que le fichier projet .DPR
Extension Description
DPR Delphi Project : contient l’unité principale du projet
DFM Delphi ForM (fiche Delphi) : contient la structure de la fiche
PAS PAScal : contient une unité écrite en Pascal
DCU Delphi Compiled Unit (unité compilée Delphi ) : forme compilée et combinée d’un .PAS et d’un .DFM optionnel
~??? Fichier de sauvegarde temporaire
EXE EXEcutable : le résultat final de la compilation. Il est seul suffisant pour le fonctionnement de l’application
RES RESource : contient les ressources de l’application tel que son icône.
DOF
DSK
CFG
Ces fichiers contiennent les options du projet , les options d’affichage
Fichier projet
.DPR
Unité 1
.PAS
Fiche1
.DFM
Fichier 1
.DCU
Unité 2
.PAS
Fiche2
.DFM
Fichier 2
.DCU
Fichier 3
.DCU
Unité 3
.PAS pas de fiche associée
Fenêtre 1 Fenêtre 2
Application fichier .EXE
Projet Compilation Application
Le texte du fichier projet (.DPR) est généré entièrement par Delphi ( et non pas par le programmeur). Il représente le programme principal
Pour afficher le texte de ce fichier, deux méthode:
Menu Voir | Unités (CTRL+F12) puis sélectionner le nom du fichier projet
Menu Projet| Voir le source
Begin et End) précise les premières instructions à exécuter au démarrage de l’application
Delphi permet de créer des applications Windows ( possibilité de l’interaction avec l’utilisateur à l’aide des: fenêtres, boutons, case à cocher, menus, listes, …..)
Chaque élément d’une fenêtre est dit : Composant et il est accessible à partir de la palette des composants
Chaque fiche, chaque composant possède une liste de propriétés et une liste d’événements
Les propriétés sont des paramètres réglables pour un composant. Par exemple : les dimensions, les couleurs, les polices, le titre d’une fenêtre, le texte d’un bouton,…. une partie d’événements est provoquée lors de l’utilisation des composants et des fenêtres tel que les clics et les mouvements de la souris, les frappes de touches.
D’autre partie d’événements est provoquée lorsqu’une fenêtre soit visible, invisible, lorsqu’une case à cocher est cochée ou un élément d’une liste est sélectionné.
Une unité est un fichier séparé pouvant contenir des constantes, des types, des variables et des procédures et fonctions disponibles pour la construction d’autres applications.
L’utilisation des unités permet de partager des données et des procédures et fonctions entre plusieurs applications.
UNIT Nom_unite;
INTERFACE
[ Déclarations publiques ]
IMPLEMENTATION
[ Déclarations privées ]
[ Corps des procédures et des fonctions ]
[INITIALIZATION ]
[ Code d’initialisation ]
[FINALIZATION ]
[ Code de finalisation ]
END.
Unit formes ;
Interface
Const pi=3.14 ;
Function surfCercle(R: Real): real;
Function PerimRect (Long, Larg:Real):Real;
Implementation
Function surfCercle; {Pas besoin de répéter les paramètres}
Var s: real;
Begin
s:=R*R*Pi;
Result :=s;
End ;
Function PerimRect;
Begin
result :=(long+larg)*2;
End ;
End.
Eléments de programmation avec Delphi réalisé par Khadraoui.F 20
…….
Uses formes;
Var A,B,C,P: real;
…….
P:=PerimRect(A,B);
…….
Label.caption := FloatToStr ( surfCercle(c) );
….
Composant
Interface partie visible du composant
Propriétés
Caractéristiques visibles ou invisible du composant
Méthodes Procédures et Fonctions modifiant l’état du composant
Évènements
Réponses à des Evénements impliquant le composant
Deux moyens pour modifier les propriétés d’un composant :
Le composant
La propriété
La valeur de la propriété
Pour utiliser une propriété d’un composant dans du code pascal (précisément dans une procédure interne à la fiche qui contient le composant) il faut écrire :
Button2 . Height := 45;
Le composant La propriété
Les méthodes sont des procédures et des fonctions internes aux composants.
Les méthodes font tout le travail d’un composant.
De même qu’une propriété, une méthode doit être précédée par le nom du composant qu’il manipule.
Button2 . Hide ;
Button2 . Show ;
Pour masquer le bouton
Pour réafficher le bouton
La liste des évènements est spécifique à chaque composant.
Elle est listée dans l’onglet évènement de l’inspecteur d’objets. il est possible d’assigner une procédure à un des évènements d’un composant, comme suit :
Sélectionner le composant qui déclenche l’évènement
Aller à l’onglet évènement de l’inspecteur d’objets
Effectuer un double clic dans la zone blanche en face du nom de l’évènement à traiter
la procédure sera générée
La fiche est un composant conteneur (peut contenir d’autres composants)
La fiche ne se crée pas depuis la palette des composants
Pour créer une nouvelle fiche (Ajoutée au projet ouvert) :
Pour retirer la fiche du projet :
Pour afficher la liste des fiches du projet :
Propriété Type description
Name String Indique le nom du composant utilisé dans le code de l'application
Caption String Spécifie une chaîne de texte permettant à l'utilisateur d'identifier le composant. Pour la fiche le texte s’affiche sur sa barre de titre
Height Integer Indique la taille verticale du composant, exprimée en pixels.
Width Integer Détermine la taille horizontale, exprimée en pixels, du composant ou de la fiche.
Left Integer Détermine la coordonnée horizontale, exprimée en pixels relativement à la fiche, du bord gauche d'un composant.
Color Tcolor Indique la couleur d'arrière-plan du composant.
Font Tfont Détermine les attributs du texte écrit au-dessus ou dans le composant.
Hint String Contient la chaîne de texte (conseil ou info bulle) apparaissant lorsque l'utilisateur déplace la souris au-dessus du composant.
Il faut aussi affecterTrue à la valeur de la propriété ShowHint
Visible Boolean Détermine si le composant apparaît à l'écran.
Les propriétés précédentes sont valables pour plusieurs composants qui vont venir par la suite de ce chapitre
Evènement Description
OnClick Se produit quand l'utilisateur clique sur le composant. Pour une fiche, il se produit si l'utilisateur clique sur une zone vide de la fiche ou sur un composant désactivé.
OnDblClick Se produit quand l'utilisateur double-clique avec le bouton gauche de la souris alors que le pointeur de la souris est au-dessus du composant.
OnMouseMove Se produit quand l'utilisateur déplace le pointeur de la souris au-dessus d'un contrôle.
OnClose Se produit quand la fiche se ferme.
OnHide Se produit quand la fiche est cachée (c'est-à-dire quand la propriété
Visible de la fiche prend la valeur False).
OnShow Se produit quand la fiche est affichée (c'est-à-dire quand la propriété Visible de la fiche prend la valeur True).
Méthode Description
Close Est une procédure sans paramètre qui ferme la fiche
Quand la fiche principale de l'application se ferme, l'application se termine.
Show Est une procédure sans paramètre qui affiche la fiche Hide Est une procédure sans paramètre qui cache la fiche
Un composant Label permet d’inclure facilement du texte sur une fiche.
Il peut contenir jusqu’à 255 caractères
En plus les propriétés Name, Caption, Width, Height, Left, Hint, ShowHint, Color,
Font, visible, le composant label possède les propriétés suivantes :
Propriété Type description
AutoSize Boolean Spécifie si le label se redimensionne automatiquement pour s'adapter à son contenu. La valeur par défaut de cette propriété est True WordWrap Boolean Autorise les retours à la ligne pour permettre d’afficher plusieurs lignes à l’intérieur du label. AutoSize doit être False pour permettre l’utilisation de plusieurs lignes.
Un composant Edit permet de proposer une zone d’édition.
Ce composant permet d’entrer une information quelconque tapée au clavier.
En plus les propriétés Name, Width, Height, Left, Hint, ShowHint, Color, Font,
visible, AutoSize (pour ajuster la largeur) le composant Edit possède les propriétés spécifiques suivantes :
Propriété Type description
Text String Contient le texte entré dans la zone d’édition. C’est aussi en modifiant cette propriété que l’on fixe le contenu de la zone MaxLength Integer Spécifie le nombre maximum de caractères que l'utilisateur peut entrer dans la zone Edit. Mettre 0 pour ne pas donner de limite (par défaut)
PasswordChar Char À utiliser lorsqu’on veut masquer les caractères tapés, comme pour les mots de Passe. Utiliser par exemple le caractère « * » pour masquer et le caractère « #0 » pour ne pas masquer
En plus les évènements OnClick, OnDblClick, OnMouseMove, le composant Edit possède l’évènement spécifique suivant :
Evènement Description
OnChange Se produit quand le texte de la zone de saisie a peut-être changé.
Le composant Button sert en général à proposer à l’utilisateur une action.
Comme la plupart des composants, le composant Button possède les propriétés
Name, Caption, Width, Height, Left, Hint, ShowHint, Font, Visible, WordWrap
Méthode Description
Clear Est une procédure sans paramètre qui efface tout le texte de la zone de saisie.
ClearSelection Est une procédure sans paramètre qui efface le texte sélectionné de la zone de saisie.
Les évènements OnClick, OnMouseMove
ListBox permet d'afficher une collection d'éléments dans une liste déroulante..
Il est possible de sélectionner un ou plusieurs éléments (mais pas d’édition).
En plus les propriétés Name, Width, Height, Left, Hint, ShowHint, Color, Font,
visible, le composant ListBox possède les propriétés spécifiques suivantes :
Propriété Type description
Sorted Boolean Spécifie si les éléments de la liste sont triés par ordre alphabétique.
MultiSelect Boolean Détermine s’il est possible de sélectionner plusieurs éléments à la fois.
Items TString Est une propriété Objet qui contient les éléments (les chaînes de caractères) qui apparaissent dans la liste. Elle dispose ses propres
propriétés et méthodes:
Count : est une propriété (Integer) qui indique le nombre des éléments de la liste.
Add(str) : est une méthode (fonction) qui ajoute la chaine « str » à la liste des éléments
Clear : est une méthode (procédure) qui vide la liste.
Méthode Description
Clear Est une procédure sans paramètre qui efface tous les éléments de la liste. C’est l’équivalent de Items.Clear
ClearSelection Est une procédure sans paramètre qui désélectionne tous les éléments de la liste (attention ! C’est différent de la méthode ClearSelection de Edit)
Le composant Memo permet l’édition du texte sur plusieurs lignes.
Il stocke le texte sous forme de lignes: chaque ligne est une chaine de caractère.
En plus les propriétés Name, Width, Height, Left, Hint, ShowHint, Color, Font,
visible, le composant Memo possède les propriétés spécifiques suivantes :
Propriété Type description
Lines TString Est une propriété Objet qui contient les lignes (les chaînes de caractères) du texte. Elle dispose des propriétés et méthodes analogues à celles de la propriété Items de ListBox
Similaires à ceux de Edit ( OnChange, OnClick, OnDblClick, OnMouseMove)
Similaires à celles d’un Edit ( Clear, ClearSelection)
BitBtn (bouton Bitmap) est un composant de l’onglet Supplément de la palette des composants.
Il représente un bouton avec une image sur sa face..
Les boutons bitmap se comportent de la même manière que les composants bouton.
Eléments de programmation avec Delphi
En plus les propriétés Name, Caption, Width, Height, Left, Hint, ShowHint, Color,
Font, Visible, ce composant possède les propriétés spécifiques suivantes
Propriété Type description
Glyph TBitmap Spécifie le bitmap (image) qui apparaît sur le bouton BitBtn.
Kind TBitBtnKind Détermine le type du bouton bitmap. Le type TBitBtnKind définie plusieurs constantes pour des boutons Standards :
bkOK : bkNo :
bkCancel : bkYes :
Similaires à ceux de Button
Conception et Réalisation d’une base de données
Eléments de programmation avec
Delphi
Bases De Données avec Delphi
Définition d’une Base De Données
Exemples de BDD
Propriétés d’une BDD
Système de Gestion de Base de Données (SGBD)
Plan
Le modèle relationnel
Structure d’une BDD
Démarche de conception
Etudes de cas
Etapes de réalisation d’une BDD
Une Base De Données (BDD)est un ensemble structuré de données enregistrées sur des supports accessibles par l’ordinateur, pour satisfaire un ensemble d’utilisateurs de façon sélective.
Le volume des données généré par les activités humaines croît avec le développement de notre civilisation.
Ces données sont souvent gérées par des moyens informatique
Les données d’un établissement d’enseignement, d’une entreprise, d’une banque , d’un hôpital, ….etc sont souvent des ensembles de même structure. Par exemple dans une entreprise:
Liste des membres du personnel : pour chaque personne, on enregistre le nom, prénom, adresse, sexe, date de naissance, date de recrutement, fonction dans l’entreprise, etc.
Liste de produits dans le stock : pour chaque produit, on garde : la référence, désignation, quantité en stock, prix unitaire, taux TVA, etc.
Données
Données
BDD du
Stock
BDD du
Personnel
Entreprise
données
BDD de la scolarité
BDD de la bibliothèque
Etablissement d’enseignement
Exhaustivité des données la BDD doit contenir toutes les informations requises par les traitements attendus.
Exemple : si une personne est absente dans la BDD du personnel, elle risque de ne pas être payée
Données non redondantes (unicité) une information ne sera pas répétée plusieurs fois dans une BDD.
Exemple : si une personne est enregistrée deux fois, elle risque de toucher double paye !?
Données structurées les données d’une BDD doivent être réparties d’une manière logique en des ensembles de même structure.
Exemple : on ne peut pas mettre ensemble les informations des produits et celles des clients, il faut les séparer.
Données en liaison les données d’une même BDD doivent avoir des relations entre elles et ne peuvent être toutes indépendantes les unes des autres.
Exemple : les notes dans une BDD d’un établissement d’enseignement dépendent des étudiants et des formations.
Le logiciel qui gère une BDD s’appelle un Système de Gestion de Base de
Données (SGBD) (DBMS en anglais, pour Data Base Management System).
Delphi, ACCESS, DBASE, FoxPro, Oracle, Clipper, SQL server, , etc.
Définir la structure de la BDD.
Conserver les données sur les Disques.
Rechercher les données selon les critères des utilisateurs.
Assurer la sécurité et confidentialité des données surtout dans un environnement multiutilisateurs.
Un modèle de données (de BDD) est un ensemble de règles selon lesquelles les données sont structurées et organisées. Il existe plusieurs modèles de BDD :
Modèle HIERARCHIQUE
Modèle RESEAU
Modèle Orienté Objets
Modèle RELATIONNEL (le plus répandu)
Une BDD est un ensemble de données organisé sous forme d’une ou plusieurs tables de données.
Chaque table représente un ensemble de données relatives à un domaine ou une entité bien déterminée.
Des liaisons existent entre tables qui dépendent les unes des autres, c’est la raison pour laquelle, elles sont rassemblées dans une même BDD.
T1
T2
T3
R2
R1 BDD
T1, T2, T3 : Tables
R1, R2 : Relations
Une table est un ensemble de données organisées en lignes et en colonnes.
Les lignes sont appelées : Enregistrements
Les colonnes sont appelées : Champs
Table 1 Table 2
Enregistrement 1
Champ1 Champ2 Champ3
Enregistrement 2
Table 3
Référence Désignation Prix unitaire Quantité en stock
01 Lait liquide 25 DA 3000
02 Café 400 DA 200
03 Sucre 60 DA 100
04 Lait en poudre 170 DA 50
Nom Prénom Adresse Sexe Date naissance
Date recrutement
Allaoui Ahmed 25 rue Biskra, Batna M 12/04/70 02/06/94
Zidani Samia 15 cité 150 log, Batna F 14/01/80 10/04/05
Ben Cherif Mohamed N 123 bloc A2, cité 1200 log, Batna
Une BDD peut stocker une quantité considérable d’informations, celles-ci peuvent évoluer dans le temps et peuvent subir des mises à jours.
Vu l’importance d’une BDD, sa création doit être réfléchie. La meilleure façon de la concevoir et d’anticiper tous les besoins en information et à long terme.
Toutefois, une BDD peut être conçue par approche successive.
Avant de se lancer dans la création d’une BDD, on devrait prendre quelques instants pour structurer nos besoins en information. On propose les étapes d’analyse suivantes :
Module Informatique 8
Conception d’une Base de données
Définir l’objet ou le domaine d’étude et décrire tous les paramètres le décrivant.
Demarche de conception
Conception d’une Base de données
Etudiants
NumIns*
Nom
Prénom
DateN
Modules
CodeM *
Intitulé
Coef
Notes
NumIns*
CodeM*
Note
(NumIns*, nom, prénom, dateN)
(CodeM*, Intitulé, Coef)
(NumIns*, CodeM*, Note)
Conception d’une Base de données
Etudiants
NumIns*
Nom
Prénom
DateN
Modules
CodeM *
Intitulé
Coef
Notes
NumIns*
CodeM*
Note
Clé primaire Clé primaire composite Clé primaire
Un étudiant peut suivre plusieurs modules
Un module peut être suivi par plusieurs étudiant
Relation plusieurs à plusieurs (N à M)
Entre les tables Etudiants et Modules
Table de jointure
Conception d’une Base de données
Commandes
NumCmde*
date
CodeCl
Montant
Clients
CodeCl*
Nom
prénom
Adresse
(CodeCl*,Nom, Prénom, adresse)
(NumCmde*, date, CodeCl, Montant)
Conception d’une Base de données
Commandes
NumCmde*
date
CodeCl
Montant
Clients
CodeCl*
Nom
prénom
Adresse
Un Client peut passer plusieurs Commandes
Une Commande peut être passée par un seul client
Relation un à plusieurs (1à N)
Entre les tables Commandes et Clients
Clé primaire Clé primaire
Clé étrangère
Conception d’une Base de données
Bureaux
NumBur*
NumBloc
Etage
Enseignants
CodeEns*
Nom prénom
Spécialité
NumBur
(CodeEns*,Nom, Prénom, Spécialité, NumBur)
(NumBur*, NumBloc, Etage)
Module Informatique 11
Conception d’une Base de données
Bureaux
NumBur*
NumBloc
Etage
Enseignants
CodeEns*
Nom prénom
Spécialité
NumBur
Un enseignant peut avoir un seul Bureau
Un bureau peut être attribué à un seul enseignant
Relation un à un (1 à 1)
Entre les tables Enseignants et Bureaux
Conception d’une Base de données
Une fois l’analyse et la conception de la BDD terminées, on doit passer à sa réalisation à l’aide d’un SGBD. Cela nécessite les étapes :
Création des tables de la BDD : la création une table passe par deux étapes :
Création de sa structure (définition des champs)
Saisie des informations (création des enregistrements)
Définition des relations entre tables
Interrogation de la BDD : Une BDD ne doit pas être sans intérêt, elle doit restituer des informations à la demande des utilisateurs. Une demande constitue une interrogation (requête) de la BDD.
Etablissement des états à imprimer : l’utilisateur d’une BDD a toujours besoin d’afficher et d’imprimer des listings (états) contenants des données obtenues à partir des tables ou des requêtes.