IBM Lotus Symphony


‏‎CreateUnoListener Function [Runtime]‎‏

يتم تكوين نسخة Listener.

تقوم العديد من واجهات تعامل Uno بالسماح لك بتسجيل Listeners في واجهة تعامل Listener خاصة. يسمح لك هذا بعملية Listen لأحداث معينة واستدعاء طريقة Listener المناسبة. تقوم وظيفة CreateUnoListener بانتظار واجهة تعامل Listener التي تم استدعاءها ثم تقوم بامرار عنصر لواجهة التعامل يتم دعمه من خلال واجهة التعامل. عندئذ سيتم امرار العنصر الى الطريقة لتسجيل Listener.

الصيغة:

‏‎oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )‎‏

مثال:

المثال التالي يعتمد على عنصر Basic library object.

Dim oListener

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

تتطلب طريقة CreateUnoListener معاملين. الأول عبارة عن بادئة ويتم شرحه بالتفصيل فيما يلي. المعامل الثاني اسم مصنف بالكامل لواجهة تعامل Listener التي تريد استخدامها.

يجب عندئذ اضافة Listener لعنصر Broadcaster Object. يتم تنفيذ ذلك من خلال استدعاء الطريقة المناسبة لاضافة Listener. هذه الطرق تتبع دائما النموذج "addFooListener"، حيث يكون "Foo" هو Listener Interface Type، بدون 'X'. في هذا المثال، يتم استدعاء طريقة addContainerListener لتسجيل XContainerListener:

Dim oLib

‏‎oLib = BasicLibraries.Library1 ' Library1 must exist!‎‏

‏‎oLib.addContainerListener( oListener ) ' Register the listener‎‏

تم الآن تسجيل Listener. عند حدوث حدث، يقوم Listener المناظر باستدعاء الطريقة المناسبة من واجهة تعامل com.sun.star.container.XContainerListener Interface.

تقوم البادئة باستدعاء Listeners مسجلين من Basic-subroutines. يقوم النظام Basic run-time system بالبحث عن Basic-subroutines أو functions التي لها الاسم "PrefixListenerMethode" ويقوم باستدعاءهم عند ايجادهم. خلاف ذلك، يحدث خطأ run-time.

في هذا المثال، تستخدم واجهة التعامل Listener-Interface الطرق التالية:

في هذا المثال، تكون البادئة هي ContListener_. لذلك يجب تجهيز subroutines التالية في Basic:

نوع event structure type يحتوي على معلومات عن حدث يوجد لكل أنواع Listener. عند استدعاء Listener method، يتم امرار نسخة من هذا الحدث للطريقة كمعامل. يمكن أن تقوم أيضا طرق Basic Listener methods باستدعاء عناصر هذه الأحداث، وذلك طالما تم امرار المعامل المناسب في Sub declaration. على سبيل المثال:

‏‎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

لا يجب أن تقوم بتضمين المعامل لعنصر حدث اذا كان العنصر غير مستخدم:

‏‎' Minimal implementation of Sub disposing‎‏

Sub ContListener_disposing

End Sub

شارة التحذير يجب أن يتم تجهيز طرق عنصر الانصات دائما لتفادي أخطاء تشغيل Basic.

التعليق التقييمي عن البرنامج | المزيد من المطبوعات الفنية | العلامات التجارية