CreateUnoListener Function
Skapar en lyssnarinstans.
MÄnga Uno-grÀnssnitt lÄter dig registrera lyssnare pÄ speciella lyssnargrÀnssnitt. PÄ detta sÀtt kan du lyssna efter specifika hÀndelser och anropa lÀmpliga lyssnarmetoder. Funktionen CreateUnoListener vÀntar pÄ det anropade lyssnargrÀnssnittet och skickar sedan ett objekt till grÀnssnittet som grÀnssnittet stöder. Detta objekt skickas sedan till metoden för att registrera lyssnaren.
Syntax:
oListener = CreateUnoListener( Prefixnamn, LyssnargrÀnssnittsnamn )
Exempel:
Följande exempel baseras pÄ ett Basic-biblioteksobjekt.
Dim oListener
oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )
Metoden CreateUnoListener krÀver tvÄ parametrar. Den första Àr ett prefix och förklaras utförligt nedan. Den andra parametern Àr det fullstÀndiga namnet för lyssnargrÀnssnittet som du vill anvÀnda.
Lyssnaren mÄste sedan lÀggas till i Broadcaster-objektet. Detta Ästadkoms genom att lÀmplig metod för tillÀgg av en lyssnare anropas. Metoderna följer alltid mönstret "addFooListener", dÀr "Foo" Àr lyssnargrÀnssnittstypen utan 'X'. I det hÀr exemplet anropas metoden addContainerListener för att registrera XContainerListener:
Dim oLib
oLib = BasicLibraries.Bibliotek1 ' Bibliotek1 mÄste finnas!
oLib.addContainerListener( oListener ) ' Registrera lyssnaren
Lyssnaren Àr nu registrerad. NÀr en hÀndelse intrÀffar anropar motsvarande lyssnare lÀmplig metod frÄn grÀnssnittet com.sun.star.container.XContainerListener.
Prefixet anropar registrerade lyssnare frÄn Basic-subrutiner. Basic-runtimesystemet söker efter Basic-subrutiner eller funktioner som har namnet "PrefixListenerMethode" och anropar dem nÀr de hittas. Annars intrÀffar ett runtime-fel.
I det hÀr exemplet anvÀnder lyssnargrÀnssnittet följande metoder:
-
disponering:
-
basgrÀnssnitt för lyssnare (com.sun.star.lang.XEventListener): basgrÀnssnitt för alla lyssnargrÀnssnitt
-
elementInserted:
-
Metod för grÀnssnittet com.sun.star.container.XContainerListener
-
elementRemoved:
-
Metod för grÀnssnittet com.sun.star.container.XContainerListener
-
elementReplaced:
-
Metod för grÀnssnittet com.sun.star.container.XContainerListener
I det hÀr exemplet Àr prefixet ContListener_. Följande subrutiner mÄste dÀrför implementeras i Basic:
-
ContListener_disposing
-
ContListener_elementInserted
-
ContListener_elementRemoved
-
ContListener_elementReplaced
En hÀndelsestruktur som innehÄller information om en hÀndelse finns för varje lyssnartyp. NÀr en lyssnarmetod anropas skickas en instans av den hÀr hÀndelsen till metoden som en parameter. Basic-lyssnarmetoder kan ocksÄ anropa de hÀr hÀndelseobjekten sÄ lÀnge som lÀmpliga parametrar skickas i Sub-deklarationen. Till exempel:
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 behöver inte inkludera parametern för ett hÀndelseobjekt om det inte anvÀnds:
' Minimal implementering av Sub-disponering
Sub ContListener_disposing
End Sub
Lyssnarmetoder mÄste alltid implementeras för att undvika Basic runtime-fel.