マウスが押されたとき、押された部品のOnMouseDown/ OnMouseUpイベントが呼び出されます。それと同時に、ルートでも、OnMouseDown/ OnMouseUpイベントが呼び出されます。ルートのイベントで渡される情報は第一引数にobject(マウスが押された部品)が渡されます。それ以降の引数は、通常の部品のOnMouseDown/ OnMouseUpイベントと同様になります。以下のイベントでもobjectが第一引数で渡されます。
OnMouseIn / OnMouseMove / OnMouseOut / OnMouseDblClick
ルートのイベントは、どの画面でも共通の処理を行いたい場合等に有効です。
例えば、すべてのボタンを押したことを履歴に残したい場合等は、各部品のMouseUpイベントにスクリプトを記述するのは大変なので、ルートに処理を入れておくと便利です。第一引数でobjectが渡されてくるので、ClassIdプロパティを用いると、どの種類の部品でボタンが押されたのかを判別できます。
例)ボタンコントロールのみで履歴を残したい場合
event OnMouseUp(object, button)
{
if (object.ClassId == "Button"){
// テキストファイルにログを行う処理はHiddenFormに貼り付けた
// テキストダンプコントロールを利用すると便利
::OpenMsg("ボタンが押されました。");
}
}
|