CreateUnoListener Function

Kreas ekzempleron de Listener (aĆ­skultanto)

Multaj Uno-interfacoj ebligas registri aƭskultantojn je speciala aƭskultanta interfaco. Tio ebligas aƭskulti por specifaj eventoj kaj voki taƭgan aƭskultantan metodon. La funkcio CreateUnoListener atendas la vokitan aƭskultantan interfacon kaj pasas al la interfaco objekton subtenitan de la interfaco. Tiu objekto tiam pasiĝas al la metodo por registri la aƭskultanton.

Syntax:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

Example:

La jena ekzemplo baziĝas sur objekto de la Basic-biblioteko.


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

La metodo CreateUnoListener bezonas du parametrojn. La unua estas prefikso kaj estas priskribita sube. La dua parametro estas la tute specifita nomo de la aĆ­skultanta interfaco uzota.

Necesas aldoni la aƭskultanton al la objekto Broadcaster. Faru tion vokante taƭgan metodon por aldoni aƭskultanton. Tiuj metodoj ĉiam kongruas al la Ɲablono "addFooListener", kie "Foo" estas la tipo de aƭskultanta interfaco, sen la 'X'. En ĉi tiu ekzemplo, la metodo addContainerListener vokiĝas por registri je la XContainerListener:


Dim oLib
oLib = BasicLibraries.Library1 ' Library1 devas ekzisti!
oLib.addContainerListener( oListener ) ' Registras la aĆ­skultanton

La aĆ­skultanto nun estas registrita. Kiam evento okazas, la koresponda aĆ­skultanto vokas la bezonatan metodon el la interfaco com.sun.star.container.XContainerListener.

La prefikso vokas registritajn aƭskultantojn el subproceduroj de Basic. La rultempa sistemo de Basic serĉas subprocedurojn aƭ funkciojn de Basic kiuj havas la nomon "PrefixListenerMethode" kaj trovinte ilin vokas ilin. Alie, rultempa eraro okazas.

En ĉi tiu ekzemplo, la aƭskultanta interfaco uzas la jenajn metodojn:

En ĉi tiu ekzemplo, la prefikso estas ContListener_. La jenaj subproceduroj devas realiĝi en Basic:

Por ĉiu tipo de aƭskultanto ekzistas eventa struktura tipo kiu enhavas informon pri evento. Kiam aƭskultanta metodo vokiĝas, ekzemplero de la evento pasiĝas al la metodo kiel parametro. Aƭskultantaj metodoj de Basic povas ankaƭ voki tiujn eventajn objektojn, kondiĉe ke la taƭga parametro pasiĝas en la deklaro de la Sub. Ekzemple:


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

Oni ne bezonas inkluzivi la parametron de evento se la objekto ne estos uzata.


' Minimuma realigo de subproceduro disposing
Sub ContListener_disposing
End Sub
Averta bildsimbolo

Necesas ĉiam realigi aƭskultantajn (Listener) metodojn por eviti rultempajn erarojn de Basic.


Bonvolu subteni nin!