XSIInputBox

Introduced

v5.0

Description

Exposes VBScript's InputBox to other scripting languages. This is a very useful little function for getting information from a user. It displays a modal dialog box with a question and an edit box for the user to enter some data.

Note: When running in batch mode XSIInputBox will just return the value of the Default argument.

Tip: To collect more sophisticated information from the user, for example file paths, colors, or options out of a list, it is better the create a CustomProperty or use the services of the XSIUIToolkit or XSIDialog objects.

Scripting Syntax

oString = XSIInputBox( [Prompt], [Title], [Default] );

Return Value

The String entered by the user, or an empty string if the user cancelled or chose not to enter anything.

Parameters

Parameter Type Description
Prompt String Text that tells the user what they should type in
Title String Text to show in the title bar of the dialog box
Default String A suggested response for the user, which is automatically returned if running in batch mode.

Examples

1. JScript Example

/*

	Example showing how to ask the user for a unique name for a grid object.  A loop is used to give 

	the user another chance if they pick the name of an existing object

*/

while(true)

{

	var strObjName = XSIInputBox( 

						"Please pick a name for the new object", 

						"Time for a Decision", 

						"Foo" ) ;

	if ( strObjName != "" )

	{

		var oExisting = Dictionary.GetObject( strObjName, false ) ;

		

		if ( oExisting == null )

		{			

			ActiveSceneRoot.AddGeometry( "Grid","MeshSurface", strObjName ) ;

			break ;			

		}

		else

		{

			XSIUIToolkit.MsgBox( "That object already exists\n"+

					"You have to think of a new name" ) ;

		}

	}

	else

	{

		// User cancelled

		break ;

	}

}

2. VBScript Example

'

'	Example showing how to ask the user for a unique name for a grid object.  A loop is used 

'	to give the user another chance if they pick the name of an existing object

'

do while true

	strObjName = XSIInputBox( _

						"Please pick a name for the new object", _

						"Time for a Decision", _

						"Foo" )

	if strObjName <> "" then

		set oExisting = Dictionary.GetObject( strObjName, false )

		

		if typename( oExisting ) = "Nothing" then

			ActiveSceneRoot.AddGeometry "Grid","MeshSurface", strObjName 

			exit do

		else

			XSIUIToolkit.MsgBox( "That object already exists" & vbCrLf & _

					"You have to think of a new name" )

		end if	

	else

		' User cancelled

		exit do

	end if

loop

See Also

XSIUIToolkit XSIDialog CustomProperty PickFolder