Allen,
Ik ben voor het eerst begonnen met het maken van ClassModules
Ik heb 2 Classes gemaakt waarvan ik wil vragen of iemand misschien een oordeel wil geven over de opzet.
Opzet:
De 1e class [clsBaseObject] moet een basis object voorstellen met een aantal standaard properties van een werktuig
De 2e class [clsMotor] moet de properties van clsBaseObject beschikbaar hebben en daar zelf dan nog een aantal 'motor specifieke' properties bij hebben.
Als ik het object clsMotor aangemaakt heb in het geheugen moet ik zowel de properties van clsBaseObject als clsMotor op dezelfde manier kunnen beheren
Uitvoering:
clsBaseObject
clsMotor
Module1 met een sub om te testen
clsBaseObject
clsMotor
Module1 met sub test
Alvast bedankt voor evt reactie's
Ik ben voor het eerst begonnen met het maken van ClassModules
Ik heb 2 Classes gemaakt waarvan ik wil vragen of iemand misschien een oordeel wil geven over de opzet.
Opzet:
De 1e class [clsBaseObject] moet een basis object voorstellen met een aantal standaard properties van een werktuig
De 2e class [clsMotor] moet de properties van clsBaseObject beschikbaar hebben en daar zelf dan nog een aantal 'motor specifieke' properties bij hebben.
Als ik het object clsMotor aangemaakt heb in het geheugen moet ik zowel de properties van clsBaseObject als clsMotor op dezelfde manier kunnen beheren
Uitvoering:
clsBaseObject
clsMotor
Module1 met een sub om te testen
clsBaseObject
Code:
Option Explicit
'**************************
'*** Private Properties ***
'**************************
Private pBouwJaar As Integer
Private pFabrikant As String
Private pMerk As String
Private pTypeNummer As String
Private pSerieNummer As String
Private pExtraInfo As String
'**************************
'*** Public Properties ***
'**************************
Public Property Get BouwJaar() As Integer
BouwJaar = pBouwJaar
End Property
Public Property Let BouwJaar(value As Integer)
pBouwJaar = value
End Property
Public Property Get Fabrikant() As String
Fabrikant = pFabrikant
End Property
Public Property Let Fabrikant(value As String)
pFabrikant = value
End Property
Public Property Get Merk() As String
Merk = pMerk
End Property
Public Property Let Merk(value As String)
pMerk = value
End Property
Public Property Get TypeNummer() As String
TypeNummer = pTypeNummer
End Property
Public Property Let TypeNummer(value As String)
pTypeNummer = value
End Property
Public Property Get SerieNummer() As String
SerieNummer = pSerieNummer
End Property
Public Property Let SerieNummer(value As String)
pSerieNummer = value
End Property
Public Property Get ExtraInfo() As String
ExtraInfo = pExtraInfo
End Property
Public Property Let ExtraInfo(value As String)
pExtraInfo = value
End Property
'**************************
'*** Class Initialize *****
'**************************
Private Sub Class_Initialize()
Me.BouwJaar = 2017
Me.Fabrikant = "Tesla"
Me.Merk = "Amazing Car"
Me.TypeNummer = "Model S"
Me.SerieNummer = "JHFD468"
Me.ExtraInfo = "Programming = Easy?"
Debug.Print "clsBaseObject Ininialized"
End Sub
clsMotor
Code:
Option Explicit
'**************************
'*** Private Properties ***
'**************************
Private pToerenTal As String
Private pVermogen As String
Private pCarterInhoud As String
Private pSmeerolieType As String
Private pLocatieOpSchip As String
'**************************
'*** Public Properties ***
'**************************
Public pBaseObject As clsBaseObject
Public Property Get Toerental() As String
Toerental = pToerenTal
End Property
Public Property Let Toerental(value As String)
pToerenTal = value
End Property
'**********************************************************
'*** SET PUBLIC PROPERTIES INHERITED FROM CLSBASEOBJECT ***
'**********************************************************
Public Property Get BouwJaar() As String
BouwJaar = pBaseObject.BouwJaar
End Property
Public Property Let BouwJaar(value As String)
pBaseObject.BouwJaar = value
End Property
Public Property Get Fabrikant() As String
Fabrikant = pBaseObject.Fabrikant
End Property
Public Property Let Fabrikant(value As String)
pBaseObject.Fabrikant = value
End Property
Public Property Get Merk() As String
Merk = pBaseObject.Merk
End Property
Public Property Let Merk(value As String)
pBaseObject.Merk = value
End Property
Public Property Get TypeNummer() As String
TypeNummer = pBaseObject.TypeNummer
End Property
Public Property Let TypeNummer(value As String)
pBaseObject.TypeNummer = value
End Property
Public Property Get SerieNummer() As String
SerieNummer = pBaseObject.SerieNummer
End Property
Public Property Let SerieNummer(value As String)
pBaseObject.SerieNummer = value
End Property
Public Property Get ExtraInfo() As String
ExtraInfo = pBaseObject.ExtraInfo
End Property
Public Property Let ExtraInfo(value As String)
pBaseObject.ExtraInfo = value
End Property
'**************************
'*** Class Initialize *****
'**************************
Private Sub Class_Initialize()
Set Me.pBaseObject = New clsBaseObject
Debug.Print "pBaseObject Ininialized"
End Sub
''**************************
''*** Class Terminate *****
''**************************
Private Sub Class_Terminate()
Set Me.pBaseObject = Nothing
Debug.Print "pBaseObject destroyed"
End Sub
Module1 met sub test
Code:
Option Explicit
Sub test()
Dim Motor As clsMotor
Set Motor = New clsMotor
With Motor
.Fabrikant = "Caterpillard"
.TypeNummer = "6068HFG"
.SerieNummer = "12RT8KlP89"
.Toerental = "1500 RPM"
.BouwJaar = 2012
.ExtraInfo = "Brandstofverbruik 67 Ltr/Uur"
End With
Debug.Print Motor.Fabrikant
Debug.Print Motor.TypeNummer
Debug.Print Motor.SerieNummer
Debug.Print Motor.Toerental
Debug.Print Motor.BouwJaar
Debug.Print Motor.ExtraInfo
Set Motor = Nothing
End Sub
Alvast bedankt voor evt reactie's