OVH Cloud OVH Cloud

VBA: propriété d'une classe dans une classe

1 réponse
Avatar
Peanut
Soit 2 classes A et B

la classe A possède les propriétés x et y et a une variable de classe B
la classe B possède les propriétés u et v

pour éclaircir les idées:

Class B
Private m_u As Long
Private m_v As Long

Property Get v() As Long
v = m_v
End Property
...


Class A
Private m_x As Long
Private m_y As Long
Private m_B As B
...

-------
Maintenant je déclare un variable

Dim l As Long
Dim cA As A

Ce que j'aimerais pouvoir faire est ceci:

I = cA.B.v

J'aimerais accéder à la propriété "v" de la classe B en passant par A
Un peu comme une arborescence.
Si j'ai une classe (A) qui contient une classe (B) qui elle même
contient une classe (C) avec une propriété z
Pouvoir écrire qque chose comme:

l = A.B.C.z

Vous comprenez l'idée (!?)
Est-ce que c'est possible?

Merci

1 réponse

Avatar
Peanut
"Peanut" wrote in message
news:6MR8f.48114$
Soit 2 classes A et B

la classe A possède les propriétés x et y et a une variable de classe B
la classe B possède les propriétés u et v

pour éclaircir les idées:

Class B
Private m_u As Long
Private m_v As Long

Property Get v() As Long
v = m_v
End Property
...


Class A
Private m_x As Long
Private m_y As Long
Private m_B As B
...

-------
Maintenant je déclare un variable

Dim l As Long
Dim cA As A

Ce que j'aimerais pouvoir faire est ceci:

I = cA.B.v

J'aimerais accéder à la propriété "v" de la classe B en passant par A
Un peu comme une arborescence.
Si j'ai une classe (A) qui contient une classe (B) qui elle même
contient une classe (C) avec une propriété z
Pouvoir écrire qque chose comme:

l = A.B.C.z

Vous comprenez l'idée (!?)
Est-ce que c'est possible?

Merci



ok. Je crois comprendre comment on fait.
J'ai simplement a créer un méthode qui retourne la classe B
dans la classe A

public Sub B() as cB
set B = m_B
end

et je pourrai écrire I = A.B.v
Il semble qu'on appelle cela héritage par délégation

... il me reste à essayer

c'est