Welcome
Wiki内検索
メニュー
アンケート1
アンケートにご協力ください!
管理人へ
管理人への質問、要望、ご意見等はここからお願いします。
※項目内容は全て任意です。

Powered by NINJA TOOLS




追加してほしいコンポーネントなども募集しております。
最近更新したページ
最新コメント
Q&A by ??≪?潟?壔???若?? ???????
FrontPage by ??≪?潟?壔???若?? 綺????
Dynpro by ??≪?潟?壔???若?? ??≪????????????
FrontPage by ??≪?潟?壔???若?? ??≪????????????
Q&A by ??≪?潟?壔???若?? 綺????
FrontPage by ??≪?潟?壔???若?? ???????? ??≪????????????
Dynpro by ?????若????ŝ?若????í????壔???若????
FrontPage by ?????≪???????壔?? 95
FrontPage by SDWE

イベント

あるクラスの状態の変化などを知らせる信号。クラス乃至インスタンスによってイベントは発生(トリガ)され、別のクラスやオブジェクトに対して動作の切っ掛けを与えることができる。この時、イベントをトリガした側をセンダ、そのイベントに反応する側をハンドラと呼ぶ。

イベントの使い方

1.イベントの定義

クラス定義の中で、EVENTS イベント名. で、定義を行う。

2.イベントのトリガ

メソッド内でイベントをトリガしたいタイミングで、RAISE EVENT イベント名.を、記述する。

3.ハンドラメソッドを定義

イベントに反応させたいメソッド(ハンドラメソッド)の定義を行う。普段のメソッド定義の後ろに、FOR EVENT イベント名 OF センダクラス名 を追加する。パラメータの設定は、イベント定義後に行う。

4.ハンドラメソッドをインスタンスに割当て

イベント処理を行わせたいインスタンスに対して SET HANDLER ハンドラメソッド名 FOR インスタンス指定 を、記述する(インスタンス生成時でも可)。今後生成される(センダ側)インスタンスなども含め、全てのインスタンスに反応させたい場合は ALL INSTSNCE オブションを記述する。他にオプションとして、ACTIVATION ’スペース or X’がある。ACTIVATION を使うと、割り当て(スペース)と割当て解除(X)を個別で行うことができる(主に、割当て解除に利用)。

例)FOR ALL INSTANCES
一人の人が、複数の携帯電話を持つ場合。
  • インスタンス数
電話クラス(センダ) → ○ ○ ○
人クラス(ハンドラ) → ○
一つの携帯だけではなく、全ての携帯の呼び出しに反応しないといけない。センダインスタンス個別指定だと、携帯の数だけ、SET HANDLER が必要。全ての携帯に反応させたいのであれば、今後携帯が増える可能性もあるので、FOR ALL INSTANCES でまとめてしまう。反応したくない携帯があるのであれば、別途SET HANDLERのACTIVATION オプションを使うと良い。
2008年10月29日(水) 15:34:59 Modified by chocolate_mousse




スマートフォン版で見る