CreateUnoListener-functie

Maakt een Listener-exemplaar.

Bij vele Uno-interfaces kunt u listeners op een speciale listener-interface registreren. Zo kunt u naar specifieke gebeurtenissen luisteren en de toepasselijke listener-methode aanroepen. De CreateUnoListener-functie wacht op de aangeroepen listener-interface en geeft de interface dan een object door dat door de interface ondersteund wordt. Dit object wordt vervolgens doorgegeven aan de methode om de listener te registreren.

Syntaxis:

oListener = CreateUnoListener( Voorvoegselnaam, ListenerInterfacenaam )

Voorbeeld:

Het volgende voorbeeld is op een Basic-bibliotheekobject gebaseerd:

Dim oListener

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

Er zijn twee parameters vereist voor de CreateUnoListener-methode. De eerste is een voorvoegsel dat hieronder gedetailleerd wordt uitgelegd. De tweede is de volledige naam van de Listener-interface die u wilt gebruiken.

De Listener moet vervolgens aan het Broadcaster-object toegevoegd worden. U doet dit door de toepasselijke methode voor het toevoegen van een Listener op te roepen. Deze methodes volgen altijd het patroon addFooListener, waarbij 'Foo' het Listener-interfacetype is, zonder de 'X'. In dit voorbeeld wordt de addContainerListener-methode aangeroepen om de XContainerListener te registreren:

Dim oLib

oLib = BasicLibraries.Bibliotheek1 ' Bibliotheek1 moet bestaan!

oLib.addContainerListener( oListener ) ' Registreer de Listener

De Listener is nu geregistreerd. Wanneer zich een gebeurtenis voordoet, roept de overeenkomstige Listener de toepasselijke methode uit de com.sun.star.container.XContainerListener-interface op.

Het voorvoegsel roept geregistreerde Listeners uit BASIC-subroutines op. Het BASIC-runtimesysteem zoekt naar BASIC-subroutines of -functies met de naam "VoorvoegselListenerMethode" en roept ze op wanneer ze gevonden worden. Zo niet, dan treedt er een runtime-fout op.

In dit voorbeeld gebruikt de Listener-interface de volgende methodes:

In dit voorbeeld is het voorvoegsel ContListener_. De volgende subroutines moeten daarom in Basic geïmplementeerd worden:

Er is een gebeurtenisstructuurtype met informatie over een gebeurtenis voor elk Listener-type. Wanneer een Listener-methode wordt aangeroepen, wordt een exemplaar van deze gebeurtenis als parameter aan de methode doorgegeven. Listener-methodes van Basic kunnen deze gebeurtenisobjecten ook aanroepen, mits de toepasselijke parameter in de Sub-declaratie wordt doorgegeven. Voorbeeld:

Sub ContListener_disposing( oEvent )

    MsgBox "beëindigen"

    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

U hoeft de parameter van een gebeurtenisobject niet op te nemen als het object niet wordt gebruikt:

' Minimale implementatie van Sub disposing

Sub ContListener_disposing

End Sub

Waarschuwingspictogram

Listener-methodes moeten altijd geïmplementeerd worden om Basic-runtimefouten te vermijden.