Default-Eigenschaft eines Objektes

Bild

Betrifft: Default-Eigenschaft eines Objektes
von: Yal
Geschrieben am: 03.11.2003 18:21:28

Hallo die Profis,

ich suche seit langem und kann keine Hinweis darüber finden. Vielleicht kann mir jemand auf dem Pfad bringen...

Ich habe ein selbstdefiniertes Objekt "doods" (bzw. Klassenmodule), wo eine Collection von "dood" hinterlegt ist. Da kennt jeder: Shapes ist eine Collection von Shape, usw.
Um auf einem Elementen meiner Collection zuzugreifen, muss ich -im gegenteil zu den Excel-Collection- immer:
Set Actual_dood = doods.myCollection(i)

Wie kann man/was braucht man, um, genauso wie "Shapes", "Sheets" usw. direkt mit
set Actual_dood = doods(i)
auf meinem dood-Objekt direkt zuzugreifen??

Danke für die Hilfe!

Yal

Bild


Betrifft: AW: Default-Eigenschaft eines Objektes
von: klausimausi64
Geschrieben am: 03.11.2003 20:30:08

Hi Yal,

auf ein Element einer Collection kann ich normalerweise immer über seinen Index zugreifen.

Poste doch mal ein bisschen Code...

CU Klaus


Bild


Betrifft: Auf einer Coll. schon, aber im Objekt?
von: Yal
Geschrieben am: 04.11.2003 07:39:06

Hallo Klaus,

vielen Dank, dass Du dich für meine Probleme einsetzen will.

Auf einem Element von der Collection zuzugreifen ist kein Probleme. Nun, eine Collection hat sehr wenig Eigenschaften. Und kann die Klasse Collection unter xl97 nicht vererben lassen.
Dann baue ich ein Objekt, in dem diese Collection als Aggregat liegt. Um den VBA-Benennung gerechts zu sein, nenne ich sie "doods" als Collection von Objekte der Klasse dood. Um auf einer Eigenschaft eines im Collection angelegte Objekte zuzugreifen, muss ich dann das Item der Collection abrufen. Ich möchte aber das Objekt selbst, als es eine Collection wäre, mit Index abrufen:


'----------------------------------------------------------
'Classe doods:
'Objektklasse doods: Collection of dood

Public myCollection As New Collection

Public

Sub AddNewDood(ByVal Dies As String, ByVal Das As String)
Dim NewDood As New dood
    myCollection.Add NewDood
End Sub

'----------------------------------------------------------
'Code im Modul:

Sub Test
Dim Akt_Werte as Integer
    Akt_Werte = doods.myCollection(3).dood_Eigenschaft3
'Un Genau da hätte ich lieber:
'   Akt_Werte = doods(3).dood_Eigenschaft3
End Sub

'----------------------------------------------------------


Daher wollte ich wissen, ob es existiert ein -undokumentierte- Schlüsselwort, um ein Eigenschaft oder Methode meines Objektes als Default-Eigenschaft/Methode zu deklarieren, so dass, bei nicht Ernennung eines Eig./Methode, die Default einbezogen wäre.

??
Yal


Bild

Beiträge aus den Excel-Beispielen zum Thema " mehrere Scroll Areas"