CreateUnoListener Function

Lumilikha ng isang halimbawa ng Listener.

Hinahayaan ka ng maraming bagay sa Uno na magparehistro ng mga tagapakinig na may nakalaang mga interface ng tagapakinig. Nagbibigay-daan ito upang makinig para sa mga partikular na kaganapan at tumawag sa naaangkop na paraan ng tagapakinig. Ang CreateUnoListener Ang function ay nagtatakda ng interface ng tagapakinig na nauugnay sa isang bagay na UNO. Ang interface ng tagapakinig ay nakatali sa nauugnay nitong object.

Syntax:


    CreateUnoListener( Prefix As String, Typename As String) As Object

Mga Parameter:

Prefix : Isang text prefix na ginagamit sa BASIC subroutine na humahawak ng mga kaganapan.

Typename : Isang ganap na kwalipikadong pangalan ng interface ng tagapakinig ng UNO.

Ibinalik na halaga:

Ang serbisyo ng UNO na naaayon sa Typename pangalan ng interface ng tagapakinig, Null halaga kung hindi man.

Halimbawa:

Ang sumusunod na halimbawa ay nakikinig sa mga kaganapang nagaganap para sa isang BASIC library object.


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

Ang CreateUnoListener Ang pamamaraan ay nangangailangan ng dalawang parameter. Ang una ay Prefix at ipinaliwanag nang detalyado sa ibaba. Typename ang pangalawang parameter ay ang ganap na kwalipikadong pangalan ng interface ng tagapakinig.

Dapat na nakarehistro ang bawat tagapakinig sa tampok na broadcaster ng LibreOffice. Ginagawa ito sa pamamagitan ng pagbubuklod sa bawat tagapakinig sa nauugnay nitong bagay. Ang mga pamamaraan ng pagbigkis ay palaging sumusunod sa pattern ' idagdag Foo Tagapakinig ', kung saan ang 'Foo' ay ang uri ng object ng interface ng tagapakinig, nang walang 'X'. Sa halimbawang ito, ang addContainerListener pamamaraan ay tinatawag na upang irehistro ang XContainerListener :


Dim oLib As Object
oLib = BasicLibraries.Library1 ' Dapat na umiiral ang Library1!
oLib.addContainerListener( oListener ) ' Irehistro ang tagapakinig

Nakarehistro na ang nakikinig. Kapag nangyari ang isang kaganapan, tatawagin ng aktibong tagapakinig ang naaangkop na pamamaraan na tinukoy sa com.sun.star.container.XContainerListener interface.

Kinakailangan ng mga nakarehistrong BASIC na subroutine na hinihimok ng kaganapan na gumamit ng tinukoy Prefix . Ang BASIC run-time system ay naghahanap ng mga subroutine o function na may pangalang 'Prefix+ListenerMethod' at tinatawag ang mga ito kapag natagpuan. Kung hindi, nangyayari ang isang run-time na error.

Sa halimbawang ito, com.sun.star.container.XContainerListener Tinutukoy ng interface ang mga sumusunod na pamamaraan:

paraan

paglalarawan

pagtatapon

com.sun.star.lang.XEventListener base na interface para sa lahat ng Interface ng Listener

elementInserted

Paraan ng com.sun.star.container.XContainerListener interface

elementRemoved

Paraan ng com.sun.star.container.XContainerListener interface

elementReplaced

Paraan ng com.sun.star.container.XContainerListener interface


Ang 'ContListener_' na ginamit sa halimbawang ito ay nagpapahiwatig na ang mga sumusunod na subroutine ay dapat ipatupad sa BASIC:

Ang bawat interface ng tagapakinig ay tumutukoy sa isang hanay ng mga kinokontrol na pangalan ng kaganapan na nauugnay sa mga bagay na Uno. Kapag naganap ang isang kaganapan, ipinapadala ito sa pamamaraan bilang isang parameter. Ang mga pangunahing pamamaraan ng kaganapan ay maaari ding tumawag sa isa't isa, hangga't ang naaangkop na parameter ay ipinasa sa Sub deklarasyon. Halimbawa:


Sub ContListener_disposing( oEvent As com.sun.star.lang.EventObject )
    MsgBox "disposing"
End Sub
 
Sub ContListener_elementInserted( oEvent As com.sun.star.container.ContainerEvent )
    MsgBox oEvent.Source.' "elementInserted"
End Sub
 
Sub ContListener_elementRemoved( oEvent As com.sun.star.container.ContainerEvent )
    MsgBox "elementRemoved"
End Sub
 
Sub ContListener_elementReplaced( oEvent As com.sun.star.container.ContainerEvent )
    MsgBox "elementReplaced"
End Sub

Hindi kailangang isama ang parameter ng object ng kaganapan kapag hindi ginamit:


' Minimal na pagpapatupad ng Sub disposing
Sub ContListener_disposing
End Sub
warning

Ang mga pamamaraan ng tagapakinig ay dapat palagi ipatupad upang maiwasan ang mga BATAYANG error sa run-time.


tip

Gamitin ScriptForge library console kapag ang BASIC IDE ay hindi madaling ma-access, iyon ay sa panahon ng pagproseso ng mga kaganapan. Gamitin ang DebugPrint paraan upang magdagdag ng anumang nauugnay na impormasyon sa console. Maaaring i-dump ang mga entry sa console sa isang text file o i-visualize sa isang dialog window. Gamitin Bakas module ng Access2Base library bilang isang alternatibo



   Sub SF_Trace
      GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
      svc = CreateScriptService("ScriptForge.Exception")
      svc.Console modal:=False
      svc.DebugPrint("Lorem", "Ipsum", "...")
   End Sub ' SF_Trace
   
   Sub A2B_Trace
      GlobalScope.BasicLibraries.LoadLibrary("Access2Base")
      Access2Base.Trace.DebugPrint("Lorem", "Ipsum", "...")
      Access2Base.Trace.TraceConsole()
   End Sub ' A2B_Trace

Mangyaring suportahan kami!