IBM Lotus Symphony
|
Тыңдаушы данасын жасайды.
Көптеген Uno интерфейстері тыңдаушыларды арнайы тыңдаушы интерфейсіне тіркеуге мүмкіндік береді. Бұл арнайы оқиғаларды тыңдауға және сәйкес тыңдаушы әдісін қосуға мүмкіндік береді. CreateUnoListener функциясы қосылған тыңдаушы интерфейсін күтіп, интерфейсті қолдайтын нысанға жібереді. Содан кейін, бұл нысан тыңдаушыны тіркеу әдісіне жіберіледі.
oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )
Келесі мысалы Basic кітапхана нысанына негізделген.
Dim oListener
oListener = CreateUnoListener( "ContListener_","com.sun.star.container.XContainerListener" )
CreateUnoListener әдісі екі параметрді талап етеді. Біріншісі төменде толық түсіндірілген префикс. Екінші параметр пайдалану керек толық куәліктендірілген Тыңдаушы интерфейсінің атауы.
Содан кейін Тыңдаушы Broadcaster Objec нысанына қосылуы керек. Бүл Тыңдаушыны қосу үшін тиісті әдісті шақыру арқылы жасалады. Бұл әдіс 'X' мәні жоқ, "Foo" Тыңдаушы интерфейсінің түрі болатын "addFooListener" мысалынан кейін жүреді. Бұл мысалда addContainerListener әдісі XContainerListener тіркелуі үшін қосылады:
Dim oLib
oLib = BasicLibraries.Library1 ' Library1 must exist!
oLib.addContainerListener( oListener ) ' Тыңдаушыны тіркеу
Тыңдаушы енді қосылған. Оқиға орындалғанда, сәйкес Тыңдаушы тиісті әдісті com.sun.star.container.XContainerListener интерфейсінен шақырады.
Префикс Basic ішкі бағдарламаларынан тіркелген Тыңдаушыларды шақырады. Basic орындау жүйесі "PrefixListenerMethode" деген атауы бар Basic ішкі бағдарламаларын немесе функцияларын іздейді және табылғанда шақырады. Олай болмаса, орындау қатесі пайда болады.
Бұл мысалда Тыңдаушы интерфейсі келесі әдістерді пайдаланады:
тастау:
Тыңдаушы негізделген интерфейс (com.sun.star.lang.XEventListener): барлық Тыңдаушы интерфейстері үшін негіз
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
Оқиға туралы ақпараты бар оқиға құрылымының түрі әр Тыңдаушы түрі үшін бар болады. Тыңдаушы әдісі шақырылғанда, осы оқиғаның данасы әдіске параметр ретінде жіберіледі. Basic Тыңдаушы әдістері осы оқиға нысандарын Sub жарияланымында тиімті параметр жіберілгенше шақыра алады. Мысалы:
Sub ContListener_disposing( oEvent )
MsgBox "disposing"
MsgBox oEvent.Dbg_Properties
Аяқталу ішкі элементі
Sub ContListener_elementInserted( oEvent )
MsgBox "elementInserted"
MsgBox oEvent.Dbg_Properties
Аяқталу ішкі элементі
Sub ContListener_elementRemoved( oEvent )
MsgBox "elementRemoved"
MsgBox oEvent.Dbg_Properties
Аяқталу ішкі элементі
Sub ContListener_elementReplaced( oEvent )
MsgBox "elementReplaced"
MsgBox oEvent.Dbg_Properties
Аяқталу ішкі элементі
Нысан пайдаланылмаса, оқиға нысанының параметрін қосу міндетті емес:
' ub тасталуының ең аз орындалуы
Sub ContListener_disposing
Аяқталу ішкі элементі
![]() |
Basic орындалу қателерін болдырмау үшін, Тыңдаушы әдістері әрдайым қолданылуы тиіс. |