Probleme de for each

cs_Yossi Messages postés 40 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 5 septembre 2006 - 4 mai 2006 à 23:48
cs_Yossi Messages postés 40 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 5 septembre 2006 - 5 mai 2006 à 12:45
Bonjour,
je suis en train de réaliser un jeu de dames . J'ai les classes:

Class damier
Inherits System.Windows.Forms.Panel



...
Public shared caseDamier(8, 8)
As caseDamier

...
End Class





Class caseDamier

Inherits System.Windows.Forms.PictureBox
...


Public shared sub deborder()



For Each cased1 As caseDamier In damier.casedamier





If cased1.bordee=
True Then


cased1.bordee=False


cased1.size=New System.Drawing.Size(tailleImage,tailleImage)


cased1.location=
New System.Drawing.Size(cased1.location.x-2,cased1.location.y-2)





end if




Next




End Sub



End Class




le probleme c 'est que j'ai une référence sur un objet 'null' dans le for each. Peut etre je ne connais pas bien la syntaxe ? Merci de votre aide.

4 réponses

JB76000 Messages postés 135 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 14 février 2013
4 mai 2006 à 23:58
Désolé, je ne connais pas du tout FOR EACH. Par contre, je sais qu'un jeu de dames fait 10x10 et non 8x8. Je suppose que casedamier est ton plateau.

Jer
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 mai 2006 à 07:25
Salut,

Pour ton For Each "cased1", cased1 n'est pas un objet créé.
Qd tu parcours des contrôles, tu déclares un truc du genre Dim ctl As Control,
ben là c'est pareil, il faut déclarer ton cased.

@ ++

Mortalino
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 mai 2006 à 07:27
> JB76000 : un damier peut comporter des cases de 8x8, 10x10 ou 12x12 selon la variante !

@ ++

Mortalino
0
cs_Yossi Messages postés 40 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 5 septembre 2006
5 mai 2006 à 12:45
salut,

je sais pas si le problème vient de la mais je me suis arrangé autrement. Merci en tous cas de la rapidité de vos réponses.





Dim i , j As Integer
For i=1 To 8
For j =1 To 8
If DirectCast(damier,damier).caseDamier(i,j).bordee=True Then

DirectCast(damier,damier).caseDamier(i,j).bordee=False
DirectCast(damier,damier).caseDamier(i,j).Size=New System.Drawing.Size(tailleImage,tailleImage)
DirectCast(damier,damier).caseDamier(i,j).Location=New System.Drawing.Size(DirectCast(damier,damier).caseDamier(i,j).Location.X-2,DirectCast(damier,damier).caseDamier(i,j).Location.Y-2)
end if
Next

Next
0
Rejoignez-nous