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

VBA Access Discussion :

Cloner un objet d'une collection en VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 61
    Par défaut Cloner un objet d'une collection en VBA
    Bonjour

    J'ajoute un objet dans une collection à partir de cette procédure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub FormeRectangle()
        'Ajoute le rectangle à lforme
        Set lForme = New ClForme
        lForme.X = gX
        lForme.Y = gY
        lForme.X1 = gX1
        lForme.Y1 = gY1
        lForme.gPenColorForme = gPenColor
        lForme.Name = gDragRgn
     
        gformes.Add lForme, gDragRgn
        Set lForme = Nothing
    End Sub

    Je voudrais faire une copie de cet objet, changer uniquement le pointeur "GdragRgn" de manière à créer un nouvel objet identique dans cette collection.
    Actuellement j'arrive à le faire à l'aide d'une procédure assez fastidieuse, mais je pense que ce doit être possible à l'aide d'une boucle ou d'une méthode de copie.
    Quelqu'un aurait-il une solution ?

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Si ton objet est un module de classe je ne suis pas certain qu'il existe de méthode autre,
    Les "objets" de VBA sont pas mal limités si on les compare à un langage comme Java.

    À tout hasard tu peux essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim p as property
    dim unNouvelObjet as clsObjet
    for each p in unObjet.Properties
        unNouveObjet.Properties(p.name)=p.Value
    next p
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre du Club Avatar de ik2zok
    Homme Profil pro
    VBA
    Inscrit en
    Octobre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : VBA
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2019
    Messages : 9
    Par défaut
    ...
    Votre classe [ClForme] n'expose probablement pas les propriétés de collection, vous pouvez donc créer une méthode CLONE dans votre classe...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Function Clone() As ClForme
       Dim mClone  As ClForme
       With mClone 
           .X=gX
           .Y=gY    
           .X1=gX1
           .Y1=gY1    
           .PenColorForme = gPenColo
           ' etc... etc...
       End With
       Set Clone=mClone
    End Function
    L'administration des propriétés dans une classe n'est pas facile, elle nécessite des propriétés de collection et une classe de propriétés ... normalement, cela n'est pas fait même si c'est la bonne méthode pour la OOP

Discussions similaires

  1. [VB.NET] Suppression d'objets dans une collection
    Par master56 dans le forum VB.NET
    Réponses: 7
    Dernier message: 03/06/2010, 21h46
  2. Réponses: 2
    Dernier message: 30/05/2007, 15h54
  3. Hibernate + suppression d'objets dans une collection
    Par Saiyan54 dans le forum Hibernate
    Réponses: 2
    Dernier message: 15/12/2006, 15h39
  4. Serialisation d'objet contenant une collection
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 21/08/2006, 08h37
  5. Réponses: 4
    Dernier message: 10/08/2006, 09h25

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