RolloutCreator 関数

RolloutCreator は、ロールアウトをダイナミックに作成する関数の構造体です。この関数は、stdplugs¥stdscripts¥baseLib¥rolloutCreator.ms にあるスクリプトによって実装されます。

ここでは、実装されている関数とその使い方について説明します

rolloutCreator <rollout_name> <rollout_caption> 	 

rolloutCreator のインスタンスを作成し、それを変数に割り当てます。

rci = rolloutCreator "myRollout" "My Rollout"

   

<rollout_creator>.begin()   

この関数は、インスタンスを作成した直後に呼び出す必要があります。

   

<rollout_creator>.addControl <control_type> <control_name> <control_caption> [  paramStr:<string>] 

ロールアウトにコントロールを追加します。

   

<control_type> 

#button、#spinner、#activeXControl など、任意の rolloutControl を指定できます。

   

<control_name> 

#btnButton など、コントロールの参照に使用される変数名

   

<control_caption> 

「My Button」コントロールのキャプション

   

[paramStr:] 

コントロールに渡す必要があるすべてのキーワード パラメータの文字列表記(オプション)。「width:100 height:20 align:#right」など

rci.addControl #button #myButton "My Button"

   

<rollout_creator>.addHandler <control_name> <event_type> [paramStr:<string>] [codeStr:<string>] [filter:<boolean>] 

追加済みのコントロールにイベント ハンドラを追加します。

   

<control_name> 

コントロール作成中に渡される変数

   

<event_type> 

コントロールがサポートするイベント。changed、#pressed、#selected など

   

[paramStr:<string>] 

   

[codeStr:<string>] 

イベント ハンドラ コードの文字列表記。文字列にサブストリングが含まれている場合は、それらを「@」で囲み、filter: パラメータに ontrue を渡します。

rci.addHandler #myButton #pressed codeStr: "MessageBox @Hey@" filter:on

「myButton」というボタンにイベント ハンドラが追加されます。このボタンをクリックすると、「hey」というテキストを含むメッセージ ボックスがポップアップされます。ロールアウト定義の最終結果は、次のようになります。

on myButton presseddoMessageBox "Hey"

別の例

rci.addHandler #myCheckbox #changed paramStr:"val" codeStr:"myOtherCheckbox.state = not val"

「myCheckbox」というチェックボックスのイベント ハンドラが追加されます。チェックボックスの状態が変更された場合、以前に定義した「myOtherCheckbox」という別のチェックボックスの状態も、「myCheckbox」の実際の状態が渡された引数変数「val」の反転されたブール値に変更されます。ロールアウト定義の最終結果は、次のようになります。

on myCheckbox changed val do myOtherCheckbox.state = not val

   

<rollout_creator>.end() 

この関数は、要求されたコントロールとそのイベント ハンドラがすべて呼び出されたときに、呼び出す必要があります。この関数は、ロールアウト文字列を作成および評価し、その定義を返します。返された定義は、createDialog または addRollout 関数に渡すことができます。

   

<rollout_creator>.addLocal <string> [init:<value>] 

この関数を使用して、ロールアウト定義にローカル変数を追加できます。変数の値は、 init: 値を渡すことで初期化できます。

   

<string> 

ローカル変数の名前。

   

init: 

ローカル変数の初期値を指定します。

   

<rollout_creator>.addText <string> [filter:<boolean>] 

この関数は、ロールアウト定義に関数を追加するときに使用します。文字列にサブストリングが含まれている場合は、それらを「@」で囲み、 filter: パラメータに true を渡します。

   

<string> 

ロールアウト定義に追加される文字列。

例(詳細) :

rci = rolloutCreator "myRollout" "My Rollout"
rci.begin()
rci.addControl #button #myButton "My Button"
rci.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Isn't this cool@ title:@Wow@"
createDialog (rci.end())

別の例:

rfTest = rolloutCreator "rfTestN" "rfTestC"
-- Start creating the rollout
rfTest.begin()
rfTest.addControl #button #myButton "My Button" -- add a button
rfTest.addHandler #myButton #pressed filter:on codeStr:"MessageBox @Look to the \@Light\@ thing@"
rfTest.end()
createDialog rfTest.def