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 |