Polymorphisme en vba
minilapin
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour à tous(toutes),
Je suis habituellement developpeuse C#, et pour une application particuliere, je suis en train de faire un peu de VBA, langage pour lequel je suis tout a fait newbie.
Comme j'aime bien l'objet et que j'ai envie de me compliquer la vie, j'essaie de faire du polymorphisme en vba. Mais j'ai un pb que je n'arrive pas a resoudre, et j'aimerai solliciter votre aide.
Le probleme est le suivant : j'ai une classe Lapin "parent", des classes filles qui l'implementent (ex: LapinBelier). La classe Lapin contient une collection de string avec les noms des lapins, et une fonction Bondir
J'ai donc un truc du style :
Classe Lapin
[CODE]
Option Explicit
Public ListeDeNomsDeLapins As Collection
Public Sub Bondir
End Sub
[/CODE]
et une classe LapinBelier qui "implements" Lapin
[CODE]
Option Explicit
Implements Lapin
Private Parent As Lapin
Public Sub Lapin_Bondir
End Sub
Private Property Get Lapin_ListeDeNomsDeLapins () As Collection
End Property
Private Property Let Lapin_ListeDeNomsDeLapins(ByRef Liste As Collection)
End Property
[/CODE]
Quand je compile, ça dit: "Le module objet doit implementer "ListeDeNomsDeLapins" pour interfacer Lapin.
Je ne vois pas du tout ce qui manque ou ce qui est faux....
En vous remerciant d'avance pour votre aide,
minilapin
Je suis habituellement developpeuse C#, et pour une application particuliere, je suis en train de faire un peu de VBA, langage pour lequel je suis tout a fait newbie.
Comme j'aime bien l'objet et que j'ai envie de me compliquer la vie, j'essaie de faire du polymorphisme en vba. Mais j'ai un pb que je n'arrive pas a resoudre, et j'aimerai solliciter votre aide.
Le probleme est le suivant : j'ai une classe Lapin "parent", des classes filles qui l'implementent (ex: LapinBelier). La classe Lapin contient une collection de string avec les noms des lapins, et une fonction Bondir
J'ai donc un truc du style :
Classe Lapin
[CODE]
Option Explicit
Public ListeDeNomsDeLapins As Collection
Public Sub Bondir
End Sub
[/CODE]
et une classe LapinBelier qui "implements" Lapin
[CODE]
Option Explicit
Implements Lapin
Private Parent As Lapin
Public Sub Lapin_Bondir
End Sub
Private Property Get Lapin_ListeDeNomsDeLapins () As Collection
End Property
Private Property Let Lapin_ListeDeNomsDeLapins(ByRef Liste As Collection)
End Property
[/CODE]
Quand je compile, ça dit: "Le module objet doit implementer "ListeDeNomsDeLapins" pour interfacer Lapin.
Je ne vois pas du tout ce qui manque ou ce qui est faux....
En vous remerciant d'avance pour votre aide,
minilapin
1 réponse
-
Bonjour,
N.B. Je ne suis pas expert en module de classe sous VBA, mais j'ai
quelques connaissances.
Exemple :
Module de classe LapinOption Explicit Private ListeDeNomsDeLapins As Collection ' Public Event Bondir() ' Private Property Get Lapin_ListeDeNomsDeLapins() As Collection Lapin_ListeDeNomsDeLapins = ListeDeNomsDeLapins End Property ' Private Property Let Lapin_ListeDeNomsDeLapins(ByRef Liste As Collection) ListeDeNomsDeLapins = Liste End Property '
Module de classe LapinBelierOption Explicit Implements Lapin Private Parent As Lapin Private LapinCollection As Collection ' Public Sub Bondir() MsgBox "LapinBelier" End Sub ' Private Property Get ListeDeNomsDeLapins() As Collection Lapin_ListeDeNomsDeLapins = LapinCollection End Property ' Private Property Let ListeDeNomsDeLapins(ByRef Liste As Collection) LapinCollection = Liste End Property '
Module standard (Utilisation des classes )Option Explicit ' Sub Princi() Dim MonLapin As New LapinBelier MonLapin.Bondir End Sub '
Cdt
Lupin