Support de formation initiation à Delphi, tutoriel & guide de travaux pratiques en pdf.
INTRODUCTION
Delphi est un système de développement visuel rapide sous Windows (Rapid Application développement) qui permet de créer des applications fenêtrées directement exécutables (.EXE) et redistribuables librement sou Windows ou DOS. Il est à noter qu’i existe une version pour Linux nommée KYLIX (compatible avec les composants CLX, il suffit de recompiler). Sa simplicité d’emploi autorise une utilisation immédiate, car il suffit de cliquer-glisser des composants dans une fiche et de gérer quelques événements pour créer des applications simples. Des assistants, modèles et tuteurs interactifs facilitent la prise en main du logiciel.
Delphi utilise le langage Pascal Orienté Objet (il est toutefois possible d’utiliser d’anciennes sources en Pascal standard grâce au compilateur en ligne de commande). Ce langage est facile à apprendre et beaucoup plus sim ple que le C++ traditionnel. Les objets utilisés ont des propriétés et des méthodes. Les opriétés sont les caractéristiques de l’objet (couleur, taille, …) tandis que les méthodes sont les procédures (classiques ou événementielles) et fonctions qui y sont rattachées.
Des outils puissants sont rattachés à Delphi. Le canevas facilite les graphismes et évite l’appel aux API de Windows (cette solution reste évidemment possible). Les principales boîtes de dialogue de Windows existent en tant qu’objets et sont facilement réutilisables. L’utilitaire BDE permet la création et l’accès aisé aux bases de données de tous types. La liaison avec ACCESS se fait directement, grâce à un driver natif intégré.
Il est facile d’écrire des DLL utilisables par n’importe quel autre programme sous Windows. Ces DLL peuvent contenir des fiches Delphi, des procédures, des données ou des ressources graphiques (bitmaps, icônes, curseurs).
La création d’objets (visuels ou non) réutilisables est un gain de temps appréciable pour le développement. L’intégration des objets Active Xpeut compléter la bibliothèque existante.
Il existe d’autres systèmes de développement rapide sous Windows. Delphi est particulièrement bien placé:
• moins de lignes de code et rapidité de compilation
• possibilité d’utiliser des procédures événementielles partagées
• notion de modèles réutilisables (fiches, menus, objets)
• orientation objet totale et native
• richesse des composants fournis: pas d’OCX à acheter en complément
• assembleur intégré, compilateur en ligne de commande
• débogage facile au niveau du source et du processus
• possibilité d’allocation dynamique de la mémoire en utilisant les pointeurs
Nouveautés
Consulter l’aide en ligne sous « nouveautés » On note des:
• la vue arborescente des objets
• le débogueur d’applications WEB, serveur WEB
• de nombreux nouveaux composants dont
o « TActionManager » qui permet de centraliser les procédures événementielles de chaque fenêtre
o les composants CLX qui peuvent être portés sur LINUX o les composants ADO
PROGRAMMATION ORIENTEE OBJET
PRESENTATION
Sans le savoir, vous utilisez des objets dans votre ordinateur. Par exemple, vous désirez changer la carte graphique. C’est un objet: vous ne connaissez pas exactement son fonctionnement interne mais vous désirez des résultats. Vous pouvez interchanger facilement cet objet puisque l’interface est standard (connecteurs). Vous n’avez donc pas besoin de changer toute l’unité centrale ou de faire des études poussées en électronique pour ce faire. Il suffit d’échanger la carte par une autre plus performante.
L’avantage de cette notion d’objet est la possibilité de partager les composants avec d’autres utilisateurs. Vous pouvez donner votre ancienne carte vidéo à l’un de vos collaborateurs. D’autre part, il n’est pas nécessaire de connaître le détail du fonctionnement de l’objet pour l’utiliser. La maintenance est facilitée, il suffit d’échanger l’objet sans toucher au reste de l’application.
CONCEPTS DE BASE
Propriétés
Procédures
événementielles
Fonctions
Ce sont les composants de l’objet. Sa taille, sa couleur, son nom, … sont des propriétés.
Les propriétés sont initialisées à la création de’objetl et certaines peuvent être modifiées par programmation. Delphi possède un éditeur de propriétés qui permet de les modifier en phase de conception de projet.
Méthodes
Les méthodes relèvent du comportement de l’objet: lles recensent ce que l’objet « sait » faire. S’il sait par exemple faire une multiplication, le nom du module de programme concerné est appelé méthode.
Fonctions
Les fonctions sont des modules (ou sous-programmes) qui retournent une seule valeur ou résultat après acceptation d’un certain nombre ‘arguments d (0 à n).
Procédures simples
Les procédures sont des modules qui effectuent des actions. Elles acceptent également des arguments. Elles peuvent retourner des arguments modifiés (s’ils sont déclarés en donnée-résultat).
Procédures événementielles
Elles conditionnent les réactions de l’objet vis-à-vis des actions extérieures (clavier, souris, …). Ce sont des procédures appelées par nu déclencheur. Windows recense un grand nombre d’événements dont la nature est précisée par un système de messages internes. Par exemple, le fait d’appuyer sur une touche du clavier ou de déplacer la souris provoque l’émission d’un message interne à Windows qui pourra être traité par la procédure événementielle.
Programmation structurée
Contrairement au premiers langages (basic) qui utilisaient des étiquettes avec des instructions de saut de type « goto » où l’on risquait un enchevêtrement dans le déroulement du programme, la POO demande une programmation modulaire et le langage Pascal est particulièrement adapté. L’écriture d’un programme se fait sous forme de blocs hiérarchisés, ce qui permet une meilleure compréhension. L’indentation des modules donne une lecture proche du développement algorithmique.
L’encapsulation
C’est le concept de base de la POO. L’idée est de assembler les données et les modules de programme dans une seule et même structure appelée objet. Les données sont appelées « propriétés » et les modules sont les « méthodes ». On peut utiliser des méthodes de l’objet sans connaître le détail de l’implémentation de chacune d’elle. L’encapsulation protège les données contre leur utilisation par d’autres modules extérieurs.
L’héritage
Les objets sont capables d’être dérivés à partir objets d’ préexistants. Les objets « fils » héritent les propriétés et méthodes de leur parent de façon automatique. Il suffit alors de rajouter des propriétés et méthodes spécifiques: ce procédé est appelé programmation par exception. De plus, tous les changements effectués dans l’objet « parent » sont répercutés automatiquement sur les objets « descendants » sans manipulation supplémentaire.
Le polymorphisme
Le nom d’une méthode existante peut être réutilisé dans un objet « fils » en déclarant une implémentation différente. Le polymorphisme est la capacité de désigner des méthodes différentes (bien que portant le même nom) en fonction de l’objet concerné. Par exemple le signe « + » peut servir à l’addition, à la concaténation ou à l’incrémentation d’une date.
Dans le cas de redéfinition(OVERRIDE) d’une méthode, il est possible de réutiliser le code hérité (INHERITED) et d’ajouter simplement quelques lignes (qui pourront par exemple redéfinir certaines propriétés).
Développeur ou utilisateur?
On distingue deux catégories de personnes. Les développeurs qui connaissent bien la POO et qui créent des objets et les utilisateurs qui construisent leurs applications à partir de ces objets préfabriqués.
LEXIQUE
La source principale de confusion pour les débutants en POO est le grand nombre de nouveaux termes techniques
Classe (CLASS)
C’est l’ensemble des définitions, propriétés et méthodes qui serviront à créer l’objet. Elle définit la structure de l’objet et quelles en seront les propriétés. Ses modifications seront répercutées sur les classes descendantes.
Objet (OBJECT)
C’est une instance de la classe. Il a une existence physique et occupe de la place en mémoire. Il est créé à partir d’une classe. Toutes les modifications effectuées en exécution n’affectent en rien les descendants de sa classe.
Instanciation
C’est le processus qui crée en mémoire un objet basé sur une classe.
Constructeur (CONSTRUCTOR)
C’est le module de la classe qui dit au système comment effectuer l’instanciation de celle-ci. Il réserve de la place mémoire et initialise certaines propriétés. Delphi appelle cette méthode « Create ».
Destructeur (DESTRUCTOR)
C’est l’inverse du constructeur. Ce module est chargé de libérer la mémoire occupée par l’objet. (« Destroy » en Delphi).
Classe ancêtre
C’est une classe à partir de laquelle sont héritées les propriétés et les méthodes. Ce n’est pas obligatoirement la classe parente immédiate, mais elle peut être plus élevée hiérarchiquement.
Classe parent
C’est la classe immédiatement supérieure au niveau hiérarchique
Classe enfant
C’est la classe immédiatement inférieure au niveau hiérarchique
Classe descendante
Son niveau hiérarchique est inférieur à la classe considérée. Ce n’est pas obligatoirement la classe enfant qui est située directement au niveau inférieur suivant.
Propriétaire(OWNER)
Une application est propriétaire des fenêtres qu’lel manipule. Une fenêtre est propriétaire des objets quelle contient. Un panneau, comme la barre d’outils, est propriétaire de ses turbo-boutons…
Héritage
Une classe hérite automatiquement des propriétés et méthodes de ses ancêtres.