オブジェクトに定義されているTouchイベントなどと同様に、ユーザ定義のイベントを利用することができます。
FormとDialogなどでユーザ定義イベントにより情報伝達を行うことで、FormとDialogの結合がより疎結合となり、開発効率やデバッグ効率が高まります。
以下に単純なユーザ定義イベントの発行例を示します。
単純なユーザイベントの発行
Function OnTouch(e) {
:
PostEvent(new Event(UserEvent + 1, "CodeSelect"));
:
}
UserEvent+1はイベント番号、"CodeSelect"はイベント名となります。UserEventで定義されるイベント番号よりも小さい番号はシステムで予約されているのでユーザイベントで利用することはできません。
イベント番号を使用しない場合、次のように記述することも可能です。
単純なユーザイベントの発行
Function OnTouch(e) {
:
PostEvent(new Event("CodeSelect"));
:
}
この書式の場合、"CodeSelect"部分の引数は、必ず文字列定数を記述する必要があります。
上記のイベントは、次のようなイベントハンドラで捕捉できます。
Function OnCodeSelect(e) {
:
}
イベントに付随するデータを定義する場合、以下のようにします。
データ付きユーザイベントの発行
Function OnTouch(e) {
:
var userEvent1 = new Event(UserEvent + 1, "CodeSelect") {
String data1;
String data2;
}
userEvent1.data1 = "abc";
userEvent1.data2 = "123";
PostEvent(userEvent1);
:
}
上記のイベントは、次のようなイベントハンドラで捕捉できます。
Function OnCodeSelect(e) {
if (e.data1 == "abc") {
:
}
:
}