主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

リスナーコールバックの構文

リスナーコールバックの指定

コールバックとは,リスナーがイベントの通知を受け取ると実行される関数のことです。リスナーを作成するときに,コールバック関数を参照する関数ハンドルをaddlistenerまたは侦听器に渡します。

すべてのコールバック関数は,少なくとも2つの引数を受け取る必要があります。

  • イベントのソースであるオブジェクトのハンドル

  • 事件。EventDataオブジェクトまたは事件。EventDataクラスから派生したオブジェクト

コールバックを参照する構文

関数functionNameの場合

lh = addlistener (eventSourceObj,“EventName”@functionName)

クラスのオブジェクトobj.methodNameで呼び出された通常のメソッドの場合

lh = addlistener (eventSourceObj,“EventName”@obj.methodName)

静的メソッドClassName.methodNameの場合

lh = addlistener (eventSourceObj,“EventName”@ClassName.methodName)

パッケージ内の関数PackageName.functionNameの場合

lh = addlistener (eventSourceObj,“EventName”@PackageName.functionName)

コールバック関数の入力引数

必要な引数を受け取るようコールバック関数を定義します。

函数evnt callbackFunction (src)……结束

イベントソースおよびイベントデータ引数を使用しない場合,これらの入力を無視するよう関数を定義できます。

函数callbackFunction(~ ~)…结束

メソッドの場合は,次のようになります。

函数callbackMethod (obj, src, evnt)……结束

コールバック関数の追加引数

MATLAB®により渡されるソースとイベントデータの引数以外にも引数をコールバックに渡すには,無名関数を使用します。無名関数では,現在のワークスペース内で利用できるすべての変数を使用することができます。

無名関数を使用する構文

以下は,通常のメソッドの構文です。入力引数 (__arg1…argn)は,addlistenerを呼び出すコンテキスト内で定義されなければなりません。

lh = addlistener (src,“EventName”@ (src evnt) obj.callbackMethod (src, evnt __arg1、…argn)

变长度输入宗量を使用してコールバック関数を定義します。

函数callbackMethod(src, event,varargin) arg1 = varargin{1};...argn =变长度输入宗量{n};...结束

無名関数に関する一般的な情報については,無名関数を参照してください。

コールバック用のメソッドの使用

TestAnonyFcnクラスにより,追加の引数を使用した無名関数の使用方法を示します。リスナーコールバックが入力引数を表示し,MATLABによるコールバックメソッドの呼び出し方法を示しています。

classdefTestAnonyFcn <处理事件更新结束方法函数obj = TestAnonyFcn t = datestr(now); / /删除对象addlistener (obj,“更新”@ (src evnt) obj.evntCb (src evnt t));结束函数triggerEvnt (obj)通知(obj,“更新”结束结束方法(访问=私人)函数evntCb (~, ~, evnt变长度输入宗量)disp ([“输入数字:”num2str(输入参数个数)])disp (evnt.EventName) disp变长度输入宗量({}):结束结束结束

オブジェクトを作成し,triggerEvtメソッドを呼び出してイベントをトリガーします。

obj = TestAnonyFcn;obj.triggerEvnt;
输入数量:4更新01-Jul-2008 17:19:36

関連するトピック