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 :

[VB6] Copie d'objets


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 31
    Points : 37
    Points
    37
    Par défaut [VB6] Copie d'objets
    Dans mon application, mon modèle est un composite d'objets (taille variable, peux contenir n'importe quel objet de mon application). Je veux pouvoir cloner ce composite. Pourquoi? Quand je rentre dans une fenêtre qui me permet de modifier mon modèle. Je veux en faite qu'il modifie un clone et c'est seulement quand on appuie sur valider que mon modèle se synchronise avec le clone. Et bien sur quand on appuie sur annuler, le clone est détruit et mon modèle n'est pas modifié.
    Avec vous une solution sympa?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    je ne pense pas qu'il y ait d'autre solution que de passer en revue le type et les propriétés du controle pour les copier dans un autre controle ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 608
    Points : 1 561
    Points
    1 561
    Par défaut
    Mouais ... question déjà posée, mais toujours restée sans réponse.
    D'autres se sont posé la même question, mais n'ont rien trouvé d'autre que d'écrire une méthode clone() pour chaque objet :

    http://www.experts-exchange.com/Prog..._20189940.html

    http://www.experts-exchange.com/Prog..._20447796.html

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 31
    Points : 37
    Points
    37
    Par défaut
    J'ai lu les 2 articles. Apparemment, il y a 2 manières pour cloner.
    - Sérialiser l'objet d'origine dans un fichier et Déserialiser dans un autre objet. Mes objets peuvent se sérialiser et se déserialiser en XML, mais c'est assez long ( les objets étant assez volumineux ).

    - Faire une fonction Clone pour tous les objets. C'est un peu expliqué dans le 2ème article, mais il y avait un problème de portée des clones. Ils disparaissent après la fin de la fonction. J'ai pas très bien compris comment, ces experts l'ont résolu.

    Avez-vous une explication (NigthFall? ou autre) ou bien une solution ?

    Merci

  5. #5
    Rédacteur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2002
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2002
    Messages : 608
    Points : 1 561
    Points
    1 561
    Par défaut
    Citation Envoyé par austin49
    il y avait un problème de portée des clones. Ils disparaissent après la fin de la fonction.
    J'ai pas compris de quel problème tu parles ? Si tu fais ceci, le clone disparait pas à la fin de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Public Function Clone() as monObjet
     
    dim copie as monObjet
     
    set copie = new monObjet
    copie.data = data
     
    End Function
    Méthode à utiliser de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim copie as monObjet
    set copie = objetACopier.clone()
    Note: la propriété data doit être déclarée en friend pour que l'on y ait accès depuis la classe de l'objet à cloner.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Méthode de classe et copie d'objets
    Par Duloup dans le forum Général Python
    Réponses: 5
    Dernier message: 11/04/2005, 16h27
  2. [VB6] Copie d'objet
    Par preverse dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 23/08/2004, 10h04
  3. [VB6]Tableau d'objet withevents
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 13/02/2004, 19h44
  4. [VB6] Taille d'objet en mémoire
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 01/01/2004, 16h23
  5. [VB6]Sérialiser un objet
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 11/10/2003, 10h05

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