VB6 Parent d'une classe [Résolu]

Signaler
Messages postés
81
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
7 novembre 2007
-
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
-
Bonjour, j'aimerais savoir comment acceder aux méthodes et aux proprietés d'un parent dans VB6 sans passer par les RaiseEvents.

Je m'explique:

J'ai une classe mère:


Dim fille as new clsfille

public sub foo()


end sub


...

La classe fille:


...

public sub bar()

    parent.foo()'<<-- voilà ce que j'aimerais faire ! !

end sub

...


Merci!

4 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
120
Tu ne peux pas : vb6 ne gère pas l'héritage.

La seule solution reste de lui passer une référence à la classe à appeler :
public sub bar(Byref Parent as Object)
    parent.foo()
end sub

A la limite, utilise une interface pour obliger de passer un objet qui implément la fonction foo
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Ou alors créer une référence au parent dans la classe Fille. Voici un exemple avec C1=ta classe parent et C2=ta classe fille (je ne reprend pas ces termes car comme l'a dis Dark Sidious, ils sont trop liés à la notion d'héritage de la POO, non géré par le modèle objet de VB6 :

Class C1
Dim F as C2
...
Set F = New C2
F.InitParent(Me)
...
Public Sub Foo()
End Sub

Fin de la Class C1

Class C2
Private P As C1
Public Sub InitParent(ByRef Parent As C1)
Set P = Parent
End Sub
...
Public Sub Bar()
P.Foo()
End Sub
....
Fin de la classe C2

Avec cela, cela devrait fonctionner !
Attention ! Ne surtout pas faire de Set P = Nothing dans la Sub Class_Terminate de C2 !! P n'est pas instancié dans C2, on lui refile juste une référence à une instance déjà existante par ailleurs de C1 !

Kristof_Koder
Messages postés
81
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
7 novembre 2007

D'aaaacord...

je vois...

D'où l'interêt d'avoir fait .net maisje préfère encore faire du bricolage sous vb6 que utiliser .net


merci!
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
M'en parle pas !! Je suis en plein apprentissage de .NET ... et .... franchement ..... VB6 c'est tout de même cool !!!