オブジェクトとスクリプト

<< Click to Display Table of Contents >>

マニュアル > 画面作成ガイド > スクリプト >

オブジェクトとスクリプト

オブジェクトとは

フォーム自身を含め、フォーム上に貼り付けられた個々のコントロールなど、それらの全てを総称して、「オブジェクト」と呼びます。各オブジェクトはプロパティ、メソッド、イベントを持っています。

 

■プロパティとは

プロパティとは、背景色、大きさ、フォントなど、プロパティページで変更できるオブジェクトの属性のことです。また、プロパティは必ずプロパティ名を持っており、例えば背景色のプロパティ名は、“FillColor”です。

 

■メソッドとは

メソッドとは、Scroll、AddPenなど、オブジェクトが持つ関数のことです。メソッドを呼び出すと、各メソッドに応じたアクションが実行されます。例えば、グラフコントロールのScrollメソッドが呼び出されると、グラフコントロールは自身の表示をスクロールします。

 

■イベントとは

イベントとは、オブジェクトが外部からの刺激に対して反応するための、オブジェクトが持つ機構のことです。例えば、オブジェクトがマウスでクリックされると、必ずOnMouseDownイベントが呼び出される仕組みになっています。そして、OnMouseDownイベントには、マウスが押された時に実行したい処理をスクリプトとして記述することができます。

 

 

fap_script_0019

 

 

プロパティ

各コントロールのプロパティは、スクリプトからの参照および値の編集を行うことができます。以下では、ボタンコントロールの「OnMouseUp」イベントに記述したスクリプトから、ボタンコントロール自身のFillColorプロパティを変更しています(FillColorとはボタンコントロールのプロパティの1つで、背景色を意味します)。

event OnMouseUp(button)
{
	this.FillColor = "#FF0000";
}

 

Panel Browserで実行してボタンを押すと、ボタン自身の色が赤に変わります。

 

このように、プロパティの値はスクリプトからダイナミックに変更することができます。プロパティへアクセスするための書式は以下になります(※ピリオドで区切る)。

 

[ObjectPath].[Property name]

 

例)

 

this.FillColor

parent.Label.Text

::Form01.Title

 

尚、プロパティの種類の分類は以下のとおりです。

 

タイプ

解説

スクリプト例

ブール

ブール値(TRUEもしくはFALSE)のプロパティです。

this.Border = T;

数値

数値のプロパティです。

this.Width = 100;

文字

文字のプロパティです。

this.Text = "hello";

色のプロパティです。RGBを文字列"#RRGGBB"で指定します。RRは00からFFまでの16進数で赤色の程度を示します。同じくGGは緑、BBは青の程度を示します。

又、カラーテーマとして登録された色については、”@書式名”として表現されます。

this.FillColor = "#FF0000";

this.FillColor = "@ButtonColor";

 

フォント

フォントのプロパティです。

(フォントにより変動)

ファイルパス

ファイルのパスです。

this.File = "c:\abc.jpg";

列挙値

列挙値とは、いくつかの選択肢がありその中から選択するときのプロパティです。例えば2Dシェープコントロールの四角コントロールのFillStyleプロパティはSOLID、HORIZONTAL、VERTICAL…から選択しますが、これは列挙型のプロパティです。

this.FillStyle = "SOLID";

 

 

hint

各コントロールはそれぞれ特有のプロパティを持っています。各コントロールが持つプロパティに関する詳細は「コントロールリファレンス」の各コントロールのページを参照して下さい。

 

 

メソッド

各コントロールは様々なメソッドを持っています。メソッドを呼び出すための書式は以下のとおりです。

 

[ObjectPath].[Method name](<param 1>, <param 2>, …<param n>);

 

例)

 

this.AddTag("TAG01");

::Form01.GetVal("TAG01");

::OpenMsg("hello");

 

※「::」は「root.」と同意。

 

尚、全てのオブジェクトが持っている共通的なメソッドのことを「共通メソッド」と呼び、ルートオブジェクトだけが持っているメソッドのことを「ルートメソッド」と呼びます。

 

 

イベント

イベントとは、マウスがクリックされた、マウスカーソルがコントロールの上に乗った、キーが押された時など、さまざまな処理タイミングのことを言います。

例えばラベルコントロールの場合では、以下のようなイベントが用意されています。

 

イベント

内容

OnInitialize

初めてコントロールが表示される直前に、1度だけ発生する

OnMouseDown

マウスのボタンが押されたときに発生する

OnMouseUp

マウスのボタンを放したときに発生する

・・・

・・・

 

これらのイベントが発生したときに、さまざまな処理を実行することができます。

 

例)

event OnMouseUp(button)
{
	::OpenMsg("hello");
}

 

 

hint

OnMouseUpはマウスボタンによるクリック操作に対するイベントです。OnMouseDownボタンも同じようにボタンが押された時に呼び出されますが、両者の発生タイミングは、OnMouseDownはマウスが押された瞬間に呼び出され、OnMouseUpはその後ボタンを放したときに呼び出されるという違いがあります。

通常、ボタンなどを押した時に何らかの処理を実行したい場合には、OnMouseDownではなくOnMouseUpイベントを利用してください。理由としては、例えばオペレータがボタンを押した瞬間にその操作が誤りであることに気が付いてキャンセルしたい場合などに、マウスボタンを押したままの状態でコントロールの領域外にマウスを移動させてボタンを放すことにより、OnMouseUpイベントが呼び出されずに操作をキャンセルさせることができる点です。

尚、OnMouseUp、OnMouseDownイベントはボタンコントロールに限らず、ラベルや四角形などの様々なコントロールで利用することができます。