Verständnisfrage zum einbinden von withevents in klassenmodul und benutzen aus normalem modul

31/10/2008 - 22:57 von Michael Kasten | Report spam
Mahlzeit,

Situation:

Ich habe ein Exe Projekt mit "unbeaufsichtigte Ausführung". Spezieller ein
NT-Dienst ohne "Datenaustausch zwischen Dienst und Desktop zulassen".
In dem Projekt gibt es also keine Form, sondern nur ein paar module.

Jetzt will ich die Klasse aus einer fremden dll mit withevents in mein
Projekt einbinden.

Das muss ich ja in einem Klassenmodul machen, weil das ja nur in
Objektmodulen geht.

Wie ich die Klasse an sich in meinem Modul dann benutze ist soweit klar:


Public irgendwas As meineKlasse

Private Sub Main()
Set irgendwas = New meineKlasse
...
-

In meiner Klasse sieht es so aus:

Dim WithEvents ABC As fremdeKlasse

Public Sub initVF()
Set Daswasichbenutzenwill = New fremdeKlasse
End Sub

soweit so gut


Wie bekomme ich denn nun zugriff auf die Events der fremden Klasse?
wenn ich in meinem Klassenmodul die EventSub setze, so wie man es in einer
form z.B macht:


Public Sub Daswasichbenutzenwill _OnVFileChange()
bla
end sub

scheint das Event nicht ausgelöst zu werden.


Im normalen Modul hab ich natürlich keinen Zugriff auf
"Daswasichbenutzenwill", weil ich "Daswasichbenutzenwill " im Klassenmodul
nicht Public machen kann.




Wie also bekomme ich im normalen Modul das Event mit, was aus der dll kommt
und im Klassenmodul definiert wurde?


Danek und Gruß
Michael
 

Lesen sie die antworten

#1 Harald M. Genauck
01/11/2008 - 02:44 | Warnen spam
Hallo Michael,

Situation:

Ich habe ein Exe Projekt mit "unbeaufsichtigte Ausführung".
Spezieller ein NT-Dienst ohne "Datenaustausch zwischen Dienst und
Desktop zulassen".
In dem Projekt gibt es also keine Form, sondern nur ein paar module.

Jetzt will ich die Klasse aus einer fremden dll mit withevents in
mein Projekt einbinden.

Das muss ich ja in einem Klassenmodul machen, weil das ja nur in
Objektmodulen geht.

Wie ich die Klasse an sich in meinem Modul dann benutze ist soweit
klar:


Public irgendwas As meineKlasse

Private Sub Main()
Set irgendwas = New meineKlasse
...
-

In meiner Klasse sieht es so aus:

Dim WithEvents ABC As fremdeKlasse

Public Sub initVF()
Set Daswasichbenutzenwill = New fremdeKlasse
End Sub

soweit so gut


Wie bekomme ich denn nun zugriff auf die Events der fremden Klasse?
wenn ich in meinem Klassenmodul die EventSub setze, so wie man es in
einer form z.B macht:


Public Sub Daswasichbenutzenwill _OnVFileChange()
bla
end sub

scheint das Event nicht ausgelöst zu werden.

Im normalen Modul hab ich natürlich keinen Zugriff auf
"Daswasichbenutzenwill", weil ich "Daswasichbenutzenwill " im
Klassenmodul nicht Public machen kann.

Wie also bekomme ich im normalen Modul das Event mit, was aus der dll
kommt und im Klassenmodul definiert wurde?



Indem Du die mit WithEvents deklarierte Variablen ebenfalls
"Daswasichbenutzenwill" nennst:

Dim WithEvents Daswasichbenutzenwill As fremdeKlasse

Public Sub initVF()
Set Daswasichbenutzenwill = New fremdeKlasse
End Sub




Viele Grüße

Harald M. Genauck

"VISUAL STUDIO one" - http://www.visualstudio1.de (Chefredakteur)
"ABOUT Visual Basic" - http://www.aboutvb.de (Herausgeber)

Ähnliche fragen