Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige