IBM Lotus Symphony


Funkce CreateUnoListener [běhová]

Vytvoří instanci modulu pro naslouchání (Listener).

Mnohá rozhraní Uno umožňují registraci modulů pro naslouchání v rámci speciálního rozhraní modulů pro naslouchání. Tak je umožněno naslouchání se zřetelem ke specifickým událostem a také výběr vhodné metody naslouchání. Funkce CreateUnoListener vyčká na odezvu volaného rozhraní modulů pro naslouchání a poté tomuto rozhraní předá objekt, který rozhraní podporuje. Objekt je poté předán metodě pro registraci modulů pro naslouchání.

Syntaxe:

oListener = CreateUnoListener( NázevPředpony, NázevRozhraníModulůProNaslouchání )

Příklad:

V následujícím příkladu je použit objekt knihovny Basic.

Dim oListener

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

Metoda CreateUnoListener vyžaduje dva parametry. Prvním parametrem je předpona (podrobnější popis následuje dále). Druhým parametrem je úplný název rozhraní modulů pro naslouchání, které chcete použít.

Modul pro naslouchání (Listener) je poté nutné přidat do objektu Broadcaster. To lze provést voláním odpovídající metody pro přidání modulu pro naslouchání (Listener). Pro tyto metody je vždy použit vzorec "addFooListener", kde řetězec "Foo" označuje typ rozhraní modulů pro naslouchání, bez znaku 'X'. V tomto příkladu je pro registraci modulu XContainerListener volána metoda addContainerListener:

Dim oLib

oLib = BasicLibraries.Library1 ' Library1 must exist!

oLib.addContainerListener( oListener ) ' Register the listener

Modul pro naslouchání je nyní registrován. Při výskytu události vyvolá odpovídající modul pro naslouchání vhodnou metodu v rámci rozhraní com.sun.star.container.XContainerListener.

Ze subrutin jazyka Basic jsou prostřednictvím předpony volány registrované moduly pro naslouchání. Běhový systém modulu Basic vyhledá funkce či subrutiny jazyka Basic s názvy odpovídajícími struktuře "PředponaModul_pro_nasloucháníMetoda". Po nalezení jsou tyto funkce a subrutiny vyvolány. Pokud to není možné, dojde k běhové chybě.

V tomto příkladu jsou pro dvojice Modul pro naslouchání-Rozhraní použity následující metody:

V tomto příkladu je jako předpona použit řetězec ContListener_. V produktu Basic proto musí být implementovány následující subrutiny:

Pro každý typ modulu pro naslouchání existuje typ struktury události obsahující informace o určité události. Je-li volána některá metoda modulu pro naslouchání, bude této metodě jako parametr předána instance této události. Tyto objekty událostí mohou být volány také metodami modulů pro naslouchání Basic, pokud je v rámci deklarace subrutiny předán příslušný parametr. Příklad:

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

Není-li některý objekt události použit, není nutné zadávat odpovídající parametr:

' Minimal implementation of Sub disposing

Sub ContListener_disposing

End Sub

Ikona Varování Metody modulů listener musí být vždy implementovány s ohledem na předcházení běhovým chybám jazyka Basic.

Komentář k produktu | Další dokumentace | Ochranné známky