Liste d'objets personnalisés [Résolu]

Signaler
Messages postés
96
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
25 avril 2009
-
Messages postés
96
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
25 avril 2009
-
Je suis en train de développer un simulateur de mouvement d'un gaz parfait. En clair, il y aura une centaine de molécules (des cercles car je travaille en 2D) qui vont bouger et s'entrechoquer.
J'ai donc créé une classe "Molécule", qui conprend entre autre les propriétés X et Y pour la position de la molécule.

Mon problème est le suivant : j'arrive à créer deux ou trois molécules
   Dim Molécule1 as new Molécule
   Dim Molécule2 as new Molécule

mais je n'arrive pas à créer de liste !!

   Dim Liste( ) as Molécule
et lorsque je redimensionne  le tableau :  ReDim Liste(49)
j'obtiens un tableau de 50 lignes, mais qui contiennent "Nothing"
Je les remplis avec une molécule :
   For i=0 to 49
      Liste(i) = Molécule1
   Next
J'obtiens alors un tableau remplis de molécule...
Le problème est résolu me direz-vous.. mais tous les éléments du tableau ne font qu'un !! Je modifie la propriété de l'un d'entre eux et c'est toutes les molécules du tbleau qui sont modifiées !

Bref, merci de m'indiquer comment créer une liste d'objets créés à partir d'une classe.

3 réponses

Messages postés
96
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
25 avril 2009

C'est bon..
J'ai trouvé en fait...

Il faut remplir le tableau non pas en faisant
      For i=0 to 49
         Liste(i) = Molécule1
      Next

mais en faisant

   For i=0 to 49
      Liste(i) = new Molécule
   Next

C'est tout con en fait...
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Oui c'est normal car tu ne fais pas de New sur les éléments de la liste.
tu fais :
Dim Molécule1 as new Molécule
Donc la ça marche.
mais pour ta liste il faut faire :
Dim Liste( ) as Molécule
   For i=0 to 49
      set Liste(i) = New Molécule
   Next i

Et la chaque élément de la liste sera rempli avec un nouvelle molécule, si tu fais pas ça elle sera vide.
 - MadMatt -
http://vbsystemlibrar%3C/body
Messages postés
96
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
25 avril 2009

Merci quand même MadMatt..
J'aurais dû chercher un peu plus avant de poser ma question sur le Forum !

A vrai dire, ça faisait 1h que je galèrais avec ça...
Et je suis tombé par hasard pile sur la bonne page de l'aide MSDN... (elle est tellement vaste..)

Pour info je programme en VB 2005 Express

En tout cas merci pour votre super forum.. c'est une aide précieuse..