XPLATFORM応用プログラムはEDA(Event-Driven Architecture)を基本としています。即ち、XPLATFORM応用プログラムで開発者が開発する部分の開始点は、全てイベントファンクションから始まります。
イベントの概要
イベントの処理対象
XPLATFORM応用プログラムでのオブジェクトは、全てがイベント処理対象ではありません。主に動的に状態が変化するオブジェクトがイベント処理の対象となります。イベント処理のために開発者がスクリプト処理する部分を、イベントファンクションと言います。
以下は、UX-Studio上でイベントファンクションを登録することができるオブジェクトです。
Project Explorer の分類 | イベントを登録することができるオブジェクト | 説明 |
---|---|---|
ADL | ADL | - アプリケーションのロード/開始/終了などに対するイベントを処理するファンクションを登録します。 |
フレーム | - メインフレーム、フレームセット、チャイルドフレームなどのフレームオブジェクトで発生するイベントを処理するファンクションを登録します。 | |
トレイ | - トレイで発生するイベントを処理するイベントを登録します。 | |
アプリケーションメニュー | - アプリケーションメニューで発生するイベントを処理するイベントを登録します。 | |
グローバル 変数 | データセット | - グローバル変数に登録したデータセットのイベントを処理するイベントを登録します。 |
サービス | フォーム | - フォームが動作すると発生するイベントを処理するイベントを登録します。 |
コンポーネント | - フォーム内のコンポーネントが動作すると発生するイベントを処理するイベントを登録します。 | |
Invisible オブジェクト | - フォーム内のInvisibleオブジェクトが動作すると発生するイベントを処理するイベントを登録します。 |
親と子の間のイベントの転移
親と子の関係があるオブジェクトは、基本的にイベントが上位の親に転移します。
即ち、あるフォームに属するコンポーネントでイベントが発生すると、そのコンポーネントが含まれたフォームでも同じイベントが発生します。しかし、親が該当のイベントを取り扱わない場合には発生しません。
以下は親によりイベントを転移するイベントです。
分類 | イベント | デフォルトが ペアレントを発生? |
---|---|---|
キーボードのキー | onkeyup() | O |
マウスムーブ | onmousemove() onmouseleave() onmouseenter() | O O O |
マウスボタン | onmousewheel() onrbuttondown() onrbuttonup() onlbuttondown() onlbuttonup() onmousedown() onmouseup() | O O O O O O O |
マウスドラッグ | ondrag() ondragenter() ondragleave() ondrop() | X O O O |
表記法
“キーイベントのフロー”からはコンポーネント別のイベント発生順序をフローチャートで表示します。ここでは、そのフローチャートの表記法を説明します。
イベントフローで使用する図形
図 形 | 定 義 |
---|---|
使用者の入力 | |
イベント | |
Return valueのないイベント | |
true return時、上位のコンポーネントで該当イベントが発生しないイベント default return値はfalseです。 | |
true return時、上位のコンポーネントで該当イベントが発生するイベント default return値はtrueです。 | |
条件/判断 | |
Return value | |
Default return value | |
条件のフロー | |
以降の作業なし | |
イベントモジュール |
キーイベントのフロー
KeyPushモジュールの定義
ApplicationMenu,Button,Calendar,CheckBox,Combo,Div,Edit,Form,ImageViewer,ListBox,MaskEdit,Menu,PopupDiv,PopupMenu,Radio,Spin,Tab,TabPage,TextArea
グリッド
エディットイベントのフロー
エディットモジュールの定義
エディット機能のあるコンポーネント
Edit / MaskEdit / TextArea / Combo / Calendar / Spin
Grid
Edit, MaskEdit, TextArea, Combo, Calendar, Spin
グリッド
エディット中のフォーカスアウトのフロー
Calendar/Combo/Spin, Edit/MaskEdit/TextArea
マウスムーブイベントのフロー
Edit/MaskEdit/TextArea, Calendar/Combo/Spin, Tab/TabPage, ListBox/Radio, PopupMenu/ Menu, Button, CheckBox, GraphicPath, GroupBox, ImageViewer, Panel, ProgressBar, Shape, Splitter, Static, Div, Form, Grid, PopupDiv
マウスクリックイベントのフロー
マウスクリックモジュール
MouseLbuttonDownモジュール
Button,CheckBox,Form,GraphicPath,ImageViewer,Panel,PopupDiv,ProgressBar,Sh ape,Static, Div/TabPage
Edit/MaskEdit/TextArea, Menu
カレンダー
コンボ
スピン
タブ
リストボックス
ラジオ
スプリッタ
ポップアップDiv / ポップアップメニュー
フォーカスが外れると自動クローズされるコンポーネント