Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DIAGRAMME BATON


Information sur la source

Catégorie :Graphique Source .NET ( DotNet ) Classé sous : Diagramme, Baton, UserControl, Graphics Niveau : Initié Date de création : 10/10/2008 Date de mise à jour : 03/03/2009 16:50:28 Vu / téléchargé: 3 783 / 268

Note :
9 / 10 - par 4 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Pour les besoins d'un logiciel, il a fallu que je développe un diagramme en bâton et je tenais à le partager avec la communauté de codes-sources.

Pour le moment il n'y a pas de bug connu mais un soucis de montée en charge de la mémoire même si cela ne fait pas ralentir l'application.
Chez moi, cela peut monter jusqu'à 400Mo.

Toutes les remarques sont donc bonne a prendre pour améliorer ce petit control :)
 

Source

  • Tout est dans le zip
Tout est dans le zip

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

10 octobre 2008 20:13:11 :
- Ajout du contour suivant l'idée de Redman31100. La valeur par défaut est nothing.
03 mars 2009 16:50:29 :
- Insertion du control dans un projet complet. Si vous avez un soucis d'affichage de la form, pensez a régénérer la solution.

Commentaires et avis

signaler à un administrateur
Commentaire de Redman31100 le 10/10/2008 16:34:08 10/10

Ton contrôle est super ! 10/10 !

Aucun bug, comme amélioration j'ai peut être une idée c'est de faire un contour noir a chaque baton(droit, haut, gauche seulement).

signaler à un administrateur
Commentaire de Redman31100 le 10/10/2008 17:09:59

dans le code du controle diagramme baton, j'ai modifié ceci :

Public Sub New()
        'Valeurs par défaut
        NumOrd = 25
        NumAbs = 70
        name_absc = ""
        name_ord = ""
        cBatonColor = Color.Lime

        InitializeComponent()

        FirstIndex = 1
        Unite_X = (Me.Width - 40) / NumAbs
        Unite_Y = (Me.Height - 40) / NumOrd

        'Tracé des axes
        Draw_Axe()

        'initialisation des valeurs à 5
        For x As Integer = 0 To NumAbs - 1
            Tab_Point(x) = 5
        Next

        'Tracé des batons
        Draw_Baton()
    End Sub

Ensuite en valeur private du controle j'ai ajouté

Private cBatonColor As Color ' couleur des batons

et dans la région propriétés j'ai ajouté

   ' Couleur Baton

    Public Property BatonCouleur() As Color
        Get
            Return cBatonColor
        End Get
        Set(ByVal value As Color)
            cBatonColor = value
            Draw_Axe()
            Draw_Baton()
        End Set
    End Property

Et j'ai modifié ceci :

    Private Sub Draw_Baton()

        Image_Baton = Image_Axe.Clone 'Création de l'image baton


        Dim graph As Drawing.Graphics = Graphics.FromImage(Image_Baton) 'on récupère l'objet graphics de cette image pour dessiner
        graph.SmoothingMode = Drawing2D.SmoothingMode.HighSpeed 'passage en mode HighSpeed

        'boucle sur toutes les valeurs du tableau et affichage des batons
        For x As Integer = 0 To NumAbs - 1
            Tab_Point(x) = Math.Ceiling(Tab_Point(x))

            Dim valeur_attenuation As Single = IIf(Tab_Point(x) > NumOrd, NumOrd, Tab_Point(x)) 'au cas ou les valeurs du tableau dépasse de la valeur max
            Dim My_rectangle As New Rectangle(20 + Unite_X * x, 20 + Unite_Y * (NumOrd - valeur_attenuation), Unite_X, Me.Height - 40 - Unite_Y * (NumOrd - valeur_attenuation)) 'création du rectangle suivant la valeur du tableau
            Dim My_Brush As New SolidBrush(cBatonColor)


            'affichage du rectangle
            graph.FillRectangle(My_Brush, My_rectangle.X, My_rectangle.Y, My_rectangle.Width, My_rectangle.Height)

            ' affichage du contour
            graph.DrawLine(Pens.Black, My_rectangle.Left, My_rectangle.Top + My_rectangle.Height, My_rectangle.Left, My_rectangle.Top)
            graph.DrawLine(Pens.Black, My_rectangle.Left, My_rectangle.Top, My_rectangle.Left + My_rectangle.Width, My_rectangle.Top)
            graph.DrawLine(Pens.Black, My_rectangle.Left + My_rectangle.Width, My_rectangle.Top, My_rectangle.Left + My_rectangle.Width, My_rectangle.Top + My_rectangle.Height)
        Next

        'Affichage des coordonnées sur l'image
        If Not Image_Coord Is Nothing Then
            graph.DrawImage(Image_Coord, Me.Width - size_texte.Width, 0)
        End If

        'affichage des images à l'écran
        Flushimage()

    End Sub

Voilà, je remarque que parfois les bordures cote a cote de 2 batons sont pas colinéaires donc ca fait une trait épais.

Voilà

signaler à un administrateur
Commentaire de gillardg le 15/10/2008 16:11:49 8/10

salut , bon travail ! merci 8/10

signaler à un administrateur
Commentaire de Redman31100 le 15/10/2008 16:18:56

Merci lesdis d'avoir amélioré suivant mes idées ^^

signaler à un administrateur
Commentaire de sediq le 15/10/2008 17:26:01

comment activer ce control? il n'est lié à aucun projet

signaler à un administrateur
Commentaire de lesdis le 15/10/2008 17:31:36

Il suffit de l'ajouter dans un projet et de faire un glisser/déposer de la boite à outils vers ta form

signaler à un administrateur
Commentaire de sediq le 15/10/2008 17:39:01

Ah oui j'ai pas fait attention à la boite à outils Merci LESDIS.

