Ereignisse

Manchmal wirken auf Objekte Einflüsse von außen ein, auf die sie reagieren sollten. Das sind sogenannte EreignisEreignisse. 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.