Puede utilizar el método InitializeUserInput para definir palabras clave o restringir el tipo de entradas en el método de introducción de información por parte del usuario. El uso y los valores de los parámetros son similares a la función de AutoLISP initget. InitializeUserInput puede utilizarse con los siguientes métodos: GetAngle, GetCorner, GetDistance, GetInteger, GetKeyword, GetOrientation, GetPoint, y GetReal. InitializeUserInput no puede utilizarse con el método GetString. Utilice el método GetInput para recuperar el valor de cadena (palabra clave o entrada al azar) cuando el método de entradas del usuario no devuelva un valor de cadena.
El método InitializeUserInput admite dos parámetros. El primer parámetro es un valor entero, expresado en bits, que determina las opciones de entrada del método de introducción de información por parte del usuario. El segundo parámetro es una cadena que define las palabras clave válidas.
Obtención de un valor entero o de una palabra clave en la línea de comando de AutoCAD
En el ejemplo siguiente se solicita al usuario la designación de un valor entero positivo o una palabra clave:
Sub Ch3_UserInput()
' The first parameter of InitializeUserInput (6)
' restricts input to positive and non-negative
' values. The second parameter is the list of
' valid keywords.
ThisDrawing.Utility.InitializeUserInput 6, "Big Small Regular"
' Set the prompt string variable
Dim promptStr As String
promptStr = vbCrLf & "Enter the size or (Big/Small/<Regular>):"
' At the GetInteger prompt, entering a keyword or pressing
' ENTER without entering a value results in an error. To allow
' your application to continue and check for the error
' description, you must set the error handler to resume on error.
On Error Resume Next
' Get the value entered by the user
Dim returnInteger As Integer
returnInteger = ThisDrawing.Utility.GetInteger(promptStr)
' Check for an error. If the error number matches the
' one shown below, then use GetInput to get the returned
' string; otherwise, use the value of returnInteger.
If Err.Number = -2145320928 Then
Dim returnString As String
Debug.Print Err.Description
returnString = ThisDrawing.Utility.GetInput()
If returnString = "" Then 'ENTER returns null string
returnString = "Regular" 'Set to default
End If
Err.Clear
Else 'Otherwise,
returnString = returnInteger 'Use the value entered
End If
' Display the result
MsgBox returnString, , "InitializeUserInput Example"
End Sub