IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Partie III : Créer un composant graphique

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

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 ni 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.