# ユーザ定義関数の記述とスコープ

トレーニング > 応用編 > スクリプトTips集 > # ユーザ定義関数の記述とスコープ |

ユーザ定義関数の記述とスコープ

あらかじめ用意されているメソッドやイベントの利用の他に、ユーザ定義による独自関数を記述することができます。ユーザ定義関数はオブジェクト毎に記述することができます。各オブジェクトに記述されたユーザ定義関数は、パス参照によって他のオブジェクトから呼び出すことも可能です。

但し、フォームなどのオブジェクトに記述した関数は、そのオブジェクトが実体化されている間しか呼び出すことができません。例えば、２つのフォーム“Form01”と“Form02”が定義されている状態で、Form02にFunc1というユーザ定義関数が記述されている場合、Form02が表示されていない状態の時はForm01からFunc1を利用することはできません。

システム内で全体的に利用したいユーザ定義関数は、rootオブジェクトに記述することでどこからでも参照することができるようになります。rootは常に存在するため、実体の有無を意識する必要がありません。これを、汎用ユーザ関数と呼びます。

•子オブジェクトに定義されているユーザ定義関数の参照例
（Form01上のRect01オブジェクト（Rectangle）に関数を定義）

function Func01( a, b, c ) { return (a - b) * c ; }

（Form01上のBtn01オブジェクト（ボタン）から利用）

event OnMouseUp( button ) { parent.Label01.Text = parent.Rect01. Func01(5, 4, 3); }

•汎用ユーザ関数の記述例
（rootオブジェクトに関数を定義）

function gFuncTotal( a, b, c ) { return a + b + c ; }

（Form01上のBtn01オブジェクト（ボタン）から利用）

event OnMouseUp( button ) { parent.Label01.Text = ::gFuncTotal(1, 2, 3);　//汎用ユーザ関数の呼び出し }