イベントフロー

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 / ポップアップメニュー

フォーカスが外れると自動クローズされるコンポーネント

グリッド

ドラッグイベントのフロー

ApplicationMenu,Button,Calendar,CheckBox,Combo,Div,Edit,Form,Grid,ImageVie wer,ListBox,MaskEdit,Menu,PopupDiv,PopupMenu,ProgressBar,Radio,Sign,Spin,Tab,TabPage,TextArea

Component Moveイベントのフロー

ApplicationMenu,Button,Calendar,Chart,CheckBox,Combo,Div,Edit,Form,Graphic Path,Grid,GroupBox,ImageViewer,ListBox,MaskEdit,Menu,Panel,PopupDiv,PopupMenu,ProgressBar,Radio,ScrollBar,Shape,Sign,Spin,Splitter,Static,Tab,TabPage,TextArea

Component Resizeイベントのフロ-

ApplicationMenu,Button,Calendar,CheckBox,Combo,Div,Edit,Form,GraphicPath, Grid,GroupBox,ImageViewer,ListBox,MaskEdit,Menu,Panel,PopupDiv,PopupMenu,ProgressBar,Radio,ScrollBar,Shape,Sign,Spin,Splitter,Static,Tab,TabPage,TextArea

データセット、Filteredデータセットのフロー

フォームイベントのフロー

フォームのロード /アンロード

スクロールイベントのフロー

Div,Form,Grid,ListBox,PopupDiv,TabPage,TextArea