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