Funció CreateUnoListener

Crea una instància d'oient.

Moltes interfícies d'Uno vos permeten registrar oients en una interfície d'oient especial. Això vos permet escoltar esdeveniments específics i cridar el mètode d'oient apropiat. La funció CreateUnoListener espera la interfície d'oient cridada i passa a la interfície un objecte que admet la interfície. Este objecte es passa al mètode per registrar l'oient.

Sintaxi:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

Exemple :

L'exemple següent es basa en un objecte de biblioteca del Basic.


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

El mètode CreateUnoListener requereix dos paràmetres. El primer és un prefix i s'explica detalladament a continuació. El segon paràmetre és el nom complet de la interfície d'oient que voleu utilitzar.

Llavors l'oient s'afig a l'objecte de difusió. Això es du a terme cridant el mètode apropiat per afegir un oient. Estos mètodes sempre segueixen el patró "addFooListener", en què "Foo" és el tipus d'interfície d'oient, sense la 'X'. En este exemple, el mètode addContainerListener es crida per registrar XContainerListener:


Dim oLib
oLib = BasicLibraries.Library1 ' Library1 must exist!
oLib.addContainerListener( oListener ) ' Registra l'oient

L'oient ara està registrat. Quan es produeix un esdeveniment, l'oient corresponent crida el mètode apropiat des de la interfície de com.sun.star.container.XContainerListener.

El prefix crida els oients registrats de les subrutines del Basic. El sistema d'execució del Basic busca subrutines del Basic o funcions que tenen el nom "PrefixListenerMethode" i les crida quan les troba. Si no, es produeix un error d'execució.

En este exemple, la interfície d'oient utilitza els mètodes següents:

En este exemple, el prefix és ContListener_. Les subrutines següents s'han d'implementar, per tant, en Basic:

Existeix un tipus d'estructura d'esdeveniment que conté informació sobre un esdeveniment per a cada tipus d'oient. Quan es crida un mètode d'oient, una instància d'este esdeveniment es passa al mètode com a paràmetre. Els mètodes d'oient del Basic també poden cridar estos objectes d'esdeveniment, sempre que es passe el paràmetre apropiat a la declaració Sub. Per exemple:


Sub ContListener_disposing( oEvent )
    MsgBox "disposing"
    MsgBox oEvent.Dbg_Properties
End Sub
 
Sub ContListener_elementInserted( oEvent )
    MsgBox "elementInserit"
    MsgBox oEvent.Dbg_Properties
End Sub
 
Sub ContListener_elementRemoved( oEvent )
    MsgBox "elementSuprimit"
    MsgBox oEvent.Dbg_Properties
End Sub
 
Sub ContListener_elementReplaced( oEvent )
    MsgBox "elementReemplaçat"
    MsgBox oEvent.Dbg_Properties
End Sub

No heu d'incloure el paràmetre d'un objecte d'esdeveniment si no s'utilitza l'objecte:


' Implementació mínima de Sub disposing
Sub ContListener_disposing
End Sub
Icona d'avís

Els mètodes d'oient sempre s'han d'implementar per evitar errors d'execució del Basic.


Ens cal la vostra ajuda!