Types utilisateurs et collection

electroremy Messages postés 13 Date d'inscription samedi 19 juillet 2003 Statut Membre Dernière intervention 6 mars 2011 - 11 nov. 2003 à 14:44
Mutos Messages postés 103 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 14 mai 2010 - 29 nov. 2003 à 14:02
Bonjour,

lorsque je tente d'ajouter une variable de type utilisateur à une collection j'ai une erreur "byref incompatible".

En d'autres termes :

Le code suivant ne marche pas :

Private Type Personne
Nom As String * 30
Prenom As String * 30
End Type
Private Sub Form_Load()
Dim Liste As New Collection
Dim moi As Personne
moi.Nom = "Rémy"
moi.Prenom = "Lucas"
Liste.Add moi
End Sub

Mais celui là marche :

Private Type Personne
Nom As String * 30
Prenom As String * 30
End Type
Private Sub Form_Load()
Dim Liste As New Collection
Dim moi As String
moi = "Rémy"
Liste.Add moi
End Sub

PS : Je suis sous VB5

Pouvez-vous m'aider ?

Merci d'avance, A+

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 nov. 2003 à 15:07
Tout dépend où tu as déclaré ton type : comme il est de type Private, il n'est accessible que dans le fichier ou il a été déclaré !

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 nov. 2003 à 16:07
On ne peut faire de collections de Types perso....

fais donc une classe, ca ne changera que peu de choses..


'# DANS UN MODULE DE CLASSE

public Nom As String * 30
Public Prenom As String * 30

'# DANS TON CODE, OU DANS UNE CLASSE - COLLECTION

Private Sub Form_Load()
Dim Liste As New Collection
Dim moi As New Personne
moi.Nom = "Rémy"
moi.Prenom = "Lucas"
Liste.Add moi
End Sub



By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
electroremy Messages postés 13 Date d'inscription samedi 19 juillet 2003 Statut Membre Dernière intervention 6 mars 2011
11 nov. 2003 à 21:19
Merci de m'avoir répondu aussi rapidement !

En fait c'est qd même étrange que des types perso ne puissent être utilisés de façon aussi souple que les autres.

Parceque utiliser une classe pour implanter un produit cartésien c'est un peu utiliser un marteau pour enfoncer une punaise.

Je suis en train de develloper un module de code contenant des fonctions que j'utiliserais ensuite dans de nombreux programmes.
Et étant donné que pour chaque classe il faut un fichier cls, je vais devoir trimbaler de nombreux fichiers au lieu d'un simple fichier .bas.

N'y a t'il pas moyen de déclarer plusieurs classes dans un fichier en vb (comme en c++ par ex.) ?

Un projet avec plusieurs dizaines (voire centaines) de fichiers, ça nuit un peu à la lisibilité... ;-)

A+
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 nov. 2003 à 22:02
A sa lisibilité, peut etre, mais au moins chaque classe a sa tache bien particuliere, et "les octets seront bien gardés..."

au pire, si tu t'en sers si souvent, tu peux les compiler a part, dans une Dll (Projet Dll ActiveX)

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mutos Messages postés 103 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 14 mai 2010
29 nov. 2003 à 14:02
Slt à ts,

Merci bcp à Renfield et merci à VBFrance ^-^, j'avais le même pb j'ai juste cherché et voilà !

J'ai déjà 3 classes en + dans mon projet depuis que j'ai lu le message... Bon ben c pas tout, je crois que moi aussi je vais me mettre aux projets DLL !

@+

Benoît 'Mutos' ROBIN
mailto:mutos@hoshikaze.net
http://hoshikaze.net
0
Rejoignez-nous