IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Passage d'un objet en évitant la référence


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut Passage d'un objet en évitant la référence
    Bonjour.

    J'ai un tableau garageDroite() et un garageGauche()

    J'ai besoin de faire en sorte de dire que l'une des voiture de gauche est la même que droite.

    Ceci ne fonctionne pas ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    garageDroite.Add garageGauche(i)
    Car en faite lorsque je modifie une voiture de gauche celle de droite ne doit pas êter modifiée car en réalité se sont les mêmes hein! (pour illustrer le principe de base mais à cette heure ci j'ai des nœuds dans la tête ^^)

    Donc en gros comment copier un objet d'un tableau A à un tableau B et non pas le passer par référence comme je le fais!

    Merci.

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    avant d'aller au-delà :

    Qu'entends-tu donc par objet ?
    Tes tableaux sont-ils vraiment des tableaux d'objets ?

    Peux-tu nous montrer comment tu initialises le 1er tableau, par exemple (dim ....) et comment et par quoi tu le remplis ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Bon hier j'étais un peu dans les choux excusez moi.

    En fiat garageDroite et garageGauche ne sont pas des tableaux mais des objets de Type Garage qui ne possède qu'une seule propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private mCol As Collection
    Il y a de définie dans la classe garage une fonction Add :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Public Function Add(ByVal maVoiture As Voiture) As Voiture
     
        'créer un nouvel objet
        Dim objNewMember As Voiture
        Set objNewMember = New Voiture
     
        'définir les propriétés passées à la méthode
        Set objNewMember = maVoiture
     
        mCol.Add objNewMember
     
     
        'renvoyer l'objet créé
        Set Add = objNewMember
        Set objNewMember = Nothing
     
    End Function
    Comme c'est passé par ByVal et non par ByRef je pensais donc que ça ajouterais une voiture indépendante que celle qui est passée en paramètre mais il n'en est rien.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Qu'est donc voiture, exactement ?
    un pointeur vers une structure ?
    Montre-nous sa déclaration et la structure (de base) à laquelle elle se réfère

    Le problème est à mon avis là : au lieu de modifier le pointeur, tu modifies peut-être la structure de base elle-même .... et alors, ma foi, crocs en jambe assurés.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Voiture est un module de classe contenant quelques propriétés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Private mvarLaCouleur As  String
    Private mvarLeModele As String
    Private mvarLaMarque As String
     
    Public Property Let LaCouleur(ByVal vData As String)
        mvarLaCouleur = vData
    End Property
     
    Public Property Get LaCouleur() As String
        LaCouleur = mvarLaCouleur
    End Property
     
    Public Property Let LeModele(ByVal vData As String)
        mvarLeModele = vData
    End Property
     
    Public Property Get LeModele() As String
        LeModele = mvarLeModele
    End Property
     
    Public Property Let LaMarque(ByVal vData As String)
        mvarLaMarque = vData
    End Property
     
    Public Property Get LaMarque() As String
        LaMarque= mvarLaMarque
    End Property

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Je viens de relire ton code et ne comprends pas vraiment son mécanisme.

    Une fonction retourne une valeur (c'est sa vocation).
    Dans ton cas, cette valeur a la structure de Voiture.

    C'est cette valeur qu'il convient d'ajouter à ta collection et cet ajout se fait normalement non à l'intérieur de ta fonction, mais à son appel...

    Ou autrement, ce n'est plus une fonction, mais une simple procédure .

Discussions similaires

  1. Passage d'un objet
    Par whorian dans le forum C++
    Réponses: 5
    Dernier message: 23/09/2007, 17h23
  2. Réponses: 11
    Dernier message: 20/08/2007, 16h44
  3. Passage d'un objet entre deux classes
    Par ericlemoustic dans le forum Langage
    Réponses: 2
    Dernier message: 13/10/2006, 09h58
  4. Réponses: 20
    Dernier message: 23/09/2005, 13h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo