CreateUnoListener Function
Létrehoz egy figyelőpéldányt.
Számos Uno-felĂĽlet teszi lehetĹ‘vĂ© figyelĹ‘k regisztrálását egy speciális figyelĹ‘felĂĽleten. Ennek segĂtsĂ©gĂ©vel figyelhet adott esemĂ©nyeket, Ă©s meghĂvhatja a megfelelĹ‘ figyelĹ‘metĂłdust. A CreateUnoListener fĂĽggvĂ©ny vár a meghĂvott figyelĹ‘felĂĽletre, majd átadja a felĂĽletet egy objektumnak, amelyet a felĂĽlet támogat. Az objektum ezután a figyelĹ‘ regisztrálásához átadĂłdik a metĂłdusnak.
Szintaxis:
oListener = CreateUnoListener( Előtagnév, FigyelőfelületNév )
PĂ©lda:
Az alábbi példa egy Basic-programkönyvtár-objektumon alapul.
Dim oListener
oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )
A CreateUnoListener metĂłdus kĂ©t paramĂ©tert vár. Az elsĹ‘ az elĹ‘tag, Ă©s ez az alábbiakban kerĂĽl rĂ©szletes ismertetĂ©sre. A második paramĂ©ter a használni kĂvánt figyelĹ‘felĂĽlet teljes neve.
A figyelĹ‘t ezután hozzá kell adni a Broadcaster objektumhoz. Ez a figyelĹ‘ hozzáadására szolgálĂł megfelelĹ‘ metĂłdus meghĂvásával törtĂ©nik. Ezek a metĂłdusok mindig az „addFooListener” mintát követik, ahol a „Foo” a figyelĹ‘felĂĽlet tĂpusa, „X” nĂ©lkĂĽl. Ebben a pĂ©ldában az addContainerListener metĂłdus az XContainerListener regisztrálása Ă©rdekĂ©ben kerĂĽl meghĂvásra:
Dim oLib
oLib = BasicLibraries.Library1 ' A Library1-nek léteznie kell!
oLib.addContainerListener( oListener ) ' A figyelő regisztrálása
A figyelĹ‘ most már regisztrálva van. Egy esemĂ©ny bekövetkezĂ©sekor a megfelelĹ‘ figyelĹ‘ meghĂvja a megfelelĹ‘ metĂłdust a com.sun.star.container.XContainerListener felĂĽletrĹ‘l.
Az elĹ‘tag regisztrált figyelĹ‘ket hĂv meg a Basic-szubrutinokbĂłl. A Basic futásidejű rendszer „PrefixListenerMethode” nevű Basic-szubrutinokat vagy -fĂĽggvĂ©nyeket keres, Ă©s ha talál ilyet, meghĂvja. EllenkezĹ‘ esetben futásidejű hiba törtĂ©nik.
Ebben a példában a figyelőfelület a következő eljárásokat használja:
-
felszabadĂtás:
-
Figyelő alapfelülete (com.sun.star.lang.XEventListener): az összes Figyelőfelület alapfelülete
-
elementInserted:
-
A com.sun.star.container.XContainerListener felĂĽlet metĂłdusa
-
elementRemoved:
-
A com.sun.star.container.XContainerListener felĂĽlet metĂłdusa
-
elementReplaced:
-
A com.sun.star.container.XContainerListener felĂĽlet metĂłdusa
Ebben a pĂ©ldában az elĹ‘tag a ContListener_. Az alábbi szubrutinokat kell megvalĂłsĂtani Basicben:
-
ContListener_disposing
-
ContListener_elementInserted
-
ContListener_elementRemoved
-
ContListener_elementReplaced
Egy esemĂ©nystruktĂşra-tĂpus, amely informáciĂłkat tartalmaz minden figyelĹ‘tĂpusban lĂ©tezĹ‘ esemĂ©nnyel kapcsolatban. A figyelĹ‘metĂłdus meghĂvásakor az esemĂ©ny egy pĂ©ldánya paramĂ©terkĂ©nt átadĂłdik a metĂłdusnak. A Basic-figyelĹ‘metĂłdusok szintĂ©n meghĂvhatják ezeket az esemĂ©nyobjektumokat, amĂg a megfelelĹ‘ paramĂ©tert átadja a szubrutin-deklaráciĂł. PĂ©ldául:
Sub ContListener_disposing( oEvent )
MsgBox "felszabadĂtás"
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
Nem szükséges megadni egy eseményobjektum paraméterét abban az esetben, ha az objektumot nem használja:
' Szubrutin felszabadĂtásának minimális megvalĂłsĂtása
Sub ContListener_disposing
End Sub
A figyelĹ‘metĂłdusokat mindig meg kell valĂłsĂtani a Basic futásidejű hibák elkerĂĽlĂ©sĂ©nek Ă©rdekĂ©ben.