IBM Lotus Symphony


CreateUnoListener-Funktion [Laufzeit]

Erstellt eine Listener-Instanz.

Bei vielen Uno-Schnittstellen können Sie Listener auf einer speziellen Listener-Schnittstelle registrieren. So können Sie den Eintritt bestimmter Ereignisse überwachen und daraufhin die jeweilige Listener-Methode aufrufen. Die CreateUnoListener-Funktion wartet auf die aufgerufene Listener-Schnittstelle und übergibt der Schnittstelle dann ein von dieser unterstütztes Objekt. Dieses Objekt wird dann an die Methode zum Registrieren des Listeners übergeben.

Syntax:

oListener = CreateUnoListener( Praefixname, ListenerSchnittstelleName )

Beispiel:

Folgendes Beispiel basiert auf einem BasicLibraries Objekt.

Dim oListener

oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )

Die CreateUnoListener-Methode benötigt zwei Parameter. Der erste Parameter ist ein Präfix und wird weiter unten näher beschrieben. Der zweite Parameter ist der voll qualifizierte Name der Listener-Schnittstelle, die Sie verwenden möchten.

Als nächstes muss der Listener zum Broadcaster-Objekt hinzugefügt werden. Dies geschieht durch Aufruf der entsprechenden Methode zum Hinzufügen des Listeners. Diese Methoden folgen immer dem Muster "addFooListener", wobei "Foo" den Listener-Schnittstellentyp ohne das 'X' bezeichnet. Im Beispiel soll XContainerListener registriert durch den Aufruf der addContainerListener-Methode registriert werden:

Dim oLib

oLib = BasicLibraries.Library1 ' Library1 muss vorhanden sein

oLib.addContainerListener( oListener ) ' Listener Registrieren

Jetzt ist der Listener registriert. Wenn ein Ereignis auftritt, das den Listener betrifft, wird die entsprechende Methode der com.sun.star.container.XContainerListener-Schnittstelle aufgerufen.

Das Präfix dient zum Aufruf registrierter Listener aus Basic-Subroutinen. Das Basic-Laufzeitsystem sucht nach Basic-Subroutinen oder -Funktionen mit dem Namen "PräfixListenerMethode" und ruft diese, falls vorhanden, auf. Ist keine entsprechende Subroutine oder Funktion vorhanden, so tritt ein Laufzeitfehler auf.

In diesem Beispiel verwendet die Listener-Schnittstelle folgende Methoden:

In diesem Beispiel lautet das Präfix ContListener_. In Basic müssen also folgende Subroutinen implementiert werden:

Für jeden Listener-Typ existiert ein Ereignisstrukturtyp mit Informationen zum Ereignis. Beim Aufruf einer Listener-Methode wird dieser eine Instanz dieses Ereignisses als Parameter übergeben. Basic-Listener-Methoden können diese Ereignisobjekte auch aufrufen, sofern in der Sub-Deklaration der entsprechende Parameter übergeben wird. Beispiel:

Sub ContListener_disposing( oEvent )

MsgBox "disposing"

MsgBox oEvent.Dbg_Properties

End Sub

Sub ContListener_elementInserted( oEvent )

MsgBox "elementInserted"

MsgBox oEvent.Dbg_Properties

End Sub

Sub ContListener_elementRemoved( oEvent )

MsgBox "elementRemoved"

MsgBox oEvent.Dbg_Properties

End Sub

Sub ContListener_elementReplaced( oEvent )

MsgBox "elementReplaced"

MsgBox oEvent.Dbg_Properties

End Sub

Wird das Ereignisobjekt nicht benötigt, kann der Parameter weggelassen werden:

' Minimal implementation of Sub disposing

Sub ContListener_disposing

End Sub

Symbol für Warnung Zur Vermeidung von Basic-Laufzeitfehlern müssen grundsätzlich Listener-Methoden implementiert werden.

Produktfeedback | Zusätzliche Dokumentation | Marken