Verwenden von Ereignissen mit dem Application- oder Databases-Objekt
Um eine Ereignisroutine für ein Ereignis des Application- oder Databases-Objekts zu erstellen, müssen die folgenden drei Schritte ausgeführt werden:
1.Deklarieren Sie eine Objektvariable in einem Klassenmodul, damit die Ereignisse beantwortet werden.
2.Schreiben Sie die spezifischen Ereignisprozeduren.
3.Initialisieren Sie das deklarierte Objekt aus einem anderen Modul.
Deklarieren der Objektvariable
Bevor Sie Prozeduren für die Ereignisse des Application- oder Databases-Objekts schreiben können, muss ein neues Klassenmodul erstellt und ein Objekt vom Typ Application bzw. Databases mit Ereignissen deklariert werden. Angenommen, ein neues Klassenmodul wird mit dem Namen "EventClassModule" erstellt. Das neue Klassenmodul enthält den folgenden Code:
Public WithEvents App As FlexPro.Application
bzw.
Public WithEvents Databases As FlexPro.Databases
Schreiben von Ereignisprozeduren
Nachdem das neue Objekt mit Ereignissen deklariert wurde, erscheint es in dem Dropdown-Listenfeld Objekt im Klassenmodul, und Sie können Ereignisprozeduren für das neue Objekt schreiben. (Wenn Sie das neue Objekt im Feld "Objekt" markieren, werden die gültigen Ereignisse für das Objekt im Dropdown-Listenfeld Prozedur aufgelistet.) Wählen Sie aus dieser Liste ein Ereignis aus. Es wird dem Klassenmodul eine leere Prozedur hinzugefügt.
Private Sub App_DatabaseModified(ByVal Database As Object)
End Sub
oder
Private Sub Databases_BeforeDatabaseClose(ByVal Database As Object)
End Sub
Initialisieren des deklarierten Objekts
Bevor die Prozedur abläuft, muss eine Verbindung zwischen dem deklarierten Objekt im Klassenmodul ("App" oder "Databases" in diesem Beispiel) und dem Application- bzw. Databases-Objekt hergestellt werden. Diese Verbindung kann mit dem folgenden Code aus einem beliebigen Modul hergestellt werden:
Dim X As New EventClassModule
Sub Register_Event_Handler()
Set X.App = FlexPro.Application
Set X.Databases = FlexPro.Databases
End Sub
Starten Sie die Prozedur "Register_Event_Handler". Nachdem die Prozedur ausgeführt wurde, verweist das App-Objekt im Klassenmodul auf das Application-Objekt von FlexPro und das Databases-Objekt entsprechend auf das Databases -Objekt. Die Ereignisprozeduren im Klassenmodul werden dann ausgeführt, sobald die Ereignisse eintreten.