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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème init variable dans controle utilisateur


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut Problème init variable dans controle utilisateur
    Bonjour,
    J'ai un gros souci pour la création de mon controle utilisateur.

    Dans la classe de mon controle je veux avoir un array de la même longueur que le controle lui même.

    Lorsque le lance la méthode "test", la longueur du table n'est pas du tout égale à la largeur de mon controle ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Class controlegraph
     
    Private tableau(Me.Width) As Integer
     
     
    Public Sub test()
            MsgBox(tableau.Length)
            MsgBox(Me.Width)
     
    End Sub
     
    end class
    Merci d'avance.

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    je comprend pas ton problème ...
    c'est sur la largeur de tes éléments que tu veut agir ??

    explique un peut plus le but de ton code.

    tu a essayé le mode débug pour voir les valeurs que tu récupéraient?
    (hésite pas a passer par des variables intermédiaires)

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut
    Citation Envoyé par hunteshiva Voir le message
    je comprend pas ton problème ...
    c'est sur la largeur de tes éléments que tu veut agir ??

    explique un peut plus le but de ton code.

    tu a essayé le mode débug pour voir les valeurs que tu récupéraient?
    (hésite pas a passer par des variables intermédiaires)
    Mon but est de creer un tableau avec autant de colonne que le largeur du controle (en pixel) soit me.width = tableau.lenght

    C'est pour faire un controle qui affichera une courbe graphique.

  4. #4
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Citation Envoyé par stolken Voir le message
    Private tableau(Me.Width) As Integer
    Sait tu ce que tu déclare ici? Un tableau d'entier

    Citation Envoyé par stolken Voir le message
    MsgBox(tableau.Length)
    Cette commande te retourne le nombre d'élément dans ton tableau

    Citation Envoyé par stolken Voir le message
    MsgBox(Me.Width)
    Ca ca te donne bien ta largeur.

    Le problème c'est que tu as voulu declarer et instancier ta variable tableau en meme temps.

    Au lieu de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private tableau as integer
    tableau = me.width

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Sait tu ce que tu déclare ici? Un tableau d'entier



    Cette commande te retourne le nombre d'élément dans ton tableau



    Ca ca te donne bien ta largeur.

    Le problème c'est que tu as voulu declarer et instancier ta variable tableau en meme temps.

    Au lieu de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private tableau as integer
    tableau = me.width
    C'est bien au tableau à 1 dimension que je souhaite.

  6. #6
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bizarre comme idée

    mais si tu veut faire sa, alors oui il faut que tu fasse comme tu a dit je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim largeurFrom As Integer = Me.Width
     
            Dim tableau(largeurFrom) As Integer
     
            MsgBox("Nombre d'éléments dans le tableau: " & tableau.Length  & vbCrLf & "largeur du formulaire: " & largeurFrom & "pixels")
    et sa fonctionne, je ne voit pas ou est ton problème...
    Tu aura toujours un élément de plus dans ton tableau parce qu'il commence à parti de '0'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    tableau(0)
    tableau(1)
    tableau(2)
    tableau(3)
    ...
    tableau(largeurFrom -1)
    tableau(largeurFrom)
    décalage que tu peut très facilement résoudre

    PS: je veut bien savoir qu'elle est l'intérêt de tout sa

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut
    salut, voici le bon code :

    J'avoue ne pas saisir la nuance entre la déclaration de variable en debut de classe (avec private ou public) et celle dans les procédures (dim).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Class controlegraph
     
    Private tableau(2) As Integer ' je créer un tableau d'un longueur quelquonque
     
    Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
            Dim largeur As Integer = Me.Width ' je recupere la largeur de mon controle
            Dim tableau(largeur) As Integer 'pour definir la longueur de mon tableau
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
     
            MsgBox(tableau.Length & " x " & Me.Width) 'test si les deux valeurs sont egales...
        End Sub
    End Class

    Donc pour info, je fais un controle qui affichera une courbe en temps reel.
    Le tableau aura autant de colonne que d'ordonné, et chaque valeurs du tableau representera les abcisses.

    J'ai pas trouvé de controle tout fait pour faire des courbes en temps reel donc je dois bien me bricoler quelque chose. Si tu as mieux je suis preneur

    En tout cas merci de vos aides.




    Citation Envoyé par hunteshiva Voir le message
    Bizarre comme idée

    mais si tu veut faire sa, alors oui il faut que tu fasse comme tu a dit je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim largeurFrom As Integer = Me.Width
     
            Dim tableau(largeurFrom) As Integer
     
            MsgBox("Nombre d'éléments dans le tableau: " & tableau.Length  & vbCrLf & "largeur du formulaire: " & largeurFrom & "pixels")
    et sa fonctionne, je ne voit pas ou est ton problème...
    Tu aura toujours un élément de plus dans ton tableau parce qu'il commence à parti de '0'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    tableau(0)
    tableau(1)
    tableau(2)
    tableau(3)
    ...
    tableau(largeurFrom -1)
    tableau(largeurFrom)
    décalage que tu peut très facilement résoudre

    PS: je veut bien savoir qu'elle est l'intérêt de tout sa

  8. #8
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 71
    Par défaut
    J'ai crié victoire trop vite ...
    Cela fonctionne quand je lance le debug de mon controle (meme en redimensionnant le controle) mais si j'ajoute mon controle dans une application et que je le redimensionne, au demarrage de l'application le code controlegraph.new est executé mais la valeur me.width est celle que j'ai quand je code mon controle ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Problme de variables dans requete
    Par eown dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/04/2006, 17h05
  2. Réponses: 8
    Dernier message: 23/03/2006, 19h30
  3. problème de variable dans formulaire
    Par chienlou dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 06h53
  4. Réponses: 8
    Dernier message: 15/11/2005, 18h06
  5. [VB.NET] [Débutant] Probléme de variable dans les requettes
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/03/2005, 13h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo