ucArg
ucArgStr
See Also: ucDefineFunction, ucDefineOperator, ucArgCount, ucArgHandle, ucReturn
Retrieves the argument(s) or operand(s) of a callback routine.
ucArg(ExpressionHandle, ArgIndex)
- or -
ucArgStr(ExpressionHandle, ArgIndex)
Parameters
ExpressionHandle
All Native callback routines receive one argument, which is ExpressionHandle. This handle is required as the first argument of ucArg().
ArgIndex
This represents the index of the argument you want. If a callback routine definition has three parameters, and Expr is the expression handle, then ucArg(Expr, 1) retrieves the first argument, ucArg(Expr, 2) the second, and ucArg(Expr, 3) the third. For an infix operator, ucArg(Expr, 1) is the left operand, and ucArg(Expr, 2) is the right operand. For a unary operator, ucArg(Expr, 1) is the operand.
Remarks
· Depending on the compiler, ucArg is mapped to double precision or extended precision.
.Example 1: Using ucArg with a function definition
The following routine defines a function named Add, which returns the result of adding its two arguments. So Add(5, 4) would return 9. For more details on defining a function, see ucDefineFunction.
Visual Basic
' The line below can go in Form_Load() ucDefineFunction "Native: Add(a, b)",
AddressOf MyAdd ' The line below goes in a separate
module Sub MyAdd(ByVal Expr As Long) ucReturn
Expr, ucArg(Expr, 1) + ucArg(Expr, 2) End Sub |
Example 2: Using ucArg with an operator
definition
The following routine defines an operator named Plus, which returns the result of adding its two operands. So 5 Plus 4 would return 9. Note that the MyAdd callback is identical to the one in Example 1. The only code that is different is the first line (ucDefineOperator ...). The number 20 that comes after the word Native is the precedence level. For more details on defining an operator, see ucDefineOperator.
Visual Basic
' The line below can go in Form_Load() ucDefineOperator "Native: 20 {a} Plus
{b}", AddressOf MyAdd ' The line below goes in a separate
module Sub MyAdd(ByVal Expr As Long) ucReturn
Expr, ucArg(Expr, 1) + ucArg(Expr, 2) End Sub |
Example 3: Using ucArgStr for a string argument
This example demonstrates the use of ucArgStr. Myleft is a function that returns the left-most characters of a string, which is supplied as the first argument. The second argument determines the number of characters to return. It is based on VB's Left$() function. For instance MyLeft("Hello World", 2) would return "He".
Visual Basic
' The line below can go in Form_Load() ucDefineFunction "Native: MyLeft(Text As
String, Count) As String", AddressOf MyLeft ' The line below goes in a separate
module Sub MyLeft(ByVal Expr As Long)
ucReturnStr Expr, Left$(ucArgStr(Expr,
1), ucArg(Expr, 2)) End Sub |
Additional examples can be found in the help topics for ucDefineFunction, and ucDefineOperator.
New or enhanced in version 3.0
· Nothing related to this topic.
· See What’s New.
Note: ucParam and ucParamStr were renamed ucArg and ucArgStr in version 3.0. However, ucParam and ucParamStr are preserved for backward compatibility.
New or enhanced in version 2.96