Partie III : Créer un composant graphique


précédentsommairesuivant

II. Choix du composant à développer

J'ai choisi de développer avec vous un composant qui représentera un graphique circulaire. Ses différents quartiers seront choisi avec une propriété.

Nous verrons comment on peut utiliser les collections pour cette propriété qui devra enregistrer chaque quartier.

De plus, cela permettra de rappeler aux développeurs qui ont quitté l'école depuis longtemps que leurs cours de trigonométrie n'ont pas servi à rien, puisque nous utiliserons les formules trigonométriques pour dessiner les quartiers.

Nous verrons aussi comment on peut détecter dans quel quartier on a cliqué afin d'envoyer des informations détaillées au gestionnaire d'événement.

Finalement, nous verrons, par l'exemple des Hints, comment intercepter un message Windows non standard grâce à la directive de méthode message.

Nous nommerons ce composant TCircleChart. Créez une nouvelle unité CircChart.pas dans le paquet ComposTutoR.bpl.

La classe TCircleChart devra hériter de la classe TGraphicControl. C'est de cette classe qu'il faut hériter lorsqu'on veut créer un composant graphique de toutes pièces.

 
Sélectionnez

type
  TCircleChart = class(TGraphicControl)
  end;
			

À nouveau, nous aurions dû d'abord créer une classe TCustomCircleChart, mais nous oublierons cela pour nous concentrer sur le code utile du composant. Cette habitude de programmation sera détaillée dans le prochain composant, car là nous en aurons besoin.

III. Comment dessiner le contrôle ?

La chose la plus importante dans un composant graphique est sans aucun doute son dessin. Borland a bien fait les choses en ce qui concerne le TGraphicControl, puisque celui-ci propose une méthode virtuelle Paint dans laquelle on peut dessiner sur le composant au moyen de sa propriété Canvas.

Cette méthode est déclarée protégée dans TGraphicControl, et il n'y a aucune raison de modifier cette visibilité, puisque cette méthode ne doit jamais être appelée directement.

 
Sélectionnez

protected
  procedure Paint; override;
			

Nous allons placer un code simple pour l'illustration. Ce code dessine une ellipse de la couleur indiquée par la propriété Color, héritée de TControl. Nous l'améliorerons une fois que la propriété pour les quartiers sera créée.

 
Sélectionnez

procedure TCircleChart.Paint;
begin
  with Canvas do
  begin
    Brush.Color := Color;
    Brush.Style := bsSolid;
    Pen.Style := bsClear;
    Ellipse(0, 0, Width, Height);
  end;
end;
			

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

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.