cs_Hilm
Messages postés6Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention 5 mars 2006
-
26 juil. 2004 à 22:40
cs_PhilippeE
Messages postés437Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention10 août 2010
-
27 juil. 2004 à 08:57
bonjour à tous !
voilà je débute en Vb6, j'ai un problème avec les classes.
quelqu'un pourrait il corriger ceci :
'**** CLASSE OPERATIONS ******
Option Explicit
Private mcolOperations As New Collection
Public Sub Delete(intNumero As Integer)
mcolOperations.Remove intNumero
End Sub
Public Function Count() As Long
Count = mcolOperations.Count
End Function
Public Function Add(ByVal strName As String, ByVal intNumero As Integer) As Operation
Dim newOperation As New Operation
mcolOperations.Add strName, intNumero 'ERREUR ICI "Type incompatible"
Set Add = newOperation
End Function
Public Function NewEnum() As IUnknown
Set NewEnum = mcolOperations.[_NewEnum]
End Function
'*****CLASSE OPERATION *********
Option Explicit
Public Categorie As String
Public numero As Integer
Public Jour As Date
Public Cout As Currency
********************************
j'ai repérer la ligne où VB me signale une erreur.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 26 juil. 2004 à 23:42
Salut Hilm
Je pense que tu as mal lu l'aide à propos des Collections :
La méthode Add a besoin de deux paramètres (plus deux autres optionnels) :
Add Item, Key
- Item est de n'importe quel type
- Key est une chaine --> Transforme ton "intNumero As Integer" en "intNumero As String" dans la méthode Add.
Par contre, méfie toi, ne confonds pas le "Key" avec l'index :
- Tu insères la données "a" avec la clé "1"
- Tu insères la données "b" avec la clé "2"
- Tu supprime la donnée "a" avec .Remove 1
--> La donnée "b" a maintenant l'index 1 alors que sa clé est toujours "2"
Tu pourras la retrouver en faisant un .Item("2") mais pas avec un .Item(2) !
Les entiers désignent l'ordre dans lequel se retrouvent les données, alors que "2" est une clé de recherche.
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008 27 juil. 2004 à 04:10
Salut,
Moi aussi je debute la dedans mais ... essais ca:
Public Function Add(ByVal strName As String, ByVal intNumero As Integer) As Operation
Dim newOperation As New Operation
Set newOperation = New Operation
'Sous entendu que tu as une 2eme classe ou tu integres tes variables
With newOperation
.strName
.intNumero
end with
If Len(Key) = 0 Then
mcolOperations.Add newOperation
Else
mcolOperations.Add newOperation , Key 'L item correspond a ta class newOperation que tu pourras récupérer
End If
Set Add = newOperation
Set newOperation = Nothing
End Function
puis tu peux mettre aussi le récup d'un item:
Public Property Get Item(IndexKey As Variant) As Operation
Set Item = mCol(IndexKey )
End Property
cs_PhilippeE
Messages postés437Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention10 août 20102 27 juil. 2004 à 08:57
Comme précisé plus haut, il ne faut pas confondre la Key et l'Index d'un objet de la collection.
Exemples d'appel :
- MaCollection.Item(intNumero) te renvoit l'objet à l'index intNumero
- MaCollection.Item(CStr(intNumero)) te renvoit l'objet qui à la clef intNumero