CreateUnoListener Function
स्रोताको दृष्टान्त सिर्जना गर्नुहोस् ।
धेरै Uno इन्टरफेसहरूले विशेष स्रोता इन्टरफेसमा तपाईँलाई पनि दर्ता स्रोताहरूको रूपमा मान्ने छ । तपाईँलाई निर्दिष्ट घटनाहरूका लागि सुन्नलाई र उचित तरीका बोलाउनलाई यो अनुमति दिएको हो । CreateUnoListener प्रकार्यले स्रोता इन्टरफेस बोलाउनलाई र त्यसपछि वस्तुमा इन्टरफेस पासगर्न पर्खन्छ जसले इन्टरफेसको समर्थन गर्दछ । यो वस्तुले दर्ता स्रोतालाई विधिमा पास गरेको हुन्छ ।
वाक्य संरचना:
oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )
उदाहरण:
दिएका उदाहरणहरू आधारभूत लाइब्रेरी वस्तुमा आधारित हुन्छन् ।
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" र तिनीहरूलाई भेटाएको बेला बोलाउन खोजी गर्दछन । अन्यथा, रन-टाइम त्रुटि आउछ ।
यो उदाहरमा,स्रोता-इन्टरफेसले दिएको विधिहरू प्रयोग गर्दछन्:
-
नष्ट गर्दा:
-
स्रोता आधारारित इन्टरफेस(com.sun.star.lang.XEventListener): सबै इन्टरफेसहरूका लागि आधारित इन्टरफेस
-
घुसाईएको तत्व:
-
com.sun.star.container.XContainerListener इन्टरफेस विधी
-
हटाईएको तत्व:
-
com.sun.star.container.XContainerListener इन्टरफेस विधी
-
बदलिएको तत्व:
-
com.sun.star.container.XContainerListener इन्टरफेस विधी
यो उदाहरणमा, उपसर्ग ContListener_ हो । दिएका उप कार्यतालिकाहरू त्यसकारण आधारभूतमा लागू गर्न जरुरी हुन्छ:
-
ContListener_disposing
-
ContListener_elementInserted
-
ContListener_elementRemoved
-
ContListener_elementReplaced
एउटा घटना बनौट जसले प्रत्येक स्रोता प्रकारकोलागि अवस्थित घटनाकोबारेमा सूचना सम्मिलित गराउछ । जब स्रोता विधि बोलाएको हुन्छ,यो घटनाको दृष्टान्तले परामितिको रूपमा विधिलाई पास गरेको हुन्छ । आधारभूत स्रोता बीधिहरूले ती घटना वस्तुहरू पनि बोलाउन सक्छन् त्यसैगरि उचित परामितिको रूपमा उपघोषणामा पास हुन्छन्:
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 "तत्व बदलियो"
MsgBox oEvent.Dbg_Properties
End Sub
तपाईँले यदि वस्तु प्रयोग नगरेको खण्डमा वस्तु घटनाको परामिति संलग्न गर्नलाई आवश्यक हुँदैन:
'सब नष्टको न्युनतम कार्यान्वयन
Sub ContListener_disposing
End Sub
स्रोता विधिहरूले आधारभूत रन-टाइम त्रुटिहरू त्याग्नलाई प्रायजसो कार्यान्वयन गर्न जरुरी छ ।