Module
Contents
Index 🔎︎

# CreateUnoListener Function

ქმნის მსმენელის ნიმუშს.

მრავალი Uno ინტერფეისი საშუალებას გაძლევთ დაარეგისტრიროთ მსმენელები სპეციალურ სასმენ ინტერფეისზე. ეს საშუალებას გაძლევთ მოუსმინოთ კონკრეტულ მოვლენებს და გამოიძახოთ საჭირო მსმენელის მეთოდი. CreateUnoListener ფუნქცია უცდის დარეკილ მსმენელის ინტერფეისს და შემდეგ გადასცემს ინტერფეისს ობიექტს, რომელსაც აქვს მხარდაჭერა. ეს ობიექტი შემდეგ გადაეცემა მეთოდეს რათა დაარეგისტრიროს მსმენელი.

## სინტაქსი

    oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

## მაგალითი:

შემდეგი მაგალითი დამყარებულია BASIC ბიბლიოთეკის ობიექტზე

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

CreateUnoListener მეთოდი მოითხოვს ორ პარამეტრს. პირველი არის თავსართი, რომელიც ახსნილია ქვემოთ. მეორე პარამეტრი არის იმ სრული მსმენელის ინტერფეისის სრული სახელი, რომლის გამოყენებაც გსურთ.

მსმენელი უნდა დაემატოს მაუწყებელ ობიექტს. ეს კეთდება მსმენელის დასამატებლად შესაბამისი მეთოდის გამოძახებით, ეს მეთოდები ყოველთვის მიყვებიან შაბლონს "addFooListener", სადაც "Foo" არის მსმენელი იტნერფეისის ტიპი 'X'-ის გარეშე. ამ მაგალითში, addContainerListener მეთოდი გამოიძახება XContainerListener -ის დასარეგისტრირებლად:

    Dim oLib
    oLib = BasicLibraries.Library1 ' Library1 უნდა არსებობდეს!
    oLib.addContainerListener( oListener ) ' მსმენელის რეგისტრაცია

მსმენელი დარეგისტრირებულია. როდესაც მოვლენა მოდება, შესაბამისი მსმენელი გამოიძახებს შესაბამის მეთოდს com.sun.star.container.XContainerListener ინტერფეისიდან.

თავსართი იძახებს დარეგისტრირებულ მსმენელებს Basic-ის ქვე-როუტინებიდან. Basic სისტემა ეძებს Basic-ის ქვე-როუტინებს ან ფუნქციებს, რომლებსაც აქვთ სახელი "PrefixListenerMethode" და იძახებს მათ პოვნის შემთხვევაში. წინააღმდეგ შემთხვევაში მოხდება შეცდომა გაშვებისას.

ამ მაგალითში Listener-Interface-ი იყენებს შემდეგ მეთოდებს:

- განლაგება:

- Listener base interface (com.sun.star.lang.XEventListener): base interface for all Listener Interfaces

- elementInserted:

- Method of the com.sun.star.container.XContainerListener interface

- elementRemoved:

- Method of the com.sun.star.container.XContainerListener interface

- elementReplaced:

- Method of the com.sun.star.container.XContainerListener interface

In this example, the prefix is ContListener_. შემდეგი ქვეპროგრამა საჭიროა განხორციელდეს Basic-ში:

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

მოვლენის სტრუქტურის ტიპი რომელიც შეიცავს ინფორმაციას მოვლენის შესახებ არსებობს ყოველი მსმენელისთვის. როდესაც მსმენელის მეთოდი გამოიძახება, ამ მოვლენის ასლი გადაეცემა მეთოდს, როგორც პარამეტრი. Basic მსმენელის მეთოდები შეგიძლიათ გამოიძახოთ ამ მოვლენის ობიექტებს, მაშინვე, როგორც კი შესაბამისი პარამეტრი იქნება გადაცემული ქვე გამოცხადებაში:

    Sub ContListener_disposing( oEvent )
        MsgBox "განლაგება"
        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

თუ ობიექტი არ გამოიყენება, მოვლენის პარამეტრის ჩამატება აუცილებელი არ არის:

    ' Sub disposing -ის მინიმალური განხორციელება
    Sub ContListener_disposing
    End Sub

Listener მეთოდები საჭიროა დაინერგოს ყოველთვის გაშვებისას Basic შეცდომების თავიდან ასაცილებლად.