Hallo, ich versuche aus einer form Main auf eine Eigenschaft, die zwei Klassenebenen darunter liegt, zuzugreifen. Es gelngt aber nicht…
Voraussetzungen:
- Form: frmMain
- Klasse: clsObject1
- Klasse: clsObject2
- clsObject2 besitzt Eigenschaft varName und mArray
Ich erzeuge in frmMain clsObject1 und in clsObject1 wiederum clsObject2. clsObject2 bekommt die beiden Eigenschaften durch property get/let.
frmMain:
Dim Object1 As clsObj1
Set Object1 = New clsObj1
Dim Object2 As clsObj2
Set Object2 = New clsObj2
clsObj1:
Public Property Get varName As String
varName = lkl\_varName
End Property
Public Property Let varName(ByRef par\_Name As String)
lkl\_varName = par\_Name
End Property
Public Property Get Object2() As clsObj2
Object2 = lkl\_clsObj2
End Property
clsObj2:
Public Property Get varName() As String
varName= lkl\_Name
End Property
Public Property Let varName(ByRef par\_Name As String)
lkl\_Name = par\_Name
End Property
Public Property Get mArray() As Variant
mArray = lkl\_Array()
End Property
Public Property Let mArray(ByRef par\_Array As Variant)
lkl\_Array = par\_Array
End Property
Irgendwie stimmt aber die Freigabe nicht; weder die der varName noch die des mArray, denn ich kann aus frmMain nicht per
frmMain.Object1.Object2.varName
daraufzugreifen.
Wie muß ich Object2 freigeben, damit das geht? Ändert sich etwas an der Freigabe, wenn es sich um ein Array handelt, auf das ich zugreifen will? Etwa so:
frmMain.Object1(1).Object2(1).varArray
Vielen Dank.
Hi,
das Object2 wird, ebenso wie das Object1 innerhalb Deiner
frmMain deklariert.
Damit kann der Zugriff auf die Methoden und Eigenschaften der beiden Objekte nur per
frmMain.Object1.Property bzw
frmMain.Object2.Property
erfolgen.
Lösung: Object2 innerhalb von Object1 deklarieren.
Dann klappts auch mit dem gewünschten Aufruf
frmMain.Object1.Object2.Property
Deine Vermutung bzgl. der Arrays ist richtig.
br
Thomas
Hallo, ich versuche aus einer form Main auf eine Eigenschaft,
die zwei Klassenebenen darunter liegt, zuzugreifen. Es gelngt
aber nicht…
Voraussetzungen:
- Form: frmMain
- Klasse: clsObject1
- Klasse: clsObject2
- clsObject2 besitzt Eigenschaft varName und mArray
Ich erzeuge in frmMain clsObject1 und in clsObject1 wiederum
clsObject2. clsObject2 bekommt die beiden Eigenschaften durch
property get/let.
frmMain:
Dim Object1 As clsObj1
> Set Object1 = New clsObj1
>
> Dim Object2 As clsObj2
> Set Object2 = New clsObj2
clsObj1:
Public Property Get varName As String
> varName = lkl\_varName
> End Property
> Public Property Let varName(ByRef par\_Name As String)
> lkl\_varName = par\_Name
> End Property
>
> Public Property Get Object2() As clsObj2
> Object2 = lkl\_clsObj2
> End Property
clsObj2:
Public Property Get varName() As String
> varName= lkl\_Name
> End Property
> Public Property Let varName(ByRef par\_Name As String)
> lkl\_Name = par\_Name
> End Property
>
> Public Property Get mArray() As Variant
> mArray = lkl\_Array()
> End Property
> Public Property Let mArray(ByRef par\_Array As Variant)
> lkl\_Array = par\_Array
> End Property
Irgendwie stimmt aber die Freigabe nicht; weder die der
varName noch die des mArray, denn ich kann aus frmMain nicht
per
frmMain.Object1.Object2.varName
daraufzugreifen.
Wie mu? ich Object2 freigeben, damit das geht? ?ndert sich
etwas an der Freigabe, wenn es sich um ein Array handelt, auf
das ich zugreifen will? Etwa so:
frmMain.Object1(1).Object2(1).varArray
Vielen Dank.