Contents
Index 🔎︎

# CreateUnoListener Function

स्रोताको दृष्टान्त सिर्जना गर्नुहोस् ।

धेरै Uno इन्टरफेसहरूले विशेष स्रोता इन्टरफेसमा तपाईँलाई पनि दर्ता स्रोताहरूको रूपमा मान्ने छ । तपाईँलाई निर्दिष्ट घटनाहरूका लागि सुन्नलाई र उचित तरीका बोलाउनलाई यो अनुमति दिएको हो । CreateUnoListener प्रकार्यले स्रोता इन्टरफेस बोलाउनलाई र त्यसपछि वस्तुमा इन्टरफेस पासगर्न पर्खन्छ जसले इन्टरफेसको समर्थन गर्दछ । यो वस्तुले दर्ता स्रोतालाई विधिमा पास गरेको हुन्छ ।

### Syntax:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

### Example:

दिएका उदाहरणहरू आधारभूत लाइब्रेरी वस्तुमा आधारित हुन्छन् ।

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

CreateUnoListener विधिलाई दुई परामितिहरूको आवश्यकता पर्दछ पहिलो उपसर्ग हो जसको व्याख्या समुच्छरूपमा तल गरिन्छ । दोस्रो परामिति स्रोता इन्टरफेसको नाम पुर्ण रूपले योग्य हुन्छ जसलाई प्रयोग गर्न चाहनुहुन्छ ।

स्रोताले प्रसारक वस्तुलाई त्यसमा थप्नलाई जरुरि हुन्छ । यसले थपिएको स्रोताका लागि बोलाएको उचित विधिद्वारा काम गर्दछ । यी विधिहरू प्राय "addFooListener" बान्किमा दिएका हुन्छन । जहाँ "Foo" 'X' बिनाको स्रोता इन्टरफेस प्रकार हुन्छ । यो उदाहरणमा,addContainerListener विधिले XContainerListener मा दर्ता गर्नुलाई बुझाउछ:

    Dim oLib
    oLib =आधारभूत पुस्तकालहरू.पुस्तकाल१ 'पुस्तकाल१अवस्थित हुन जरुरी छ!
    oLib.addContainerListener( oListener )ले' स्रोतामा दर्ता गर्दछ

स्रोता अब दर्ता हुन्छ । जब घटना घट्छ, अनुरूप स्रोताले com.sun.star.container.XContainerListener इन्टरफेसबाट उचित विधि बोलाउछ ।

उपसर्गले आधारभूत-उपकार्यतालिकाहरूबाट दर्ता भएका स्रोता बोलाउछ । आधारभूत रन-टाइम प्रणालीले आधारभूत उपकार्यतालिकाहरू वा प्रकार्यहरूका लागि जससँग नाम"PrefixListenerMethode" र तिनीहरूलाई भेटाएको बेला बोलाउन खोजी गर्दछन । अन्यथा, रन-टाइम त्रुटि आउछ ।

यो उदाहरमा,स्रोता-इन्टरफेसले दिएको विधिहरू प्रयोग गर्दछन्:

- disposing:

- स्रोता आधारारित इन्टरफेस(com.sun.star.lang.XEventListener): सबै इन्टरफेसहरूका लागि आधारित इन्टरफेस

- elementInserted:

- com.sun.star.container.XContainerListener इन्टरफेस विधी

- elementRemoved:

- com.sun.star.container.XContainerListener इन्टरफेस विधी

- elementReplaced:

- com.sun.star.container.XContainerListener इन्टरफेस विधी

यो उदाहरणमा, उपसर्ग ContListener_ हो । दिएका उप कार्यतालिकाहरू त्यसकारण आधारभूतमा लागू गर्न जरुरी हुन्छ:

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

एउटा घटना बनौट जसले प्रत्येक स्रोता प्रकारकोलागि अवस्थित घटनाकोबारेमा सूचना सम्मिलित गराउछ । जब स्रोता विधि बोलाएको हुन्छ,यो घटनाको दृष्टान्तले परामितिको रूपमा विधिलाई पास गरेको हुन्छ । आधारभूत स्रोता बीधिहरूले ती घटना वस्तुहरू पनि बोलाउन सक्छन् त्यसैगरि उचित परामितिको रूपमा उपघोषणामा पास हुन्छन्:

    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

तपाईँले यदि वस्तु प्रयोग नगरेको खण्डमा वस्तु घटनाको परामिति संलग्न गर्नलाई आवश्यक हुँदैन:

    'सब नष्टको न्युनतम कार्यान्वयन
    Sub ContListener_disposing
    End Sub

स्रोता विधिहरूले आधारभूत रन-टाइम त्रुटिहरू त्याग्नलाई प्रायजसो कार्यान्वयन गर्न जरुरी छ ।