Developpez.com

Télécharger gratuitement le magazine des développeurs, le bimestriel des développeurs avec une sélection des meilleurs tutoriels

Partie II : Améliorer un composant par héritage


précédentsommaire

IX. Test du composant

Nous en avons terminé avec la création du TDropImage. Vous pouvez le tester de la même façon que décrite en partie I, section III.

Dans le gestionnaire OnCreate de la fiche du projet TestComposTuto.exe, ajoutez le code suivant pour créer dynamiquement un composant de type TDropImage :

 
Sélectionnez

procedure TFormMain.FormCreate(Sender: TObject);
begin
  with TDropImage.Create(Self) do
  begin
    Parent := Self;
    Left := 8;
    Top := 8;
    AutoSize := True;
    Picture.LoadFromFile('Developpez-com.ico');
    OnDrop := DropImageDrop;
  end;
end;
			

Vous pouvez récupérer l'icône Developpez-com.ico à cet endroit.

Déclarez comme suit la procédure DropImageDrop dans la section private :

 
Sélectionnez

private
  { Déclarations privées }
  procedure DropImageDrop(Sender : TObject; X, Y : integer);
			

Et implémentez-là comme ci-dessous :

 
Sélectionnez

procedure TFormMain.DropImageDrop(Sender: TObject; X, Y: Integer);
begin
  ShowMessage(Format('Vous avez déposé l''image aux coordonnées (%d ; %d)', [X, Y]));
end;
			

Exécutez le programme de test, vous pouvez saisir l'image et la déposer n'importe où sur la fiche. Un message apparaît alors vous indiquant les coordonnées où vous l'avez déposée.

X. Intégration dans la palette des composants

Rouvrez le package ComposTutoD.bpl, et son unité RegComposTuto.pas. Modifiez la routine Register comme suit pour intégrer le composant TDropImage dans la palette des composants (n'oubliez pas d'ajouter DropImg dans les uses) :

 
Sélectionnez

procedure Register;
begin
  RegisterComponents('Tutoriel', [TSelectDirDialog, TDropImage]);
end;
			

Compilez, puis rouvrez le projet TestComposTuto.exe. Le nouveau composant TDropImage est intégré à la palette. Vous pouvez voir qu'il a la même icône que le composant TImage, dont il hérite. Si vous voulez modifier l'icône, vous pouvez le faire en ajoutant une ressource de nom TDROPIMAGE dans RegComposTuto.dcr comme indiqué en partie I, section IV-G.

Vous pouvez le placer sur la fiche principale de TestComposTuto. Pour faire un test simple, n'affectez rien à la propriété DropControl et complétez comme suit le gestionnaire d'événements OnDrop :

 
Sélectionnez

procedure TFormMain.DropImageDrop(Sender: TObject; X, Y: Integer);
begin
  ShowMessage(Format('Vous avez déposé l''image aux coordonnées (%d ; %d)', [X, Y]));
end;
			

Pour l'image, vous pouvez reprendre l'icône de Développez.com utilisée dans le test par création dynamique.

Lancez l'application. Vous pouvez prendre l'image et la déposer quelque part sur la fiche.

XI. Conclusion

Nous avons vu comment créer un composant visuel héritant d'un composant existant, en application un des concepts clefs de la POO, la réutilisation du code.

Nous avons également appris à utiliser les méthodes protégées déclarées dans les classes parentes afin d'intercepter les événements en interne, sans affecter les propriétés événements.

Vous pouvez télécharger tous les sources présentés dans ce tutoriel, tels qu'ils sont à ce stade.
Si ce lien ne fonctionne pas chez vous, utilisez celui-ci.

Dans la prochaine section, nous parlerons de la réalisation de composants visuels à partir de rien, en héritant des classes abstraites de la VCL.

XII. Liens utiles

Voici quelques liens utiles en rapport avec ce dont avons parlé dans cette partie :

XIII. Remerciements

Je voudrais adresser un très grand MERCI à Laurent Dardenne pour sa grande aide dans la réalisation de ce tutoriel, autant aux niveaux documentation, fond et forme.

Merci aussi à gege2061 et Bestiol et encore une fois à Laurent Dardenne pour leurs relectures sur la forme et l'orthographe.


précédentsommaire

Tutoriels
Les génériques avec Delphi 2009 Win32 (English version) - également disponible en espagnol et en russe
Réaliser un plug-in comportant un composant
Construire une procédure pointant sur une méthode
Création de composants - en 4 parties
Refactoring avec Delphi 2007
Prise en main de Delphi 2005
Analyseurs syntaxiques - Leur fonctionnement par l'exemple
Créer un fichier d'aide HLP
Pourquoi un paramètre const change-t-il mystérieusement de valeur ?
Sources
SJRDUnits - Routines et classes diverses
SJRDComps - Quelques composants
Projet Sepi
Présentation
FAQ Sepi
Programmes
FunLabyrinthe - Jeu de labyrinthe très spécial et très fun
TrickTakingGame - Jeux de cartes à plis en ligne
MultiAgenda - Agenda multi-répertoires
DecodeFormulaires - Décode les formulaires
Excel --> HTML - Convertisseur de tableaux Excel en HTML
AddressLinks - Lie les adresses Internet et e-mail d'un document HTML
Vipion - Tic Tac Toe sur 4x4 cases avec jeu de l'ordinateur
BigCalc - Calculatrice de haut niveau
Espace paroissial Astérion de Watermael-Boitsfort
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005 Sébastien Doeraene. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.