Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Instanzname einer Klasse

Forumthread: Instanzname einer Klasse

Instanzname einer Klasse
11.06.2005 13:18:24
Walter
Hallo,
komme hier absolut nicht weiter:
Habe ein Klassenmodul "Klasse1" (Auszug):

Private m_Name As String
Public Property Get Name() As String
Name = m_Name
End Property
Private Sub Class_Initialize()
' hier geschieht ein Wunder
Name= .....
End Sub

In einem normalen Modul wird ein Objekt auf "Klasse1" referenziert:

Sub test1()
Dim C_test As Klasse1
Set C_test = New Klasse1
End Sub
Sub test2()
Dim D_test As Klasse1
Set D_test = New Klasse1
End Sub

Nun mein Problem:
Ich gerne in der Variable m_Name automatisch über Class_Initialize den Namen der instanzierten Objektvariblen, soll heißen, "C_test" bzw. "D_test", ohne das diese Variable als Eigenschaft mit Property Let gefüllt wird.
Mir ist wohl die Methode "ObjPtr" bekannt. Mit ihr erhalte ich immerhin einen Objektzeiger auf die Objekte "C_test" bzw. "D_test",
aber wie erhalte ich die Namen als String im Klassenmodul?
Mit freundlichem Gruß
Walter
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Instanzname einer Klasse
11.06.2005 13:35:48
Thomas
Hallo Walter,
versuch's mal in etwa so ...


      
Option Explicit
Private m_Name As String
Public Property Get Name() As String
  Name = m_Name
End Property
Private Sub Class_Initialize()
' hier geschieht ein Wunder
  m_Name = TypeName(Me)
End Sub 


Gruß
Thomas
Risi Thomas Softwareentwicklung
COM-Addins - RTD-Server - Komponenten - Datenbanklösungen
Anzeige
AW: Instanzname einer Klasse
11.06.2005 13:47:15
Walter
Hallo Thomas,
mit TypeName(Me) im Klassenmodul "Klasse1" erhalte ich den Klassennamen "Klasse1". Ich hätte aber gerne den Namen des referenzierenden Objektes, in meinem Beispiel also "C_test" bzw. "D_test".
Gruß
Walter
AW: Instanzname einer Klasse
11.06.2005 14:27:00
Thomas
Oh, falsch verstanden ...
Das was Du willst funktioniert mit VB/VBA nicht.
Gruß
Thomas
Risi Thomas Softwareentwicklung
COM-Addins - RTD-Server - Komponenten - Datenbanklösungen
Anzeige
Trotzdem vielen Dank!!
11.06.2005 17:11:42
Walter
Ich werd's aber nicht aufgeben
Gruß
Walter
AW: Trotzdem vielen Dank!!
11.06.2005 18:21:21
Thomas
Hm, gibt's ein bestimmtes Problem, das Du damit lösen willst, oder geht's um's Prinzip?
Vielleicht ja so ;-)


      
' Code Modul ...
Option Explicit
Public TestName As String
Sub test1()
  
Dim C_test As Klasse1
  TestName = 
"C_test"
  
Set C_test = New Klasse1
  
  MsgBox C_test.Name
End Sub
Sub test2()
  
Dim D_test As Klasse1
  TestName = 
"D_test"
  
Set D_test = New Klasse1
  
  MsgBox D_test.Name
End Sub
' Code Klasse ...
Option Explicit
Private m_Name As String
Public Property Get Name() As String
  Name = m_Name
End Property
Private Sub Class_Initialize()
' hier geschieht ein Wunder
  'm_Name = ObjPtr(Me)
  
  m_Name = TestName
  
End Sub 


Gruß
Thomas
Risi Thomas Softwareentwicklung
COM-Addins - RTD-Server - Komponenten - Datenbanklösungen
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige