ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

event.listener

リスナー オブジェクトを定義するクラス

構文

lh = event.listener(Hobj,'EventName',@CallbackFunction)

説明

event.listener クラスは、リスナー オブジェクトを定義します。リスナー オブジェクトは、指定されたイベントに応答し、イベントがトリガーされるときに呼び出すコールバック関数を識別します。

lh = event.listener(Hobj,'EventName',@CallbackFunction) は、EventName で名前が付けられたイベントについて、指定された Hobj オブジェクトに event.listener オブジェクトである lh を作成します。

Hobj がオブジェクト ハンドルの配列である場合、リスナーは配列で参照されたオブジェクトの名前の付いたイベントに応答します。

リスナー コールバック関数は、少なくとも 2 つの入力引数を受け入れなければなりません。たとえば、

function CallbackFunction(source,eventData)
   ...
end

ここで、source はイベントのソースであるオブジェクトで、関数 eventData は関数 event.EventData オブジェクトです。

event.listener クラスは handle クラスです。event.listener および event.proplistener のクラスは、同じ異種混合階層の一部です。したがって、両方のクラスのオブジェクトを含む配列を作成できます。両方のクラスのオブジェクトを含む配列のクラスは event.listener です。

リスナーのライフサイクルの制限

リスナー オブジェクトを作成するには、event.listener クラス コンストラクターまたは addlistener を使用します。

addlistener を使用してリスナーを作成する場合、イベント ソース オブジェクトはリスナーへの参照を保持します。ソースが破棄されると、MATLAB® はリスナーも破棄します。リスナーのライフサイクルを管理するために、リスナー オブジェクトに参照を格納する必要はありません。

event.listener を使用してリスナーを作成する場合、リスナーのライフサイクルはイベント ソースとは結合されません。イベント ソース オブジェクトがリスナーへの参照を保持しないので、リスナーのライフサイクルをより詳細に制御できます。ただし、リスナー オブジェクトがスコープ外になると、リスナーは存在しなくなります。

リスナーのライフサイクルの詳細については、「リスナーのライフサイクル」を参照してください。

リスナーの削除

リスナー オブジェクトで delete(lh) が呼び出されると、リスナーが存在できなくなります。すなわち、イベントが発生してもリスナー コールバック関数が実行されなくなります。

リスナーの無効化

リスナーは、リスナーの Enabled プロパティの値を設定することで、有効化または無効化できます (次のプロパティ表を参照)。

イベントとリスナーの詳細

イベントとリスナーに関する詳細および使用方法の例については、「イベント」を参照してください。

プロパティ

プロパティ目的
Sourceソース オブジェクトのセル配列
EventNameイベントの名前
Callbackイベントがトリガーされ、Enabled プロパティが true に設定されている場合、実行される関数
EnabledEnabledtrue に設定されている場合 (既定の設定) にのみ、イベントが発生すると、コールバックが実行されます。
Recursive

このプロパティが false に設定されている場合 (既定の設定)、リスナーは再帰的に実行されません。したがって、コールバックが自身のイベントをトリガーすると、リスナーは再実行されません。

このプロパティが true に設定されている場合、リスナー コールバックは、コールバックをトリガーした同じイベントを発生させることができます。この方法では、無限再帰が発生し、最終的に MATLAB 再帰制限でエラーがトリガーされると終了します。

R2008a で導入

この情報は役に立ちましたか?