VBA + Collections

Le
Patrick
Bonjour,

J'ai créé une classe qui contient une collection d'une autre classe. Comment
puis-je faire pour que la sous-classe puisse accéder à certaines propriétés
de sa classe-mère sans lui transmettre comme paramètres ou sans utiliser des
variables publiques ?

Merci.

--
Patrick
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
tissot.emmanuel
Le #4701231
Bonjour,

Lorsque tu as besoin d'une nouvelle instance de la classe fille au lieu de
l'instancier directement tu passe par la méthode Add de la classe mère.
Au besoin tu peux ajouter des paramètres à la méthode Add et t'en servir
pour initialiser les propriétés de la classe fille.

Dans un module standard:

Dim x As NomClasseMere, z As NomClasseFille

Sub Test()
Set x = New NomClasseMere
Set z = x.Add
MsgBox z.NomGamin
MsgBox z.Parent.NbGamins
End Sub

Dans la classe mere:

Dim LesGamins As Collection

Private Sub Class_Initialize()
Set LesGamins = New Collection
End Sub

Public Function Add() As NomClasseFille
Dim Gamin As NomClasseFille
Set Gamin = New NomClasseFille
LesGamins.Add Gamin
Set Gamin.Parent = Me
Set Add = Gamin
End Function

Property Get NbGamins() As Long
NbGamins = LesGamins.Count
End Property

Dans la classe fille:

Dim clsNomGamin As String, clsParent As NomClasseMere

Private Sub Class_Initialize()
clsNomGamin = "Raoul ou Barnabé?"
End Sub

Property Get NomGamin() As String
NomGamin = clsNomGamin
End Property
Property Let NomGamin(Bapteme As String)
clsNomGamin = Bapteme
End Property

Property Set Parent(Maman As NomClasseMere)
Set clsParent = Maman
End Property
Property Get Parent() As NomClasseMere
Set Parent = clsParent
End Property


Cordialement,

Manu/
"Patrick" news:
Bonjour,

J'ai créé une classe qui contient une collection d'une autre classe.
Comment
puis-je faire pour que la sous-classe puisse accéder à certaines
propriétés
de sa classe-mère sans lui transmettre comme paramètres ou sans utiliser
des
variables publiques ?

Merci.

--
Patrick


Patrick
Le #4701031
Merci beaucoup pour toutes ces explications. C'est exactement ce dont j'avais
besoin.

--
Patrick


"tissot.emmanuel" wrote:

Bonjour,

Lorsque tu as besoin d'une nouvelle instance de la classe fille au lieu de
l'instancier directement tu passe par la méthode Add de la classe mère.
Au besoin tu peux ajouter des paramètres à la méthode Add et t'en servir
pour initialiser les propriétés de la classe fille.

Dans un module standard:

Dim x As NomClasseMere, z As NomClasseFille

Sub Test()
Set x = New NomClasseMere
Set z = x.Add
MsgBox z.NomGamin
MsgBox z.Parent.NbGamins
End Sub

Dans la classe mere:

Dim LesGamins As Collection

Private Sub Class_Initialize()
Set LesGamins = New Collection
End Sub

Public Function Add() As NomClasseFille
Dim Gamin As NomClasseFille
Set Gamin = New NomClasseFille
LesGamins.Add Gamin
Set Gamin.Parent = Me
Set Add = Gamin
End Function

Property Get NbGamins() As Long
NbGamins = LesGamins.Count
End Property

Dans la classe fille:

Dim clsNomGamin As String, clsParent As NomClasseMere

Private Sub Class_Initialize()
clsNomGamin = "Raoul ou Barnabé?"
End Sub

Property Get NomGamin() As String
NomGamin = clsNomGamin
End Property
Property Let NomGamin(Bapteme As String)
clsNomGamin = Bapteme
End Property

Property Set Parent(Maman As NomClasseMere)
Set clsParent = Maman
End Property
Property Get Parent() As NomClasseMere
Set Parent = clsParent
End Property


Cordialement,

Manu/
"Patrick" news:
Bonjour,

J'ai créé une classe qui contient une collection d'une autre classe.
Comment
puis-je faire pour que la sous-classe puisse accéder à certaines
propriétés
de sa classe-mère sans lui transmettre comme paramètres ou sans utiliser
des
variables publiques ?

Merci.

--
Patrick







Publicité
Poster une réponse
Anonyme