Je tente de programmer une sorte de Jeu Tetris pour lequel je voudrais stocker les pièces dans une collection d'objet
J'ai créé une classe d'objet dans un module de classe appelé "Piece"
J'ai créé une collection dans un module appelé "Pieces", la collection comprendra l'ensemble des pièces
Le module standard instancie une collection ColP
Et ajoute un objet pièce à la collection ColP, la pièce est définie par sa Forme (tableau de booléen)
A l'execution, j'ai un message d'erreur sur la ligne .Forme = bForme de la fonction CreatePiece
Le message dit succinctement "Internal Error"
J'ai tenté de remplacer
	
	
	
	
	
		
par 
	
	
	
	
	
		
Mais ça ne change rien
Voici le module standard
	
	
	
	
	
		
Le module de classe appelé "Piece" (au sigulier)
	
	
	
	
	
		
Le module de classe appelé "Pieces" (au pluriel), la collection comprendra l'ensemble des pièces
	
	
	
	
	
		
 
Ce qui est étonnant c'est que lorsque je crée et j'ajoute la pièce à la collection Colp directement dans le module standard je n'ai pas d'erreur:
	
	
	
	
	
		
Merci d'avance pour votre aide précieuse.
	
		
			
		
		
	
				
			J'ai créé une classe d'objet dans un module de classe appelé "Piece"
J'ai créé une collection dans un module appelé "Pieces", la collection comprendra l'ensemble des pièces
Le module standard instancie une collection ColP
Et ajoute un objet pièce à la collection ColP, la pièce est définie par sa Forme (tableau de booléen)
A l'execution, j'ai un message d'erreur sur la ligne .Forme = bForme de la fonction CreatePiece
Le message dit succinctement "Internal Error"
J'ai tenté de remplacer
		VB:
	
	
	CreatePiece(ByRef bForme() As Boolean)
		VB:
	
	
	CreatePiece(bForme() As Boolean)Mais ça ne change rien
Voici le module standard
		VB:
	
	
	Sub NouvellePartie()
Dim colP As Pieces
Dim Forme() As Boolean
'Initialisation de forme à false
ReDim Forme(0 To 5, 0 To 5)
For i = 1 To 5
    For j = 1 To 5
        Forme(i, j) = False
    Next
Next
Set colP = New Pieces
With colP
   .Add .CreatePiece(Forme)
End With
End subLe module de classe appelé "Piece" (au sigulier)
		VB:
	
	
	'---------------------
' Module de Classe Pièce de Puzzle
'---------------------
'Forme de la pièce dans un tableau de booléens
Private mbForme() As Boolean
'Forme
'--------------------------
Property Get Forme() As Boolean()
  ' Propriété en lecture
   Forme = mbForme
End Property
Property Let Forme(ByRef MaForme() As Boolean)
    ' Propriété en écriture
    mbForme = MaForme
End PropertyLe module de classe appelé "Pieces" (au pluriel), la collection comprendra l'ensemble des pièces
		VB:
	
	
	Private mcolPieces As Collection
Property Get Count() As Long
    Count = mcolPieces.Count
End Property
Public Sub Add(ByRef objPiece As Piece, _
                    Optional ByVal NumPiece As String = "")
'Si aucune clé key n'est fournit on en génère une automatiquement
    If Len(NumPiece) = 0 Then
        NumPiece = CStr(objPiece.ID)
    End If
    mcolPieces.Add objPiece, NumPiece
    Set objPiece = Nothing
End Sub
Public Sub Remove(ByVal Index As Variant)
    mcolPieces.Remove (Index)
End Function
Public Function Item(ByVal Index As Variant) As Piece
    Set Item = mcolPieces.Item(Index)
End Function
Public Function CreatePiece(ByRef bForme() As Boolean) As Piece
Dim objPiece  As Piece
    Set objPiece = New Piece
    With objPiece
             .Forme = bForme
    End With
    Set CreatePiece = objPiece
    If Not (objPiece Is Nothing) Then Set objPiece = Nothing
End FunctionCe qui est étonnant c'est que lorsque je crée et j'ajoute la pièce à la collection Colp directement dans le module standard je n'ai pas d'erreur:
		VB:
	
	
	Sub NouvellePartie()
Dim colP As Pieces
Dim objPiece  As Piece
ReDim Forme(0 To 5, 0 To 5)
For i = 1 To 5
    For j = 1 To 5
        Forme(i, j) = False
    Next
Next
Set colP = New Pieces
Set objPiece = New Piece
With objPiece
        .Forme = Forme
End With
colP.Add objPiece
If Not (objPiece Is Nothing) Then Set objPiece = Nothing
end subMerci d'avance pour votre aide précieuse.
 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		