Conteníu
Índiz 🔎︎

# CreateUnoListener Function

Crea un casu de Listener.

Munches interfaces Uno dexen rexistrar listeners nuna interfaz listener especial. Esto permite-y escuchar socesos específicos y llamar al métodu listener apropiáu. La función CreateUnoListener espera a la interfaz listener llamada y dempués pasa-y un oxetu qu'esta almita. Dempués, esti oxetu pásase al métodu pa rexistrar el listener.

### Syntax:

oListener = CreateUnoListener( Nomeprefijo, NomeInterfazListener )

### Example:

L'exemplu siguiente basar nun oxetu de la biblioteca Basic.

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

El métodu CreateUnoListener requier dos parámetros. El primeru ye un prefixu y esplícase de mou detalláu más abaxo. El segundu parámetru ye'l nome cualificáu completu de la interfaz Listener que quiera usar.

El Listener tien d'amestase entós al oxetu Broadcaster. Esto faise llamando al métodu apropiáu p'amestar un Listener. Estos métodos siempres siguen el patrón "addFooListener", onde "Foo" ye'l tipu de interfaz Listener ensin la 'X'. Nesti exemplu, llámase al métodu addContainerListener pa rexistrar el XContainerListener:

    Dim oLib
    oLib = BasicLibraries.Library1 ' Library1 tien d'esistir
    oLib.addContainerListener( oListener ) ' Rexistrar el listener

Agora Listener ta rexistráu. Cuando se produz una aición, la Listener correspondiente llapada al métodu apropiáu dende la interfaz de com.sun.star.container.XContainerListener.

El prefixu llama a Listeners rexistraes dende subrutinas Basic. El sistema en tiempu d'execución de Basic busca subrutinas o funciones Basic que tengan el nome "PrefixListenerMethode" y les llapada cuando les atopa. En casu contrariu produzse un fallu de tiempu d'execución.

Nesti exemplu, la interfaz Listener usa los métodos siguientes:

- disposing:

- Interfaz base de Listener (com.sun.star.lang.XEventListener): intefaz base pa toles intefaces de Listener

- elementInserted:

- Métodu de la interfaz com.sun.star.container.XContainerListener

- elementRemoved:

- Métodu de la interfaz com.sun.star.container.XContainerListener

- elementReplaced:

- Métodu de la interfaz com.sun.star.container.XContainerListener

Nesti exemplu, el prefixu ye ContListener_. Poro, les subrutinas siguientes tienen d'implementase en Basic:

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

Esiste un tipu d'estructura d'aición que contién información sobre cada tipu de Listener. Cuando se llama a un métodu Listener, pásase un casu d'esta aición al métodu como parámetru. Los métodos Listener de Basic tamién puen llamar a estos oxetos d'aición, siempres que se pase'l parámetru apropiáu na declaración Sub. Por exemplu:

    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

Nun ye necesariu incluyir el parámetru d'un oxetu d'aición si ésti nun se va utilizar:

    ' Implementación mínima de disposing Sub
    Sub ContListener_disposing
    End Sub

Los métodos Listener tienen d'implementase siempres pa evitar fallos en tiempu d'execución de Basic.