Tartalom
Index 🔎︎

# CreateUnoListener függvény

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:

- disposing:

- 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 "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

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.