Sisukord
Register 🔎︎

# CreateUnoListener funktsioon

Loob kuulaja eksemplari.

Paljud Uno liidesed võimaldavad spetsiaalses kuulajaliideses registreeerida kuulajaid. Tänu sellele saad kuulata teatud sündmusi ja kutsuda sobiva kuulajameetodi. Funktsioon CreateUnoListener ootab kutsutud kuulajaliidest ja edastab seejärel liidesele objekti, mida liides toetab. Objekt edastatakse seejärel kuulaja registreerimiseks meetodile.

### Süntaks:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

### Näide:

Järgnev näide põhineb BASICu teegi objektil.

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

Meetodi CreateUnoListener jaoks on vaja kahte parameetrit. Esimene on eesliide aj seda kirjeldatakse edaspidi täpsemalt. Teine parameeter on kasutatava kuulajaliidese täielik nimi.

Seejärel tuleb kuulaja lisada leviedastusobjektile. Selleks kutsu vastav kuulaja lisamise meetod. Need meetodid vastavad alati mallile "addFooListener", kus Foo on kuulajaliidese tüüp ilma X-ta. Selles näites kutsutakse meetod addContainerListener liidese XContainerListener registreerimiseks:

    Dim oLib
    oLib = BasicLibraries.Library1 ' Library1 peab eksisteerima!
    oLib.addContainerListener( oListener ) ' Jälgija registreerimine

Kuulaja on nüüd registreeritud. Sündmuse ilmnemisel kutsub vastav kuulaja sobiva meetodi com.sun.star.container.XContainerListener liidesest.

Eesliide kutsub registreeritud kuulajad Basicu alamprotseduuridest. Basicu käitusajasüsteem otsib neid Basicu alamprotseduure või funktsioone, mille nimi on "PrefixListenerMethode" ja nende leidmise korral kutsub need. Muul juhul ilmneb käitusajaviga.

Selles näites kasutab kuulaja liides järgmisi meetodeid:

- disposing:

- Kuulaja põhiliides (com.sun.star.lang.XEventListener): kõigi kuulaja liideste põhiliides

- elementInserted:

- Liidese com.sun.star.container.XContainerListener meetod

- elementRemoved:

- Liidese com.sun.star.container.XContainerListener meetod

- elementReplaced:

- Liidese com.sun.star.container.XContainerListener meetod

Selles näites on eesliide ContListener_. Seetõttu tuleb Basicus rakendada järgmised alamprotseduurid:

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

Sündmuse struktuuri tüüp, mis sisaldab teavet selle kohta kas sündmus on olemas kõigi kuulaja tüüpide jaoks. Kuulaja meetodi kutsumisel edastatakse sündmuse eksemplar meetodile parameetrina. Basicu kuulaja meetodid võivad kutsuda ka neid sündmuseobjekte, kuni Sub kirjeldusse edastatakse sobiv parameeter. Näiteks:

    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

Sündmuse objekti parameetrit pole vaja sisestada, kui see objekt pole kasutusel:

    ' Sub kõrvaldamise miinimumrakendus
    Sub ContListener_disposing
    End Sub

Basicu käitusajavigade ennetamiseks peavad kuulaja meetodid olema alati rakendatud.