IBM Lotus Symphony


CreateUnoListener 関数 [実行時]

リスナーインスタンスを作成します。

Uno インターフェースの多くでは、リスナーを特殊なリスナーインターフェースに登録することができます。 これにより、特定のイベントの発生を監視して、必要なリスナーメソッドを呼び出すことができます。CreateUnoListener 関数は、呼び出されたリスナーインターフェースの到着を待ち、そのインターフェースのサポートするオブジェクトへ、インターフェースを引き渡します。 次にこのオブジェクトはメソッドへ引き渡されてリスナーが登録されます。

構文:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

例:

下記の例は、Basic ライブラリオブジェクトをベースにしています。

Dim oListener

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

CreateUnoListener メソッドは、2 つのパラメータを使用します。 1 番目のパラメータはプレフィックスで、詳細は後述します。 2 番目のパラメータは、使用する Listener インターフェースの完全な名前です。

Listener は Broadcaster Object に追加する必要があります。 この処理は、Listener 追加用のメソッドを呼び出すことで実行します。 通常こうしたメソッドの取るパターンは「addFooListener」という形式で、ここで「Foo」が Listener Interface Type で「X」は付きません。 ここでの例では、addContainerListener メソッドを呼び出して XContainerListener を登録しています。

Dim oLib

oLib = BasicLibraries.Library1 ' Library1 の存在が必要

oLib.addContainerListener( oListener ) ' リスナーの登録

これで Listener が登録されます。 イベントが発生すると、該当する Listener が com.sun.star.container.XContainerListener Interface から呼び出されます。

プレフィックスは、登録した Listener を Basic サブルーチンから呼び出します。 Basic の実行時システムは、「PrefixListenerMethod」という名前の Basic サブルーチンや関数を検索して、該当するものを発見した段階でこれらを呼び出します。 該当するものが存在しないと、ランタイムエラーが発生します。

ここでの例では、Listener-Interface は下記のメソッドを利用しています。

ここでの例では、プレフィックスを ContListener_ としています。このため下記のサブルーチン群を Basic に実装しておく必要があります。

Listener の種類ごとに、イベント情報を格納するイベント構造型が存在します。 Listener メソッドが呼び出されると、このイベントのインスタンスがメソッドにパラメータとして渡されます。Basic の Listener メソッドは、該当するパラメータが 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

使用しないオブジェクトについては、イベントオブジェクトのパラメータを省略できます。

' disposing 用 Sub の最小構成

Sub ContListener_disposing

End Sub

[警告] アイコン Basic のランタイムエラーを回避するため、Listener メソッドは常に実装しておく必要があります。

製品フィードバック | その他の資料 | 商標