Getting Started - Magic Software DEVNET Japan - Magic Software ...
Getting Started - Magic Software DEVNET Japan - Magic Software ...
Getting Started - Magic Software DEVNET Japan - Magic Software ...
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