Edukiak
Indizea 🔎︎

# CreateUnoListener funtzioa

Listener instantzia sortzen du.

Hainbat Uno interfazeren bidez Listener-ak erregistra ditzakezu Listener interfaze berezi batean. Hala, gertaera jakinak entzun ditzakezu eta Listener metodo egokiari deitu diozaiokezu. CreateUnoListener funtzioa deitutako Listener interfazearen zain egoten da, eta gero, interfaze horri hark onartzen duen objektua pasatzen dio. Orduan, objektua metodora pasatzen da Listener erregistratzeko.

## Sintaxia:

    oEntzulea = CreateUnoListener( AurrizkiIzena, EntzuleInterfazeIzena )

## Adibidea:

Ondorengo adibidea Basic liburutegi-objektuan oinarrituta dago.

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

CreateUnoListener metodoak bi parametro behar ditu. Lehenengo parametroa aurrizki bat da, eta behean azaltzen da xehetasunez. Bigarrena erabili nahi duzun Listener interfazearen erabat kualifikatutako izena da.

Listener igorle-objektuari gehitu behar zaio. Horretarako, dagokion metodoari deitu behar zaio. Metodo horiek beti "addZerbaitListener" eredua edukitzen dute. "Zerbait" Listener interfaze mota da, 'X'rik gabe. Adibide honetan, addContainerListener metodoari deitzen zaio XcontainerListener erregistratzeko:

    Dim oLib
    oLib = BasicLibraries.Library1 ' Library1ek lehendik egon behar du!
    oLib.addContainerListener( oEntzulea ) ' Erregistratu entzulea

Listener orain erregistratuta dago. Gertaera bat gertatzen denean, dagokion Listener-ak dagokion metodoari deitzen dio com.sun.star.container.XContainerListener interfazetik.

Aurrizkiak erregistratutako Listener-ei deitzen die Basic azpierrutinetatik. Basic exekuzio-garaiko sistemak "PrefixListenerMethode" izena duten Basic azpierrutinak edo funtzioak bilatzen ditu, eta aurkitutakoan deitu egiten die. Bestela, exekuzio-errorea gertatuko da.

Adibide honetan, Listener interfazea erabiltzen da metodo hauei deitzeko:

- disposing:

- Listener oinarrizko interfazea (com.sun.star.lang.XEventListener): Listener interfaze guztien oinarrizko interfazea

- elementInserted:

- com.sun.star.container.XContainerListener interfazearen metodoa

- elementRemoved:

- com.sun.star.container.XContainerListener interfazearen metodoa

- elementReplaced:

- com.sun.star.container.XContainerListener interfazearen metodoa

Adibide honetan, aurrizkia ContListener_ da. Beraz, azpierrutina hauek inplementatu behar dira Basic-en:

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

Gertaera bati buruzko informazioa duen gertaeraren egitura mota Listener mota guztientzat egoten da. Listener metodo bati deitzean, gertaera horren instantzia metodora pasatzen da parametro gisa. Basic-eko Listener metodoek gertaera-objektu horiei ere deitu diezaiekete, baldin eta parametro egokia pasatzen bada Sub deklarazioan. Adibidez:

    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

Gertaera-objektu baten parametroa ez duzu sartu behar objektu hori erabiltzen ez bada:

    ' Sub disposing-en inplementazio minimoa
    Sub ContListener_disposing
    End Sub

Listener metodoak beti inplementatu behar dira Basic exekuzio-errorerik ez gertatzeko.