signaler à un administrateur
Commentaire de sediq le 15/10/2008 17:57:50 10/10

il n'y a pas un moyen de rendre ce diaqramme dynamique cad on précise les valeurs des le début pour reprenter des statistiques.

signaler à un administrateur
Commentaire de Redman31100 le 15/10/2008 17:59:34

C'est vrai que tu peux pas faire un redim sur la propriété pour agrandir. Moi j'ai réfléchi mais je trouve pas comment faire car redim ca marche ça me dit que la valeur est readonly. pourtant la propriété elle me semble qu'elle est pas readonly

signaler à un administrateur
Commentaire de lesdis le 15/10/2008 19:40:03

Vous pouvez utilisé la propriété Values pour entrer directement des valeurs prédéfinies.

Par il faut que ce soit un tableau de single dont la taille correspond aux nombres de colonnes du diagramme.

signaler à un administrateur
Commentaire de Ouggada le 03/03/2009 10:49:37

salut!!
j'aimerai utiliser cette source mais je ne sais vraiment
pas comment faire pour la lier à mon projet et accessoirement à un bouton!

En effet lorsque je fais :
Diagramme_Baton.Sow()

j'ai le message suivant :
Une référence à un membre non partagé requiert une référence d'objet.

Merci pour vos réponses,
Cordialement

signaler à un administrateur
Commentaire de lesdis le 03/03/2009 11:23:08

Comme dis plus haut :

Il suffit de l'ajouter dans un projet et de faire un glisser/déposer de la boite à outils vers ta form.

signaler à un administrateur
Commentaire de Ouggada le 03/03/2009 14:26:31

yo!
je suis désolé, je suis ptetre un peu lent mais justement je ne comprend pas du coup à quoi correspond le glisser/déposer de la boite à outils vers ma form???

Merci de ta réponse en tout cas!

signaler à un administrateur
Commentaire de lesdis le 03/03/2009 14:42:35

Ce diagramme est un controle donc une fois le fichier ajouté a ton projet, tu peux l'ajouter sur ta form comme tu peux le faire avec un button.

Si tu ne le trouve pas dans la boite a outils, hésite pas à revenir. Au pire j'ajouterais un projet complet dans la source

signaler à un administrateur
Commentaire de Ouggada le 03/03/2009 15:07:54

je suis désoler mais j'ai essayer et je n'ai rien trouver...
je me sens mal d'être le seul à pas avoir trouver la solution...
Enfin!
Si tu peux m'aider, j'en serai ravi.
ReMerci d'avance!

signaler à un administrateur
Commentaire de Ouggada le 03/03/2009 16:40:47 8/10

ça y'est j'ai réussit!
fiou!
il faudrait peut-être que je m'achète une paire de lunette!!

seulement maintenant je ne vois pas comment lier des données d'une colonne d'un datagrid ou autre chose???

En tout cas c'est stylé!! j'aime bien!  8/10

signaler à un administrateur
Commentaire de lesdis le 03/03/2009 16:55:47

Effectivemment, il n'y a rien de prévu pour lier le tableau avec un datasource, une base de donnée, etc.

La seule solution pour le moment est d'utiliser la propriété "Values" qui attend un tableau de single.

Si j'arrive à trouver un peu de temps, je tacherais à rendre ce control plus dynamique.

signaler à un administrateur
Commentaire de Ouggada le 04/03/2009 08:22:10

oki merci pour ta réponse!

je vais essayer de m'y atteler et de voir comment faire!
et pourquoi pas la chance du débutant me permettra de trouver la soolution!
Sur ce je me remet au boulot!

Cordialement, Ouggada.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Graphics ou usercontrol ? [ par sirozz ] Bonjour à tous, je suis en train de faire une application ou je peux "linker" des picturebox grace à des petites flèches pour créer des hierarchies et Diagramme en baton [ par cline612 ] Bonjour, je suis actuellement étudiante en statistique et informatique et pour mon projet de fin d'année, je dois réaliser un programme en VB.Net. Ce Evenements Usercontrol et collection d'objets [ par ABF ] Bonjour, J'ai développé un usercontrol en vb dot net Dans ma form principale je fais : Private colUControl As New List(Of UControl) Ainsi j'ai bien UserControl transparent + label transparent = ocx invisible, Normal ? [ par spongbob ] Bonjour,   <p class="MsoNormal" st Dialogue entre le Form et le User CTRL [ par jeangil ] bonjour,J'e suis débutant en Prg Objet.Avant de me lancer dans l'écriture d'un Composant CTRL ActiveX, j'ai écrit un petit programme avec un Exe Stand Interaction entre une commande et un usercontrol dans une toolbar [ par jp4810 ] Salut, Je développe depuis peu en VB.NET pour un système d'information géographique ARCGIS. Je vous expose mon problème : j'ai créé une toolbar pers Inserer une image dans un bitmap [ par malhivertman1 ] Bonjour, J'aimerai pouvoir récupérer une image de mon disque et la mettre dans une variable de type bitmap pour ensuite pouvoir dessiner dessus en uti Variables et fonctions publiques d'un usercontrol [ par MadM@tt ] Bonjour à tous,rahhhhhhh je vais m'exploser la cervelle !!!Bon alors voilà mon souci :J'ai des variables et fonctions Publiques déclarées dans un user [VB 2005 ] Impression [ par 67Marco ] Bonjour,Le code en VB 6:printer.ScaleMode=6                                    ' Unité en millimètre.'printer.line(0,145)-(1,145)                      UserControl et event Mouse [ par renocmoa ] Bonsoir,Je voudrais savoir comment obtenir que les evenements souris (leav, hover...) soit utilisable avec un user control. En effet, par exemple avec


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.