TP : Polymorphisme

Nous allons nous intéresser au polymorphisme sous Delphi avec l'exemple très simple suivant :

Chaque classe dispose d'une méthode afficher qui renvoie une chaîne de caractères. Cette méthode sera redéfinie (surchargée) pour chaque classe pour renvoyer le nom de la classe.

(1) Créer un nouveau projet.

(2) Sur la fiche vierge, placer trois boutons qui affichent (propriété caption)

  • Affecter cercle
  • Affecter rectangle
  • Qui est qui ?

(3) Écrire une nouvelle unité qui contiendra la définition des classes TObjetGraphique, TRectangle et TCercle.

(4) Déclarer dans la fiche créée au (1) trois variables globales :

  • objet de type TObjetGraphique
  • rectangle de type TRectangle
  • cercle de type TCercle

Les variables rectangle et cercle seront initialisées lors de la création de la fiche (événement OnCreate)

(5) Modifier le code source pour que la fiche réponde aux événements suivants :

  • Bouton "Affecter rectangle" : objet ¬ rectangle
  • Bouton "Affecter rectangle" : objet ¬ cercle
  • Bouton "Qui est qui ?" : MessageDlg(objet.affiche, MtInformation, [mbOk],0);

(6) Lancer le programme... Que remarquez-vous ?

(7) Placer les bons mots-clé (virtual sur la méthode de la classe mère et override sur celle des classes filles) pour que cela marche correctement.