Turinys
Rodyklė 🔎︎

# CreateUnoListener funkcija

Sukuria klausytojo egzempliorių.

Daugelis „Uno“ sąsajų leidžia registruoti klausytojus specialioje klausytojų sąsajoje. Tai leidžia tvarkyti konkrečius įvykius ir iškviesti tinkamą klausytojo metodą. Funkcija „CreateUnoListener“ laukia iškviestos klausytojo sąsajos ir tada perduoda sąsajai objektą, kurį palaiko ši sąsaja. Tada šis objektas perduodamas klausytojo registravimo metodui.

### Sintaksė:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

### Pavyzdys:

Šis pavyzdys yra pagrįstas „Basic library“ objektu.

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

„CreateUnoListener“ metode yra du parametrai. Pirmasis yra priešdėlis ir išsamiai paaiškintas toliau. Antrasis parametras yra visiškai tinkamas norimos naudoti agento sąsajos pavadinimas.

Tada klausytojas turi būti pridėtas prie transliuotojo objekto. Tai daroma iškviečiant tinkamą būdą, kaip pridėti klausytoją. Šie metodai visada naudojami pagal „addFooListener“ modelį, kuriame „Foo“ yra klausytojo sąsajos tipas be „X“. Šiame pavyzdyje „addContainerListener“ metodas iškviečiamas registruoti „XContainerListener“:

    Dim oLib
    oLib = BasicLibraries.Library1 ' Biblioteka „Library1“ turi egzistuoti!
    oLib.addContainerListener( oListener ) ' Registruokite klausytoją

Klausytojas dabar užregistruotas. Įvykus įvykiui, atitinkamas klausytojas iškviečia atitinkamą metodą iš sąsajos com.sun.star.container.XContainerListener.

Naudojant priešdėlį skambinama registruotiems klausytojams iš paprogramių „Basic“. „Basic run-time“ sistema ieško „Basic“ paprogramių ar funkcijų, turinčių pavadinimą „PrefixListenerMethode“, ir jas radus iškviečia. Priešingu atveju įvyksta vykdymo klaida.

Šiame pavyzdyje „Listener-Interface“ naudoja šiuos metodus:

- disposing:

- Klausytojo pagrindinė sąsaja (com.sun.star.lang.XEventListener): bazinė visų klausytojų sąsajų sąsaja

- elementInserted:

- „Com.sun.star.container.XContainerListener“ sąsajos metodas

- elementRemoved:

- „Com.sun.star.container.XContainerListener“ sąsajos metodas

- elementReplaced:

- „Com.sun.star.container.XContainerListener“ sąsajos metodas

Šiame pavyzdyje priešdėlis yra „„ContListener_“. Todėl programoje „Basic“ turi būti įdiegtos šios paprogramės:

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

Įvykio struktūros tipas, kuriame yra informacijos apie įvykį, egzistuoja kiekvienam klausytojo tipui. Kai iškviečiamas „Listener“ metodas, šio įvykio egzempliorius perduodamas metodui kaip parametras. „Basic“ klausytojo metodai taip pat gali iškviesti šiuos įvykių objektus, jei atitinkamas parametras yra pateiktas subdeklaracijoje. Pavyzdžiui:

    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

Jei objektas nenaudojamas, nereikia įtraukti įvykio objekto parametro:

    ' Minimalus paproghramių šalinimo įgyvendinimas
    Sub ContListener_disposing
    End Sub

Klausytojo metodai turi būti visada įgyvendinami, kad būtų išvengta „Basic“ vykdymo klaidų.