A class describing the characteristics of a variable, property, or argument. VariableDefinition is used as a property in the ClassDefinition and ScriptDefinition objects. It has no events.
You cannot start with a variable in your application and get a VariableDefinition object for it. Instead, you access the VariableDefinition instances that are elements of the VariableList array of a ClassDefinition instance or the ArgumentList array of a ScriptDefinition instance.
The VariableDefinition object has information about:
- 
                     
The variable's name and type
 - 
                     
Whether the variable is a scalar or an array and information about the array
 - 
                     
The variable's initial value, whether the value overrides an ancestor's value, and whether the variable is a constant
 - 
                     
The read and write access levels for the variable
 - 
                     
The scope of the variable (global, shared, instance, local, argument), including whether the variable is an argument and how the argument is passed
 
| 
                                  VariableDefinition property  | 
                              
                                  Datatype  | 
                              
                                  Description  | 
                           
|---|---|---|
| 
                                  CallingConvention  | 
                              
                                  ArgCallingConvention  | 
                              
                                  The way an argument is passed when Kind is VariableArgument! Values are: ByReferenceArgument! ByValueArgument! ReadOnlyArgument! VarListArgument! VarListArgument! applies only to arguments for built-in PowerBuilder functions. They are shown as ellipses in the Browser. For an example, see the section called “ImportString” in DataWindow Reference.  | 
                           
| 
                                  Cardinality  | 
                              
                                  VariableCardinalityDefinition  | 
                              
                                  Cardinality information for the variable.  | 
                           
| 
                                  ClassDefinition  | 
                              
                                  PowerObject  | 
                              
                                  An object of type PowerObject containing information about the class definition of the object or control.  | 
                           
| 
                                  InitialValue  | 
                              
                                  Any  | 
                              
                                  The initial value of the variable. Not valid when Kind is VariableArgument!.  | 
                           
| 
                                  IsConstant  | 
                              
                                  Boolean  | 
                              
                                  Indicates whether the variable is a constant. Not valid when Kind is VariableArgument!.  | 
                           
| 
                                  IsControl  | 
                              
                                  Boolean  | 
                              
                                  Indicates whether the variable is a control defined as a nested class within its parent, rather than an instance variable with a control class as its datatype. Valid only when Kind is VariableInstance!.  | 
                           
| 
                                  IsUserDefined  | 
                              
                                  Boolean  | 
                              
                                  Indicates whether the variable is a user-defined variable, instead of a property or variable defined by PowerBuilder. Always true for local variables. True for arguments if the function was also user-defined.  | 
                           
| 
                                  Kind  | 
                              
                                  VariableKind  | 
                              
                                  The scope of the variable. Values are: VariableGlobal! VariableShared! VariableInstance! VariableArgument! VariableLocal! Global variables are found only in the Application object. Argument and local variables are found only in scripts.  | 
                           
| 
                                  Name  | 
                              
                                  String  | 
                              
                                  The name of the variable.  | 
                           
| 
                                  OverridesAncestorValue  | 
                              
                                  Boolean  | 
                              
                                  Indicates whether the current initial value overrides an ancestor's initial value. Valid only when Kind is VariableInstance!  | 
                           
| 
                                  ReadAccess  | 
                              
                                  VarAccess  | 
                              
                                  The read access to the variable. Values are: Private! Public! Protected! System! Not valid when Kind is VariableArgument! or VariableLocal!  | 
                           
| 
                                  TypeInfo  | 
                              
                                  TypeDefinition  | 
                              
                                  Type information for the variable.  | 
                           
| 
                                  WriteAccess  | 
                              
                                  VarAccess  | 
                              
                                  The write access to the variable. Values are: Private! Public! Protected! System! Not valid for VariableArgument! or VariableLocal!  | 
                           


