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 eksemplet 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 lyttargrensesnitttypen utan 'X'. I dette eksemplet vert metoden addContainerListener kalla op 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 eksemplet brukar lyttar-grensesnittet desse metodane:

I dette eksemplet er prefikset ContListener_. Desse subrutinene 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.