VB6 Parent d'une classe

Résolu
neurosupherot
Messages postés
81
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
7 novembre 2007
- 8 août 2007 à 17:48
Kristof_Koder
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
- 8 août 2007 à 20:01
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

cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Membre
Dernière intervention
4 mars 2013
131
8 août 2007 à 19:16
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
3
Kristof_Koder
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
8 août 2007 à 19:51
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
3
neurosupherot
Messages postés
81
Date d'inscription
jeudi 7 août 2003
Statut
Membre
Dernière intervention
7 novembre 2007

8 août 2007 à 19:58
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!
0
Kristof_Koder
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
8 août 2007 à 20:01
M'en parle pas !! Je suis en plein apprentissage de .NET ... et .... franchement ..... VB6 c'est tout de même cool !!!
0