Manchmal wirken auf Objekte Einflüsse von außen ein, auf die sie reagieren sollten. Das sind sogenannte Ereignisse. In diesem Zusammenhang sehen wir endlich, wozu das Codefenster zwei Kombifelder hat: In einem Klassenmodul können wir im linken Kombifeld das Objekt auswählen, im rechten sieht man dann sämtliche zugehörigen Ereignisse. Wählt man rechts ein Ereignis aus, springt der Cursor automatisch in die entsprechende Prozedur, wenn sie schon existiert. Wenn nicht, wird der „Rumpf“ dieser Prozedur angelegt.
Erstellt man ein Klassenmodul, bekommt es automatisch zwei Ereignisse:
Initialize
wird ausgeführt, wenn ein neues Objekt angelegt wird,
Terminate
wird ausgeführt, wenn das Objekt nicht mehr existiert.
Man kann auch eigene Ereignisse erstellen, dies führt allerdings über den Rahmen
dieses Tutorials hinaus. Die von den Applikationen zur Verfügung gestellten Objekte
bringen häufig schon eigene Ereignisse mit.
Im Falle unserer Auto-Klasse erscheint es sinnvoll, schon beim Anlegen eines neuen Autos automatisch die Airbags einzubauen - ohne, dass man daran denken muss, erst eine spezielle Prozedur aufzurufen. Die entsprechende Prozedur verschieben wir daher in eine Ereignisprozedur.
Auto |
---|
Private myAirbags As New Collection
Private Sub Class_Initialize() Dim Air1 As New Airbag, Air2 As New Airbag Air1.Name = "Fahrer" Air2.Name = "Beifahrer" myAirbags.Add Air1, "Fahrer" myAirbags.Add Air2, "Beifahrer" End Sub
Sobald nun ein neues Auto deklariert wird, bekommt es automatisch die beiden gewünschten Airbags - ohne, dass wir noch darüber nachdenken müssten.