Partage
  • Partager sur Facebook
  • Partager sur Twitter

l'exception null référence n'a pas été gérée

la référence objet n'est pas définie à une instance objet

Sujet résolu
    10 août 2011 à 17:26:35

    Voilà, ça fait des heures que je cherche d'où me vient le problème sans aucun résultat. Je suis un grand débutant en vb.net et on me fait cette erreur :
    l'exception null référence n'a pas été gérée.
    la référence objet n'est pas définie à une instance objet.

    :o Pourtant, je ne programme pas en poo (parceque je ne m'y connais pas :-° )
    S'il vous plaît dites moi d'où me venir ce problème tellement chouette embarassant!
    :(
    S.O.S
    • Partager sur Facebook
    • Partager sur Twitter
      10 août 2011 à 17:54:30

      Salut,

      "l'exception null référence n'a pas été gérée." ça ne ment jamais. Un objet que tu utilise n'est pas instancié. L'objet, c'est probablement pas toi qui la créer si tu dis ne aps faire de POO, mais ça reste un objet quand même.

      Met ton code, sinon personne ne pourra t'aider ;)
      • Partager sur Facebook
      • Partager sur Twitter
        10 août 2011 à 23:18:02

        ben voilà le code en complet (ce n'est pas encore terminé),le problème est en général entre la ligne 215 et 222.
        le problème est en
        Public Class Form1
            'déclaration des 6 bits d'intéraction 
            Public bit1 As Boolean = False
            Public bit2 As Boolean = False
            Public bit3 As Boolean = False
            Public bit4 As Boolean = False
            Public bit5 As Boolean = False
            Public bit6 As Boolean = False
        
            Public x As Integer = 0
            Public n As Integer = 0
            Public tempos() As Double
            Public bit01() As Boolean
            Public bit02() As Boolean
            Public bit03() As Boolean
            Public bit04() As Boolean
            Public bit05() As Boolean
            Public bit06() As Boolean
            'text variable qui varie selon l'instruction, il est utilisé dans le listbox
            Dim affichlist As String
            Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        
            End Sub
            Public Sub avant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles avant.Click
                bit1 = True
                bit2 = True
                bit6 = True
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
        
            Public Sub arrière_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles arrière.Click
                bit6 = True
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
            Public Sub gauche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles gauche.Click
                bit1 = True
                bit6 = True
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
        
            Public Sub droite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles droite.Click
                bit2 = True
                bit6 = True
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
            Public Sub brashaut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles brashaut.Click
                bit3 = True
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
        
            Public Sub brasbas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles brasbas.Click
                bit4 = True
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
        
            Public Sub articu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles articu.Click
                bit5 = True
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
        
            Public Sub articu_avant_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles articu_avant.Click
                bit5 = True
                bit6 = True
                bit1 = True
                bit2 = True
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
        
            Public Sub articu_arrière_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles articu_arrière.Click
                bit5 = True
                bit6 = True
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
            Public Sub rester_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rester.Click
                affichagebits()
                Me.GroupBox3.Enabled = True
                Me.GroupBox1.Enabled = False
        
            End Sub
            Sub affichagebits()
                If bit1 = True Then
                    Me.bit_1.Text = 1
                End If
                If bit2 = True Then
                    Me.bit_2.Text = 1
                End If
                If bit3 = True Then
                    Me.bit_3.Text = 1
                End If
                If bit4 = True Then
                    Me.bit_4.Text = 1
                End If
                If bit5 = True Then
                    Me.bit_5.Text = 1
                End If
                If bit6 = True Then
                    Me.bit_6.Text = 1
                End If
                If bit1 = False Then
                    Me.bit_1.Text = 0
                End If
                If bit2 = False Then
                    Me.bit_2.Text = 0
                End If
                If bit3 = False Then
                    Me.bit_3.Text = 0
                End If
                If bit4 = False Then
                    Me.bit_4.Text = 0
                End If
                If bit5 = False Then
                    Me.bit_5.Text = 0
                End If
                If bit6 = False Then
                    Me.bit_6.Text = 0
                End If
            End Sub
        
            Public Sub supprimeraction_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles supprimeraction.Click
                bit1 = False
                bit2 = False
                bit3 = False
                bit4 = False
                bit5 = False
                bit6 = False
                Me.GroupBox3.Enabled = False
                Me.GroupBox1.Enabled = True
                affichagebits()
            End Sub
        
        
            Sub affichlistbox()
                If bit1 = True And bit2 = True And bit6 = True And bit3 = False And bit4 = False And bit5 = False Then
                    affichlist = "en avant"
                End If
        
                If bit1 = False And bit2 = False And bit3 = False And bit4 = False And bit5 = False And bit6 = True Then
                    affichlist = "en arrière"
                End If
        
                If bit1 = True And bit2 = False And bit3 = False And bit4 = False And bit5 = False And bit6 = True Then
                    affichlist = "à gauche"
                End If
        
                If bit1 = False And bit2 = True And bit3 = False And bit4 = False And bit5 = False And bit6 = True Then
                    affichlist = "à droite"
                End If
        
                If bit1 = False And bit2 = False And bit3 = True And bit4 = False And bit5 = False And bit6 = False Then
                    affichlist = "bras en haut"
                End If
        
                If bit4 = True And bit1 = False And bit2 = False And bit3 = False And bit5 = False And bit6 = False Then
                    affichlist = "bras en bas"
                End If
        
                If bit1 = False And bit2 = False And bit3 = False And bit4 = False And bit5 = True And bit6 = False Then
                    affichlist = "ariculation en marche"
                End If
        
                If bit1 = True And bit2 = True And bit3 = False And bit4 = False And bit5 = True And bit6 = True Then
                    affichlist = "articulation en marche + en avant"
                End If
                If bit1 = False And bit2 = False And bit3 = False And bit4 = False And bit5 = True And bit6 = True Then
                    affichlist = "articulation en marche + en arrière"
                End If
                If bit1 = False And bit2 = False And bit3 = False And bit4 = False And bit5 = False And bit6 = False Then
                    affichlist = "rester en place"
                End If
        
            End Sub
        
            Public Sub entreraction_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles entreraction.Click
        
                If Not IsNumeric(Me.Txt_secondes.Text) Or Me.Txt_secondes.Text Is Nothing Then
                    MsgBox("Veuillez entrez un nombre entier dans le champ approprié à la temporisation", 16, "Ce n'est pas un nombre entier")
                Else
        
                    affichlistbox()
                    ReDim Preserve tempos(x)
                    ReDim Preserve bit01(x)
                    ReDim Preserve bit02(x)
                    ReDim Preserve bit03(x)
                    ReDim Preserve bit04(x)
                    ReDim Preserve bit06(x)
        
                    ListBox1.Items.Add(affichlist & " pendant " & Me.Txt_secondes.Text & " s")
                    bit01(x) = bit1
                    bit02(x) = bit2
                    bit03(x) = bit3
                    bit04(x) = bit4
                    bit05(x) = bit5
                    bit06(x) = bit6
                    tempos(x) = Me.Txt_secondes.Text * 1000
                    Me.Lbl_nbract.Text = "Il y a : " & x + 1 & " actions"
                    bit1 = False
                    bit2 = False
                    bit3 = False
                    bit4 = False
                    bit5 = False
                    bit6 = False
                    Me.Txt_secondes.Text = Nothing
                    affichagebits()
                    Me.GroupBox3.Enabled = False
                    Me.GroupBox1.Enabled = True
                    x = x + 1
        
        
                End If
        
            End Sub
        
            Public Sub lire_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lire.Click
                Me.Timer.Enabled = True
            End Sub
        
            Public Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
                If n = x - 1 Then
                    Me.Timer.Enabled = False
                    n = 0
                End If
                Me.Timer.Interval = tempos(n)
                affichagebits2()
                n = n + 1
            End Sub
            Sub affichagebits2()
        
                If bit01(n) = True Then
                    Me.bit_1.Text = 1
                End If
                If bit02(n) = True Then
                    Me.bit_2.Text = 1
                End If
                If bit03(n) = True Then
                    Me.bit_3.Text = 1
                End If
                If bit04(n) = True Then
                    Me.bit_4.Text = 1
                End If
                If bit05(n) = True Then
                    Me.bit_5.Text = 1
                End If
                If bit06(n) = True Then
                    Me.bit_6.Text = 1
                End If
                If bit01(n) = False Then
                    Me.bit_1.Text = 0
                End If
                If bit02(n) = False Then
                    Me.bit_2.Text = 0
                End If
                If bit03(n) = False Then
                    Me.bit_3.Text = 0
                End If
                If bit04(n) = False Then
                    Me.bit_4.Text = 0
                End If
                If bit05(n) = False Then
                    Me.bit_5.Text = 0
                End If
                If bit06(n) = False Then
                    Me.bit_6.Text = 0
                End If
            End Sub
        End Class
        

        PS: pardon si j'ai posé tout le code et de ne pas avoir commenté, et d'avoir un code pas du tout professionnel (je vous ai dit que je suis un grand débutant :-° )
        S.O.S , aidez-moi :(:(:(
        • Partager sur Facebook
        • Partager sur Twitter
          10 août 2011 à 23:21:13

          Bah voila. Déjà je peux te dire que c'est ton tableau le problème. Tu lui donne sa "grandeur" quand? ;)

          Va voir la section du cours sur les tableaux. Ça va t'aider.
          • Partager sur Facebook
          • Partager sur Twitter
            10 août 2011 à 23:29:30

            Merci pour votre aide M4N!aC,
            mais :( dans ce cas à quoi servent ces lignes :
            ReDim Preserve tempos(x)
                        ReDim Preserve bit01(x)
                        ReDim Preserve bit02(x)
                        ReDim Preserve bit03(x)
                        ReDim Preserve bit04(x)
                        ReDim Preserve bit06(x)
            

            Et pourtant, ça marchait nickel avant o_O je ne comprends plus si c'est visual studio qui est un peu devenu fou ou quoi :-°:oo_O:colere2:
            • Partager sur Facebook
            • Partager sur Twitter
              10 août 2011 à 23:30:37

              Oups, j'Avais pas vu ça.

              Attends, je regarde ça.


              EDIT:

              Je vois pas. Passe ton code en debug, met un point d'Arret et vérifie l'état de tes variables.

              Pour un tableau en VB ça va de 0 à X-1 ou 0 à X? Je sais plus :-°
              • Partager sur Facebook
              • Partager sur Twitter
                10 août 2011 à 23:59:10

                Bahhh, c'a y est, le programme c'est résolu tout seul merci beaucoup
                • Partager sur Facebook
                • Partager sur Twitter
                  11 août 2011 à 0:02:33

                  Ah bah voila. Il te manque ton ReDim Preserve bit05(x)

                  ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 août 2011 à 0:03:25

                    Bahhh, c'a y est, le programme c'est résolu tout seul merci beaucoup
                    • Partager sur Facebook
                    • Partager sur Twitter

                    l'exception null référence n'a pas été gérée

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown