Re bonjour à tous,
La solution est vite trouvée, voilà ce que j'ai fait (cAnalysisCase est le nom de ma classe) :
1 2 3 4
| Sub Duplicate(AnaCaseToCopyFrom As cAnalysisCase, AnaCaseToCopyTo As cAnalysisCase)
AnaCaseToCopyTo.CaseIndex = AnaCaseToCopyFrom.CaseIndex
'''Copie de tous les autres attributs
End Sub |
Je ne suis quand même pas entièrement satisfait par cette solution. En effet, pour appeler cette procédure et copier MonObjet1 dans MonObjet2, je dois entrer :
MonObjet1.Duplicate (MonObjet1, MonObjet2)
Je dois donc appeler une fois un objet, uniquement pour lui dire d'aller me chercher la méthode définie dedans. Or, j'aimerais plutôt arriver à une syntaxe du type :
MonObjet1.Duplicate(MonObjet2)
Ayant fait du Python dans ma jeunesse, je me souviens qu'on pouvait définir des méthodes en entrant self comme variable (self correspondant à l'objet à partir duquel on appelle la procédure, en l'occurrence en reprenant mon exemple au-dessus, MonObjet1), et ensuite elle s'écrirait quelque chose du type (je suis un peu rouillé en Python donc ce n'est pas forcément la syntaxe exacte) (dans le module de classe) :
1 2 3 4
| Sub Duplicate(self As cAnalysisCase, AnaCaseToCopyTo As cAnalysisCase)
self.CaseIndex = AnaCaseToCopyFrom.CaseIndex
'''Copie de tous les autres attributs
End Sub |
et elle s'appellerait avec la syntaxe que je veux (cf ci-dessus). Quelqu'un aurait-il une idée de comment implémenter cette syntaxe ?
Merci !
EDIT : En fait, la façon correcte d'appeler ma procédure est :
MonObjet1.Duplicate AnaCaseToCopyFrom:=MonObjet1, AnaCaseToCopyTo:=MonObjet2
Quelqu'un pourrait-il également me dire pourquoi la formulation que j'ai mise plus haut ne marche pas ? Merci !
Partager