CreateUnoListener Function

Crea unha instancia Listener.

A maioría das interfaces Uno permiten rexistrar listeners nunha interface especial, o que fai posíbel a supervisión de eventos específicos e a activación do método listener adecuado. A función CreateUnoListener agarda pola interface listener e, a seguir, pásalle un obxecto para o que teña soporte. Este obxecto pásase despois ao método para rexistrar o listener.

Sintaxe:


oListener = CreateUnoListener( NomePrefixo, NomeInterfaceListener )

Exemplo:

O seguinte exemplo baséase nun obxecto da biblioteca de Basic.


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

O método CreateUnoListener require dous parámetros. O primeiro é un prefixo, explicado a continuación máis detalladamente. O segundo é o nome cualificado por completo da interface Listener que desexe utilizar.

O Listener debe engadirse ao obxecto Broadcaster chamando ao método adecuado. Estes métodos seguen sempre o patrón "addFooListener", onde "Foo" é o tipo da interface Listener sen o «X». Neste exemplo, chámase ao método addContainerListener para rexistrar o XContainerListener:


Dim oLib
oLib = BasicLibraries.Library1 ' Library1 ten que existir!
oLib.addContainerListener( oListener ) ' Rexistrar o Listener

Agora o Listener está rexistrado. Ao producirse un evento, o Listener correspondente activa o método adecuado desde a interface com.sun.star.container.XContainerListener.

O prefixo activa os Listeners rexistrados desde os métodos de Basic. O sistema en tempo de execución de Basic busca métodos ou funcións de Basic que posúan o nome "PrefixListenerMethode" e actívaas cando as encontra. No caso contrario, prodúcese un erro en tempo de execución.

Neste exemplo, a interface Listener usa os seguintes métodos:

Neste exemplo, o prefixo é ContListener_. Por tanto, os métodos que deben implementarse en Basic son os seguintes:

Existe un tipo de estrutura de eventos que contén información sobre cada tipo de Listener. Cando se chama a un método Listener, pásase ao método unha instancia dese evento como parámetro. Os métodos Listener de Basic tamén poden activar eses obxectos de evento sempre que se pase o parámetro adecuado na declaración Sub. Por exemplo:


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

Non é necesario incluír o parámetro dun obxecto de evento, se o obxecto non se utiliza:


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

Listener methods must always be implemented to avoid Basic run-time errors.


Axúdenos, por favor!