Contents
Index 🔎︎

# CreateUnoListener Function

បង្កើត​វត្ថុ Listener មួយ ។

ចំណុច​ប្រទាក់ Uno ជា​ច្រើន​អាច​ឲ្យ​អ្នក​ចុះ​ឈ្មោះ​អ្នក​ស្តាប់​លើ​ចំណុច​ប្រទាក់​អ្នក​ស្តាប់​ពិសេស​មួយ ។ នេះ​អនុញ្ញាត​ឲ្យ​អ្នក​ស្តាប់​ព្រឹត្តិការណ៍​ជាក់លាក់ និង​ហៅ​វិធីសាស្ត្រ​អ្នក​ស្តាប់​ដែល​សមស្រប ។ អនុគមន៍ CreateUnoListener រង់ចាំ​ចំណុច​ប្រទាក់​ដែល​បាន​ហៅ ហើយ​បន្ទាប់​មក​ហុច​វត្ថុ​ចំណុច​ប្រទាក់​ដែល​ចំណុច​ប្រទាក់​គាំទ្រ ។ បន្ទាប់​មក​វត្ថុ​នេះ​​ត្រូវ​បាន​ហុច​ទៅ​វិធីសាស្ត្រ​ដើម្បី​ចុះ​ឈ្មោះ​អ្នក​ស្តាប់ ។

### Syntax:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

### Example:

ឧទាហរណ៍​ដូច​ខាង​ក្រោម​ពឹង​ផ្អែក​លើ​វត្ថុ​បណ្ណាល័យ Basic ។

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

វិធីសាស្ត្រ CreateUnoListener ត្រូវ​ការ​​ប៉ារ៉ាម៉ែត្រ​ពីរ ។ ដំបូង​គឺ​ជា​បុព្វបទ ហើយ​នឹង​ត្រូវ​បាន​ពន្យល់​ក្នុង​សេចក្តី​លម្អិត​ខាង​ក្រោម ។ ប៉ារ៉ាម៉ែត្រ​ទី​ពីរ​គឺ​ជា​ឈ្មោះ​ពេញ​លេញ​នៃ​ចំណុច​​ប្រទាក់ Listener ដែល​អ្នក​ចង់​ប្រើ ។

បន្ទាប់​មក Listener ត្រូវ​តែ​បន្ថែម​ទៅ​វត្ថុ Broadcaster ។ នេះ​ត្រូវ​បាន​​​ធ្វើ​​ដោយ​ហៅ​វិធីសាស្ត្រ​សមរម្យ សម្រាប់​បន្ថែម Listener មួយ ។ វិធីសាស្ត្រ​ទាំង​នេះ​តែងតែ​ធ្វើ​តាម​លំនាំ "addFooListener" ដែល "Foo" គឺ​ជា​ប្រភេទ​ផ្ទៃ​ប្រទាក់ Listener ដែល​គ្មាន 'X' ។ ក្នុង​ឧទាហរណ៍​នេះ វិធីសាស្ត្រ addContainerListener ត្រូវ​បាន​ហៅ​ដើម្បី​ចុះ​ឈ្មោះ XContainerListener ៖

    Dim oLib
    oLib = BasicLibraries.Library1 ' Library1 must exist!
    oLib.addContainerListener( oListener ) ' Register the listener

ឥឡូវ​នេះ Listener ត្រូវ​បាន​ចុះ​ឈ្មោះ ។ នៅ​ពេល​ព្រឹត្តិការណ៍​មួយ​កើត​ឡើង Listener ដែល​ត្រូវ​គ្នា​នឹង​ហៅ​វិធីសាស្ត្រ​ដែល​សមរម្យ​ពី​ផ្ទៃ​ប្រទាក់ com.sun.star.container.XContainerListener ។

បុព្វបទ​ហៅ Listeners ដែល​បាន​ចុះ​ឈ្មោះ​ពី​ទម្រង់​ការ​រង Basic ។ ប្រព័ន្ធ​ពេល​រត់​របស់ Basic ស្វែងរក​ទម្រង់​ការ​រង Basic ឬ​អនុគមន៍​ដែល​មាន​ឈ្មោះ "PrefixListenerMethode" និង​ហៅ​ពួក​វា​នៅ​ពេល​រក​ឃើញ ។ បើ​ពុំ​នោះ​សោត កំហុស​ពេល​រត់​មួយ​កើត​ឡើង ។

ក្នុង​ឧទាហរណ៍​​នេះ ផ្ទៃ​ប្រទាក់ Listener ប្រើ​វិធីសាស្ត្រ​ដូច​ខាង​ក្រោម ៖

- disposing:

- ចំណុច​ប្រទាក់​មូលដ្ឋាន Listener (com.sun.star.lang.XEventListener) ៖ ចំណុច​ប្រទាក់​មូលដ្ឋាន​សម្រាប់​ចំណុច​ប្រទាក់ Listener ទាំងអស់ ។

- elementInserted:

- វិធីសាស្ត្រ​នៃ​ចំណុច​​ប្រទាក់ com.sun.star.container.XContainerListener

- elementRemoved:

- វិធីសាស្ត្រ​នៃ​ចំណុច​​ប្រទាក់ com.sun.star.container.XContainerListener

- elementReplaced:

- វិធីសាស្ត្រ​នៃ​ចំណុច​​ប្រទាក់ com.sun.star.container.XContainerListener

ក្នុង​ឧទាហរណ៍​នេះ បុព្វបទ​គឺ ContListener_ ។ ដូច្នេះ​ទម្រង់​ការ​រង​ដូច​ខាង​ក្រោម ត្រូវ​តែ​ប្រតិបត្តិ​ក្នុង Basic ៖

- ContListener_disposing

- ContListener_elementInserted

- ContListener_elementRemoved

- ContListener_elementReplaced

ប្រភេទ​​រចនា​សម្ព័ន្ធ​ព្រឹត្តិការណ៍​មួយ ដែល​មាន​ព័ត៌មាន​អំពី​ព្រឹត្តិការណ៍​មួយ ដែល​​មាន​ស្រាប់​សម្រាប់​គ្រប់​ប្រភេទ Listener ។ នៅ​ពេល​វិធីសាស្ត្រ Listener មួយ​ត្រូវ​បាន​ហៅ វត្ថុ​មួយ​នៃ​ព្រឹត្តិការណ៍​នេះ នឹង​ត្រូវ​បាន​ហុច​ទៅ​វិធីសាស្ត្រ​ជា​ប៉ារ៉ាម៉ែត្រ​មួយ ។ វិធីសាស្ត្រ Listener របស់ Basic ក៏​អាច​ហៅ​វត្ថុ​ព្រឹត្តិការណ៍​ទាំង​នេះ ឲ្យ​តែ​ប៉ារ៉ាម៉ែត្រ​ដែល​សមស្រប​ត្រូវ​បាន​ហុច​ក្នុង​ការ​ប្រកាស Sub ។ ឧទាហរណ៍ ៖

    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

វិធីសាស្ត្រ Listener តែង​តែ ត្រូវ​បាន​ប្រតិបត្តិ​ដើម្បី​ចៀសវាង​កំហុស​ពេល​រត់​របស់ Basic ។