Array et property

pinje Messages postés 129 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 24 août 2006 - 9 déc. 2005 à 18:13
pinje Messages postés 129 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 24 août 2006 - 10 déc. 2005 à 23:28
Bonjour a tous,



J'ai dans une classe le 'field' suivant qui est une array:



Public cell(,) As cellStructure



Structure cellStructure

Public cellType As TypeOfCell

Public zCoordM As Double

End Structure



Cela marche tres bien, mais par contre je n'arrive pas a en faire une
propriete... Est ce qu'il est possible de cree une propriete qui est
une array? genre (ca ne marche pas):



Private m_Cell(,) As cellStructure

Public Property Cell(ByVal Col As Integer, ByVal Row As Integer) As cellStructure

Get

Return m_Cell(Col, Row)

End Get

Set(ByVal Value As cellStructure)


m_Cell(Col, Row).cellType = Value.cellType


m_Cell(Col, Row).zCoordM = Value.zCoordM

End Set

End Property

4 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
9 déc. 2005 à 21:19
Et le msg du compilateur, c'est quoi ?
0
pinje Messages postés 129 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 24 août 2006
10 déc. 2005 à 12:53
Bonjour crenaud76,



Le compilateur me dit la chose suivante: "Expression is a value and
therefore cannot be the target of an assignment" pour les bouts de code:



Me.cell(j, i).cellType =0



En gros je ne peux pas l'editer et y rentrer de valeur.... Est ce que
ca vient du fait qu'il y a 2 lignes dans mon setteur?? pourtant
Intellisense me detecte rien d'anormale, c'est lors du compilage que ca
foire...



Merci de ton aide car la je vois pas....



Jeremy
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
10 déc. 2005 à 22:00
Bien ! On avance ! Donc, le compilateur te dit que "Me.cell(j, i).cellType" n'est pas une L-Value (Au passage, normal qu'intellisense ne détecte pas cela, seul un compilateur trouev ce type d'erreur normalement !). Pour info, une L-Value c'est un "truc que l'on peut mettre à gauche d'une opération d'assignation (L pour Left, Gauche en anglais). Les L-Value sont des noms de variables ou de propriétés d'objets. Les constantes ne sont pas des LValue. Tu ne peux pas faire "32 = 18" par exemple ... non pas parce que 32 n'est pas égal à 18 (32 = 32 ne passerait pas non plus) mais parce que VB ne peut pas affecter une valeur à 32 !!!
Bref, je pense que ce n'est pas la propriété Cell() qui est en cause, mais le CellType de la structure Cell ...
Comment as-tu déclaré TypeOfCell ...

CR
0
pinje Messages postés 129 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 24 août 2006
10 déc. 2005 à 23:28
Crenaud76, TypeOfCell est un enum declare de la maniere suivante:



'This is the structure of the array

Structure cellStructure

Public cellType As TypeOfCell

Public zCoordM As Double

End Structure



'Type of the cell

Enum TypeOfCell

dry

wet

boundary

End Enum

merci pour ton aide!
0
Rejoignez-nous