28.10.2014 Views

Getting Started - Magic Software DEVNET Japan - Magic Software ...

Getting Started - Magic Software DEVNET Japan - Magic Software ...

Getting Started - Magic Software DEVNET Japan - Magic Software ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

第 11 章 - ハンドラ<br />

6.[OK]をクリックしてみましょう。<br />

[OK]ボタンをクリックすると 警 告 ダイアログの 表 示 は 消 えますが、プログラムは 終 了 しません。プログラムを 終 了 させる<br />

ためには、 欄 を[False]にするか、あるいは< 収 入 レベル>を '4000000' より 大 きな 値 にしてから[ 終 了 ]<br />

ボタンを 押 すことが 必 要 です。<br />

例 題 2の 実 行 結 果 について<br />

イベントが 発 動 されたとき、<strong>Magic</strong> エンジンは 対 応 して 定 義 されている 実 行 可 能 なハンドラを 探 し、 見 つかればそれを 実 行<br />

します。<br />

ハンドラの 実 行 が 終 了 したとき、そのハンドラの[ 伝 播 ] 特 性 が[Yes]に 設 定 されているときのみ、<strong>Magic</strong> エンジンは 他<br />

にハンドラが 定 義 されていないか 探 します。( 複 数 のハンドラが 一 つのイベントに 対 して 定 義 されているときは、 実 行 ツリー<br />

で 最 下 位 にあるハンドラが 最 初 に 実 行 されます。)[ 伝 播 ] 特 性 が[No]のときは、それ 以 上 ハンドラを 探 すことはせず、イ<br />

ベント 処 理 の 終 了 となります。<br />

今 回 の 例 では 内 部 イベントである[ 終 了 ]に 対 してハンドラを 追 加 しました。イベントが 発 動 されたとき、すなわち[ 終<br />

了 ]ボタンがクリックされたとき、 今 回 作 成 されたハンドラがまず 実 行 されました。これはこのイベントハンドラの 実 行 条 件<br />

であるが[True]かつ < 収 入 レベル>が< 4000000 > 以 下 が 成 立 していたからです。このとき、という 警 告 メッセージが 表 示 されました。また、このハンドラの[ 伝 播 ] 特 性 はデフォ<br />

ルトの[No]のままだったので、このハンドラが 終 了 すると <strong>Magic</strong> エンジンはそれ 以 上 ハンドラを 探 すのをやめてしまい、<br />

<strong>Magic</strong> エンジン 内 部 の[ 終 了 ]ハンドラは 実 行 されず、その 結 果 、タスクも 終 了 しないままになります。<br />

次 に、 欄 を[False]にするか、あるいは< 収 入 レベル>を< 4000000 >より 大 きな 値 にしてから[ 終 了 ]<br />

ボタンをクリックすると、 今 度 は 今 回 作 成 したハンドラの 実 行 条 件 が 成 立 しないため、<strong>Magic</strong> エンジンは 次 のハンドラを 探 し、<br />

結 果 として 内 部 の[ 終 了 ]ハンドラが 実 行 され、タスクは 終 了 することになります。<br />

7 . 要 約<br />

イベントドリブンによるプログラミングは、タスク 内 に 非 手 続 き 的 処 理 を 組 込 むことを 可 能 にします。イベントハンドラは<br />

その 実 行 部 を 定 義 するものです。<br />

イベントハンドラはタスク[ロジック]エディタのなかで[イベント]ロジックユニットとして 定 義 され、イベントが 発 動<br />

されたときにそのコマンドが 実 行 されます。<br />

一 つのイベントに 対 して 複 数 のハンドラを 定 義 することができ、[ 伝 播 ] 特 性 を 使 用 する 使 用 することで、どのハンドラを<br />

実 行 させるかを 制 御 することができます。<br />

また <strong>Magic</strong> エンジンに 組 込 まれている 内 部 イベントに 対 しても、ハンドラを 定 義 することができます。<br />

オンラインタスクにおいては、タスクがアイドル 状 態 のときか、エンドユーザがイベントを 発 動 したとき、<strong>Magic</strong> エンジン<br />

はイベント 実 行 を 監 視 し 制 御 します。[イベント 実 行 ] 処 理 コマンドを 使 用 するときには、 開 発 者 は[ウェイト] 特 性 を[Yes]<br />

とするか[No]とするかにより、イベントの 発 動 を[ 同 期 ]させたり[ 非 同 期 ]にすることができます。<br />

162 <strong>Getting</strong> <strong>Started</strong><br />

<strong>Magic</strong> uniPaaS V1Plus

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!