ArgumentCollection

関連する C++クラス:ArgumentArray

導入

v2.0

詳細

このオブジェクトは、Commandオブジェクトに属し、Argumentオブジェクトのコレクションを保持します。

各引数は、この名前はドキュメントの作成やArgumentCollection.Itemメソッドの実行に役立つ一意の名前を持ちます。ただし、実装コマンドに引数がどのように渡されるのかは、コレクション内での引数の順序により決定されます。スクリプトを使用した実装では、引数の数が、そのコマンドを実装する関数(またはサブルーチン)が予期する引数の数と正確に一致している必要があります。C++ API により実装されるコマンドでは、すべての引数がまとめて CValueArray に渡されます)。

定義されている引数の数は、実装により予期される数と正確に一致する必要がありますが、コマンドを呼び出す際には必ずしも引数を指定する必要はありません。デフォルト値が渡される場合は、ArgumentHandlerの定義またはアクションに基づいて引数が決まります。

このオブジェクトは、新しいカスタムコマンドの引数を定義するほか、コマンドの実行時に特定の引数を指定します。引数は、通常XSIApplication.CreateCommandを呼び出したてからXSIApplication.AddCommandを呼び出す前までの間に、コマンドから定義します。このほか、引数コレクションを変更してCommand.Updateを呼び出すことにより既存のカスタムコマンドを変更することもできます。

注:特定の引数には、ArgumentCollection.Itemメソッドでアクセスします(oCommand.Arguments.Item("strArgument")など)。通常、引数は割り当てられた値を戻しますが、引数が使用不可である場合は、VBScript の場合は"Nothing"、COMベースの C++の場合は"NULL"を戻します。

メソッド

Add AddCopy AddObjectArgument AddWithHandler
Remove RemoveAll    
       

プロパティ

Countオペレータ Itemオペレータ    
       

1. JScript の例

/*

	This example finds the Argument names for the SICreateImageClip command. 

	When working with the ISIVTCollection returned by SICreateImageClip, you

	need to know the exact names of the output arguments.

*/

var e = new Enumerator( Application.Commands );	

for ( ; ! e.atEnd(); e.moveNext() ) {

	if ( e.item().ScriptingName == "SICreateImageClip" ) {

		var cmd = e.item();

		for ( var i=0; i<cmd.Arguments.Count; i++ ) {

			// the pipe '|' characters allow you to see 

			// any spaces before or after the name

			Application.LogMessage( "|" + cmd.Arguments(i).Name + "|" );

		}

	}

}

// Logs the following results:

//INFO : |FileName|

//INFO : |Name|

//INFO : |Clip|

2. VBScript の例

set args = Application.Commands("Twist").Arguments

LogMessage "arguments count: " & args.count

関連項目

Command.Arguments Command.Execute XSIApplication.CreateCommand