CreateUnoListener-funksjonen

Lagar ein lyttarinstans

Mange Uno-grensesnitt let deg registrera lyttarar pÄ spesielle lyttargrensesnitt. PÄ denne mÄten kan du lytta etter bestemte hendingar og kalla opp den passande lyttemetoden. Funksjonen CreateUnoListener ventar pÄ det oppkalla lyttargrensesnittet og fÞrer deretter over eit objekt til grensesnittet som grensesnittet har stÞtte for. Dette objektet vert sidan overfÞrt til metoden for Ä registrera lyttaren.

Syntaks:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

Eksempel:

Dette eksempelet er basert pÄ eit Basic bibliotekobjekt.


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

Metoden CreateUnoListener krev to parameter. Den fÞrste er eit prefiks og er forklart i detaljar nedanfor. Den andre parameteren er det fullstendige namnet pÄ lytte-grensesnittet som du vil bruka.

Lyttaren mÄ deretter leggjast til i Broadcaster-objektet. Dette vert gjort ved Ä kalla opp den passande metoden for Ä leggja til ein lyttar. Denne metoden fÞlgjer alltid mÞnsteret "addFooListener" der "Foo" er lyttargrensesnittypen utan 'X'. I dette eksempelet vert metoden addContainerListener kalla opp for Ä registrera XContainerListener:


Dim oLib
oLib = BasicLibraries.Library1 ' Library1 mÄ finnast.
oLib.addContainerListener( oListener ) ' Register lyttaren

Lyttaren er nÄ registrert. NÄr det skjer ei hending, vil den tilsvarande lyttaren kalla opp den passande metoden frÄ com.sun.star.container.XContainerListener Interface.

Prefikset kallar opp registrerte lyttarar frÄ Basic-subrutiner. Basic kÞyretidssytemet sÞkjer etter Basic subrutiner eller funksjonar med namnet "PrefixListenerMethode" og kallar dei opp nÄr dei vert funne. Elles oppstÄr det ein kÞyretidsfeil.

I dette eksempelet brukar lyttar-grensesnittet desse metodane:

I dette eksempelet er prefikset ContListener_. Desse subrutinane mÄ difor vera implementerte i Basic:

Ein hendingsstrukturtype som inneheld informasjon om ei hending finst for kvar lyttar-type. NÄr ein lyttar-metode vert kalla opp, vert ei fÞrekomst av denne hendinga overfÞrt til metoden som parameter. Basic-lyttarmetodar kan ogsÄ kalla opp desse hendingsobjekta sÄ lenge hÞvelege parameter vert overfÞrte i del-deklarasjonen. For eksempel:


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

Du treng ikkje ta med parameteren for eit hendingsobjekt viss objektet ikkje er brukt:


' Minimal implementering av Sub-disposing
Sub ContListener_disposing
End Sub
Åtvaringsikon

Lyttarmetodar mÄ alltid implementerast for Ä unngÄ Basic kÞyretidsfeil.


StĂžtt oss!