主要内容

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

カスタムイベントデータの定義

クラスイベントデータの要件

イベントが発生したときに特定の情報にアクセスするリスナーコールバック関数を作成するとします。この例では,カスタムのイベントデータを作成することでその方法を説明します。

イベントは,イベントデータ引数を,指定した関数に渡すことによって,リスナーのコールバック関数に情報を提供します。既定では,MATLAB®事件。EventDataオブジェクトをリスナーコールバックに渡します。このオブジェクトは,2つのプロパティをもちます。

  • EventName——このオブジェクトによりトリガーされるイベント名。

  • ——イベントをトリガーするオブジェクトのハンドル。

事件。EventDataクラスをサブクラス化することによって,リスナーコールバックに追加の情報を提供します。

  • 追加データを含めるよう,サブクラスでプロパティを定義する。

  • 追加データを引数として受け取るコンストラクターを定義する。

  • ConstructOnLoadクラス属性を設定する。

  • サブクラスコンストラクターを通知メソッドへの引数として使用し,イベントをトリガーする。

イベントの定義とトリガー

SimpleEventClassは,ある範囲を超える値にプロパティが設定されるとそこからイベントをトリガーする,プロパティの设置メソッド(プロパティの设置メソッドを参照)を定義します。属性集メソッドは以下の操作を実行します。

  • オリジナルのプロパティ値を保存する

  • 指定した値にプロパティを設定する

  • 指定した値が10よりも大きい場合,集メソッドは溢出イベントをトリガーする

  • SpecialEventDataClassオブジェクトにある元のプロパティ値と他のイベントデータを通知メソッドに渡す

classdefSimpleEventClass <处理属性Prop1 = 0结束事件溢出结束方法函数set. pro1 (obj,value) orgvalue = obj. pro1;obj。Prop1 =价值;如果(obj。Prop1 > 10)%使用自定义事件数据触发事件通知(obj,“溢出”SpecialEventDataClass (orgvalue));结束结束结束结束

イベントデータの定義

イベントデータは,常に事件。EventDataオブジェクトに含まれます。SpecialEventDataClassは,事件。EventDataをサブクラス化することで,オリジナルのプロパティ値をイベントデータに追加します。

classdef(ConstructOnLoad) SpecialEventDataClass <事件。EventData属性OrgValue = 0结束方法函数eventData = SpecialEventDataClass(value)OrgValue =价值;结束结束结束

オーバーフローイベントに対するリスナーの作成

溢出イベントをリッスンするには,SimpleEventClassクラスのインスタンスにリスナーを付加します。リスナーを作成するには,addlistenerメソッドを使用します。イベントがトリガーされたときに実行するリスナーに対しても、コールバック関数を定義しなければなりません。

関数setupSECは,SimpleEventClassクラスをインスタンス化し,オブジェクトにリスナーを追加します。この例では,リスナーコールバック関数はeventData引数に含まれている情報を表示します。この引数はSpecialEventDataClassオブジェクトです。

函数sec = setupSEC sec = SimpleEventClass;addlistener(秒,“溢出”@overflowHandler)函数overflowHandler (eventSrc eventData) disp (“Prop1的价值溢出了!”) disp ([它的值是:num2str (eventData.OrgValue)]) disp (['其当前值为:'num2str (eventSrc.Prop1)))结束结束

SimpleEventClassオブジェクトを作成し,リスナーを追加します。

秒= setupSEC;sec.Prop1 = 5;sec.Prop1 = 15;%监听器触发回调
Prop1的值溢出了!当前值为:15

関連するトピック