Camembert interactif

Description

Cette classe dessine un camembert dans un PictureBox qui réagit au passage de la souris. La part sélectionnée s'éclaire.
La sélection de la part peut aussi être contrôlée manuellement avec la propriété SelectedSlice.
La fonction Draw et est conçue pour être dessiné avec d'autres éléments.
Le camembert peut prendre la forme d'une couronne, être explosé, avoir une ombre ...
L'affichage d'une légende fléchée et d'un titre est prévu.
Les propriétés ToolTipText, Name, Value et Tag sont intégrées pour chaque part du camembert, représentées par une classe à part, PieSlice.
L'événement SliceMouseMove est appelé quand l'utilisateur passe sur une part et SliceClick, quand il clique dessus.

Utilisation de la classe :
1. Déclarer une instance de la classe dans une Form
ex. : Public WithEvent MonCamembert As Pie
2. Dans le Form_Load, initialiser le camembert
ex. : Set MonCamembert = New Pie
3. Ajouter les parts de camembert avec la méthode AddSlice
ex. : MonCamembert.AddSlice "Part 1", 500, vbRed
4. Indiquer un PictureBox de destination (Container)
ex. : Set MonCamembert.Container = Picture1
5. Préciser l'emplacement du centre du camembert, si nécessaire (XCenterPos, YCenterPos), son rayon (Radius)
Pour les couronnes, augmenter la propriété SmallRadius
Pour une explosion, augmenter la propriété SeparationRadius
4. Appeler la procédure Draw en précisant un objet Timer pour l'argument SpecialEffectsEngine
ex. : MonCamembert.Draw , Timer1

Pour dessiner sur l'imprimante, appeler la fonction Draw en veillant à préciser Dest=Printer et ClearDest=False
ex. : MonCamembert.Draw Printer, , False

Un module contient une fonction permettant de créer ce graphe à partir d'un Recordset ADO : modPie, fonction DataBindPie(Pie, Recordset, NameField, ValueField)
Le ZIP contient les deux classes et le module contenant la fonction DataBindPie et est accompagné d'une fenêtre de démonstration avec possibilité de se connecter à une feuille Excel.

Source / Exemple :


Tout est dans le ZIP.

Conclusion :


J'attends vos commentaires sur ce graphe interactif.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.