|
- Creating a procedure
- Exiting from a procedure
- "At the end of the event containing the call"
- Returning a result
- Stamping the return value
- Extension attributes
- Zombie (or obsolete) procedure
Declaring a procedure/a function In french: Déclarer une procédure/une fonction
PROCEDURE Find(FileName, Key, Value) HReadSeek(FileName, Key, Value) IF HFound() = True THEN RESULT True ELSE RESULT False END
Syntax
Declaring a procedure with parameters Hide the details
PROCEDURE <Procedure name>(<Parameters>) [<Extension attributes>] [: <Type of return>] <Procedure code>
<PROCEDURE>: Start of procedure declaration.Note: To make your programs more readable, the PROCEDURE keyword can be replaced by the FUNCTION keyword. <Procedure name>: Name of procedure to declare. <Parameters>: Parameters passed to the procedure. Each parameter is separated by a comma. See Parameters of a procedure for more details.
Versions 19 and laterIf your procedure or function is using a project element (window, page, report, ...), you have the ability to get the list of requested elements in the completion. To do so, add an extension attribute into the declaration of the function or procedure parameters. New in version 19If your procedure or function is using a project element (window, page, report, ...), you have the ability to get the list of requested elements in the completion. To do so, add an extension attribute into the declaration of the function or procedure parameters. If your procedure or function is using a project element (window, page, report, ...), you have the ability to get the list of requested elements in the completion. To do so, add an extension attribute into the declaration of the function or procedure parameters. <Extension attributes>: Versions 23 and laterExtension attributes used to define the options for managing the code editor. For more details on the available extension attributes, see remarks. New in version 23Extension attributes used to define the options for managing the code editor. For more details on the available extension attributes, see remarks. Extension attributes used to define the options for managing the code editor. For more details on the available extension attributes, see remarks.
<Type of return>: Versions 18 and laterType of value returned by the procedure. This type can correspond to a simple type (integer, real, string, ...) or to a structured type (structure, object, ...). This information is used to make sure that the procedure always has the same type of value in return. The returned value will always be converted to the specified type. For example, if the return type is "Integer" and if the returned value is a string, the string will be automatically converted to integer. New in version 18Type of value returned by the procedure. This type can correspond to a simple type (integer, real, string, ...) or to a structured type (structure, object, ...). This information is used to make sure that the procedure always has the same type of value in return. The returned value will always be converted to the specified type. For example, if the return type is "Integer" and if the returned value is a string, the string will be automatically converted to integer. Type of value returned by the procedure. This type can correspond to a simple type (integer, real, string, ...) or to a structured type (structure, object, ...). This information is used to make sure that the procedure always has the same type of value in return. The returned value will always be converted to the specified type. For example, if the return type is "Integer" and if the returned value is a string, the string will be automatically converted to integer.
<Procedure code>: WLanguage code of procedure to declare.
Declaring a procedure without parameter Hide the details
PROCEDURE <Procedure name>() [<Extension attributes>] [: <Type of return>] <Procedure code>
<PROCEDURE>: Start of procedure declaration.Note: To make your programs more readable, the PROCEDURE keyword can be replaced by the FUNCTION keyword. <Procedure name>: Name of procedure to declare. <Extension attributes>: Versions 23 and laterExtension attributes used to define the options for managing the code editor. For more details on the available extension attributes, see remarks. New in version 23Extension attributes used to define the options for managing the code editor. For more details on the available extension attributes, see remarks. Extension attributes used to define the options for managing the code editor. For more details on the available extension attributes, see remarks.
<Type of return>: Versions 18 and laterType of value returned by the procedure. This type can correspond to a simple type (integer, real, string, ...) or to a structured type (structure, object, ...). This information is used to make sure that the procedure always has the same type of value in return. The returned value will always be converted to the specified type. For example, if the return type is "Integer" and if the returned value is a string, the string will be automatically converted to integer. New in version 18Type of value returned by the procedure. This type can correspond to a simple type (integer, real, string, ...) or to a structured type (structure, object, ...). This information is used to make sure that the procedure always has the same type of value in return. The returned value will always be converted to the specified type. For example, if the return type is "Integer" and if the returned value is a string, the string will be automatically converted to integer. Type of value returned by the procedure. This type can correspond to a simple type (integer, real, string, ...) or to a structured type (structure, object, ...). This information is used to make sure that the procedure always has the same type of value in return. The returned value will always be converted to the specified type. For example, if the return type is "Integer" and if the returned value is a string, the string will be automatically converted to integer.
<Procedure code>: WLanguage code of procedure.
Declaring a procedure with variable parameters Hide the details
PROCEDURE <Procedure name>(<Parameters>, ]*) [<Extension attributes>] [: <Type of return>] <Procedure code>
<PROCEDURE>: Start of procedure declaration. Note: To make your programs more readable, the PROCEDURE keyword can be replaced by the FUNCTION keyword. <Procedure name>: Name of procedure to declare. <Parameters>: Parameters passed to the procedure. Each parameter is separated by a comma. If the number of parameters that can be passed to the procedure changes, use the "*" symbol. Some examples:- Procedures that can receive between 0 and 255 parameters: Procedure MyProc(*).
- Procedures that can receive between 1 and 255 parameters: Procedure MyProc(Param1, *).
See for more details: <Extension attributes>: Versions 23 and laterExtension attributes used to define the options for managing the code editor. For more details on the available extension attributes, see remarks. New in version 23Extension attributes used to define the options for managing the code editor. For more details on the available extension attributes, see remarks. Extension attributes used to define the options for managing the code editor. For more details on the available extension attributes, see remarks.
<Type of return>: Versions 18 and laterType of value returned by the procedure. This type can correspond to a simple type (integer, real, string, ...) or to a structured type (structure, object, ...). This information is used to make sure that the procedure always has the same type of value in return. The returned value will always be converted to the specified type. For example, if the return type is "Integer" and if the returned value is a string, the string will be automatically converted to integer. New in version 18Type of value returned by the procedure. This type can correspond to a simple type (integer, real, string, ...) or to a structured type (structure, object, ...). This information is used to make sure that the procedure always has the same type of value in return. The returned value will always be converted to the specified type. For example, if the return type is "Integer" and if the returned value is a string, the string will be automatically converted to integer. Type of value returned by the procedure. This type can correspond to a simple type (integer, real, string, ...) or to a structured type (structure, object, ...). This information is used to make sure that the procedure always has the same type of value in return. The returned value will always be converted to the specified type. For example, if the return type is "Integer" and if the returned value is a string, the string will be automatically converted to integer.
<Procedure code>: WLanguage code of procedure to declare. Remarks To force the exit from a procedure, use the RETURN keyword. In the procedure, not all processes after the RETURN keyword are run. For example:
PROCEDURE Calculate(Dividend) IF Dividend = 0 THEN Error("Unable to divide by zero") RETURN ELSE ... END
Notes: - If the procedure returns a result, use the RESULT keyword.
- RETURN and RESULT cannot be used in the same process.
"At the end of the event containing the call" The procedures with the option "At the end of the event containing the call" enabled, and called from a callback procedure (procedure used by fListFile, Event, etc.) are run at the end of each call to the callback. Example:
// ----------------- // standard case // ----------------- Click of button // beginning of button click code Proc1 // beginning of Procedure1 code Proc2 // beginning of Procedure2 code
Call to EndEvent procedure // end of Proc2 code // end of Proc1 code // end of button click code Execution of EndEvent procedure
// ------------------- // callback case // ------------------- Click of button Proc1 Proc2 use of fListFile Callback1 procedure // beginning of code of Callback1 Procedure CallbackProc2 // beginning of code of Callback2 Procedure Call to ProcEndEvent // end of ProcedureCallback2 code // end of ProcedureCallback1 code Execution of ProcEndEvent ProcedureCallback1 // beginning of ProcedureCallback1 code ProcedureCallback2 // beginning of ProcedureCallback2 code Call to ProcEndEvent // end of ProcedureCallback2 code // end of ProcedureCallback1 code Execution of ProcEndEvent
To return the procedure result to the calling process, use RESULT. This keyword is used to return: - a value,
Versions 19 and laterseveral values. New in version 19several values. several values.
For example:
// Procedure that returns a value PROCEDURE Find(FileName, Key, Value) HReadSeek(FileName, Key, Value) IF HFound() = True THEN RESULT True ELSE RESULT False END
Versions 19 and later
// Procedure that returns several values PROCEDURE MyProc()
// Process RESULT(1, 2, 3)
// Code for calling the procedure ( x, y, z ) = MyProc() // x is set to 1, y to 2 and z to 3
New in version 19
// Procedure that returns several values PROCEDURE MyProc()
// Process RESULT(1, 2, 3)
// Code for calling the procedure ( x, y, z ) = MyProc() // x is set to 1, y to 2 and z to 3
// Procedure that returns several values PROCEDURE MyProc()
// Process RESULT(1, 2, 3)
// Code for calling the procedure ( x, y, z ) = MyProc() // x is set to 1, y to 2 and z to 3
Tip: For the procedures that return a result, we recommend that you use the FUNCTION keyword instead of PROCEDURE to simplify the code reading. Important: The RETURN keyword must not be used to force the exit from a procedure that returns a result. Indeed, the call to the procedure expects a status report that will not be returned if the exit from the procedure is forced. Versions 18 and laterStamping the return value To specify the type of return value, all you have to do is specify this type (preceded by ':') when declaring the procedure. For example:
PROCEDURE Calculation(): Integer IF MyExpression = True THEN RESULT "1" // The string "1" will be converted to integer ELSE RESULT 0 END
Versions 19 and laterCase of multiple return valuesYou have the ability to assign a type to the return values. The syntax is as follows:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type Value N>]]])
Note: There is no need to specify the type for all return values. To avoid specifying the type of a return value, all you have to do is omit the type or use the '?' character. Example:
PROCEDURE Procedure_Name(): (string..String) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
You have the ability to assign a type to the return values from version 190040. New in version 19Case of multiple return valuesYou have the ability to assign a type to the return values. The syntax is as follows:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type Value N>]]])
Note: There is no need to specify the type for all return values. To avoid specifying the type of a return value, all you have to do is omit the type or use the '?' character. Example:
PROCEDURE Procedure_Name(): (string..String) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
You have the ability to assign a type to the return values from version 190040. Case of multiple return values You have the ability to assign a type to the return values. The syntax is as follows:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type Value N>]]])
Note: There is no need to specify the type for all return values. To avoid specifying the type of a return value, all you have to do is omit the type or use the '?' character. Example:
PROCEDURE Procedure_Name(): (string..String) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
You have the ability to assign a type to the return values from version 190040.The following types of return are allowed: | | | Types | Checks performed during the compilation | Checks/Actions performed at run time |
---|
boolean | | Automatic WLanguage conversions | unsigned integer | | Automatic WLanguage conversions | unsigned integer on 8 bytes | | Automatic WLanguage conversions | int | | Automatic WLanguage conversions | 8-byte integer | | Automatic WLanguage conversions | system integer | | Automatic WLanguage conversions | currency | | Automatic WLanguage conversions | numeric | | Automatic WLanguage conversions | real | | Automatic WLanguage conversions | 4-byte real | | Automatic WLanguage conversions | character | | Automatic WLanguage conversions | string | | Automatic WLanguage conversions | ANSI string | Only the strings without size are allowed | Automatic WLanguage conversions | UNICODE string | Only the strings without size are allowed | Automatic WLanguage conversions | buffer | Only the strings without size are allowed | Automatic WLanguage conversions | date | | Automatic WLanguage conversions | time | | Automatic WLanguage conversions | datetime | | Automatic WLanguage conversions | duration | | Automatic WLanguage conversions | procedure | Only the Procedure types are allowed | Only the Procedure types are allowed | font | Only the Font types are allowed | Only the Font types are allowed | <enumeration> | | | <combination> | | | <class> | - "dynamic" is not allowed
- The classes must be correlated
| Conversions allowed only | <structure> | - "dynamic" is not allowed
- the structures must be the same.
| The structures must be the same. | <advanced type> | - "dynamic" not allowed
- The advanced types must be the same.
| The advanced types must be the same. | <.NET class> | "dynamic" not allowed | | table | - "dynamic" not allowed
- Checking the type of elements
- Checking the number of dimensions
| - Checking the type of elements
- Checking the number of dimensions if the dimensions are supplied,
- Checking each dimension
| associative array | Checking the type of elements | Checking the type of elements | stack | Checking the type of elements | Checking the type of elements | queue | Checking the type of elements | Checking the type of elements | list | Checking the type of elements | Checking the type of elements |
New in version 18Stamping the return value To specify the type of return value, all you have to do is specify this type (preceded by ':') when declaring the procedure. For example:
PROCEDURE Calculation(): Integer IF MyExpression = True THEN RESULT "1" // The string "1" will be converted to integer ELSE RESULT 0 END
Versions 19 and laterCase of multiple return valuesYou have the ability to assign a type to the return values. The syntax is as follows:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type Value N>]]])
Note: There is no need to specify the type for all return values. To avoid specifying the type of a return value, all you have to do is omit the type or use the '?' character. Example:
PROCEDURE Procedure_Name(): (string..String) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
You have the ability to assign a type to the return values from version 190040. New in version 19Case of multiple return valuesYou have the ability to assign a type to the return values. The syntax is as follows:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type Value N>]]])
Note: There is no need to specify the type for all return values. To avoid specifying the type of a return value, all you have to do is omit the type or use the '?' character. Example:
PROCEDURE Procedure_Name(): (string..String) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
You have the ability to assign a type to the return values from version 190040. Case of multiple return values You have the ability to assign a type to the return values. The syntax is as follows:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type Value N>]]])
Note: There is no need to specify the type for all return values. To avoid specifying the type of a return value, all you have to do is omit the type or use the '?' character. Example:
PROCEDURE Procedure_Name(): (string..String) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
You have the ability to assign a type to the return values from version 190040.The following types of return are allowed: | | | Types | Checks performed during the compilation | Checks/Actions performed at run time |
---|
boolean | | Automatic WLanguage conversions | unsigned integer | | Automatic WLanguage conversions | unsigned integer on 8 bytes | | Automatic WLanguage conversions | int | | Automatic WLanguage conversions | 8-byte integer | | Automatic WLanguage conversions | system integer | | Automatic WLanguage conversions | currency | | Automatic WLanguage conversions | numeric | | Automatic WLanguage conversions | real | | Automatic WLanguage conversions | 4-byte real | | Automatic WLanguage conversions | character | | Automatic WLanguage conversions | string | | Automatic WLanguage conversions | ANSI string | Only the strings without size are allowed | Automatic WLanguage conversions | UNICODE string | Only the strings without size are allowed | Automatic WLanguage conversions | buffer | Only the strings without size are allowed | Automatic WLanguage conversions | date | | Automatic WLanguage conversions | time | | Automatic WLanguage conversions | datetime | | Automatic WLanguage conversions | duration | | Automatic WLanguage conversions | procedure | Only the Procedure types are allowed | Only the Procedure types are allowed | font | Only the Font types are allowed | Only the Font types are allowed | <enumeration> | | | <combination> | | | <class> | - "dynamic" is not allowed
- The classes must be correlated
| Conversions allowed only | <structure> | - "dynamic" is not allowed
- the structures must be the same.
| The structures must be the same. | <advanced type> | - "dynamic" not allowed
- The advanced types must be the same.
| The advanced types must be the same. | <.NET class> | "dynamic" not allowed | | table | - "dynamic" not allowed
- Checking the type of elements
- Checking the number of dimensions
| - Checking the type of elements
- Checking the number of dimensions if the dimensions are supplied,
- Checking each dimension
| associative array | Checking the type of elements | Checking the type of elements | stack | Checking the type of elements | Checking the type of elements | queue | Checking the type of elements | Checking the type of elements | list | Checking the type of elements | Checking the type of elements |
Stamping the return value To specify the type of return value, all you have to do is specify this type (preceded by ':') when declaring the procedure. For example:
PROCEDURE Calculation(): Integer IF MyExpression = True THEN RESULT "1" // The string "1" will be converted to integer ELSE RESULT 0 END
Versions 19 and laterCase of multiple return valuesYou have the ability to assign a type to the return values. The syntax is as follows:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type Value N>]]])
Note: There is no need to specify the type for all return values. To avoid specifying the type of a return value, all you have to do is omit the type or use the '?' character. Example:
PROCEDURE Procedure_Name(): (string..String) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
You have the ability to assign a type to the return values from version 190040. New in version 19Case of multiple return valuesYou have the ability to assign a type to the return values. The syntax is as follows:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type Value N>]]])
Note: There is no need to specify the type for all return values. To avoid specifying the type of a return value, all you have to do is omit the type or use the '?' character. Example:
PROCEDURE Procedure_Name(): (string..String) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
You have the ability to assign a type to the return values from version 190040. Case of multiple return values You have the ability to assign a type to the return values. The syntax is as follows:
PROCEDURE ProcedureName(): ([<Type value 1>, [<Type value 2>, ... , [<Type Value N>]]])
Note: There is no need to specify the type for all return values. To avoid specifying the type of a return value, all you have to do is omit the type or use the '?' character. Example:
PROCEDURE Procedure_Name(): (string..String) RESULT(1,2,3)
PROCEDURE Procedure_Name(): (string,?,string) RESULT(1,2,3)
You have the ability to assign a type to the return values from version 190040.The following types of return are allowed: | | | Types | Checks performed during the compilation | Checks/Actions performed at run time |
---|
boolean | | Automatic WLanguage conversions | unsigned integer | | Automatic WLanguage conversions | unsigned integer on 8 bytes | | Automatic WLanguage conversions | int | | Automatic WLanguage conversions | 8-byte integer | | Automatic WLanguage conversions | system integer | | Automatic WLanguage conversions | currency | | Automatic WLanguage conversions | numeric | | Automatic WLanguage conversions | real | | Automatic WLanguage conversions | 4-byte real | | Automatic WLanguage conversions | character | | Automatic WLanguage conversions | string | | Automatic WLanguage conversions | ANSI string | Only the strings without size are allowed | Automatic WLanguage conversions | UNICODE string | Only the strings without size are allowed | Automatic WLanguage conversions | buffer | Only the strings without size are allowed | Automatic WLanguage conversions | date | | Automatic WLanguage conversions | time | | Automatic WLanguage conversions | datetime | | Automatic WLanguage conversions | duration | | Automatic WLanguage conversions | procedure | Only the Procedure types are allowed | Only the Procedure types are allowed | font | Only the Font types are allowed | Only the Font types are allowed | <enumeration> | | | <combination> | | | <class> | - "dynamic" is not allowed
- The classes must be correlated
| Conversions allowed only | <structure> | - "dynamic" is not allowed
- the structures must be the same.
| The structures must be the same. | <advanced type> | - "dynamic" not allowed
- The advanced types must be the same.
| The advanced types must be the same. | <.NET class> | "dynamic" not allowed | | table | - "dynamic" not allowed
- Checking the type of elements
- Checking the number of dimensions
| - Checking the type of elements
- Checking the number of dimensions if the dimensions are supplied,
- Checking each dimension
| associative array | Checking the type of elements | Checking the type of elements | stack | Checking the type of elements | Checking the type of elements | queue | Checking the type of elements | Checking the type of elements | list | Checking the type of elements | Checking the type of elements |
Versions 23 and laterExtension attributes The available extension attributes are: - extension attribute for managing zombie procedures:
| | <zombie [comment = "text"]> | Used to define an obsolete procedure (also called zombie procedure). The optional comment keyword is used to indicate the text that will be displayed in the compilation error associated with the obsolete procedure. See Zombie procedures for more details. |
- extension attribute for managing the debugger:
| | <without step by step> | Used to specify that the procedure will be ignored by the debugger when debugging in "Step by step" mode. |
Versions 24 and laterextension attributes specific to local, global or internal procedures: | | <automatic> | Used to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures.
Caution, this extension attribute cannot be applied to an internal procedure. | <end process> | Used to specify that this procedure will be run after the process that contains the call to the procedure.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <end event> | Used to specify that this procedure will be run after the process that contains the call to the procedure. See "At the end of the event containing the call" for more details.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
New in version 24extension attributes specific to local, global or internal procedures: | | <automatic> | Used to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures.
Caution, this extension attribute cannot be applied to an internal procedure. | <end process> | Used to specify that this procedure will be run after the process that contains the call to the procedure.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <end event> | Used to specify that this procedure will be run after the process that contains the call to the procedure. See "At the end of the event containing the call" for more details.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
extension attributes specific to local, global or internal procedures:
| | <automatic> | Used to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures.
Caution, this extension attribute cannot be applied to an internal procedure. | <end process> | Used to specify that this procedure will be run after the process that contains the call to the procedure.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <end event> | Used to specify that this procedure will be run after the process that contains the call to the procedure. See "At the end of the event containing the call" for more details.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
Versions 24 and laterextension attribute to manage timers: | | <timer [=interval in hundredths of a second]> | Used to specify that the procedure will be run in a Timer. This extension attribute is equivalent to TimerSys. Repetition is automatic. The optional value interval in hundredths of a second is used to specify the time interval between 2 repetitions: - If this value is not specified, it is necessary to specify the time interval between 2 repetitions using <interval>.
- If this value is not specified, the values of <delay> and <interval> are initialized with the value of the specified interval.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <repetition [=number of repetitions]> | Used to specify that the procedure is called several times in a row (repetitions). The optional value number of repetitions is used to specify the number of calls to the procedure.- If this value is not specified, the repetition will go on until:
- EndAutomatedProcedure is called.
- the element to which the procedure belongs is closed (window, page, report).
- the instance to which the procedure belongs is destroyed (for more details about the concept of instance, see the help on Instantiation of an object).
- the end of the application (application closed by the user, or use of EndProgram).
- If this value is specified, the procedure will be called as many times as the specified number.
This extension attribute is not compatible with <timer>. In a Timer, repetition is automatic and infinite (until the Timer stops)..
Additionally, you can see the help about Automatic procedures. | <interval=duration in hundredths of a second> | Used to specify the duration (interval) between 2 calls to the procedure. This extension attribute must be used with <timer> or <repetition>. The optional value interval in hundredths of a second is used to specify this time interval. If this value is not specified, you must specify this value with <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <call again[=type of call]> | Used to specify, in a procedure called in a Timer, the operating mode of subsequent calls. This extension attribute must be used with <timer>. The optional value of this extension attribute can be:
| | ignore (Default value) | The procedure is called immediately. There is no wait time for calling the procedure. The procedure is called only once without repetition. | new | A new Timer is triggered. The procedure is called in this new Timer. Caution, the previous Timer has not stopped. The Timers will pile up in memory. | restart | Used to restart the Timer automatically at the end of the procedure. <Interval> is used to define the time interval between each call to the procedure. | This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <delay=duration un hundredths of a second> | Used to specify the wait time before the start of the procedure in a Timer (during the first call). This extension attribute must be used with <timer>. The optional value delay in hundredths of a second is used to specify this wait time. If this value is not specified, you must specify this value when using <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
New in version 24extension attribute to manage timers: | | <timer [=interval in hundredths of a second]> | Used to specify that the procedure will be run in a Timer. This extension attribute is equivalent to TimerSys. Repetition is automatic. The optional value interval in hundredths of a second is used to specify the time interval between 2 repetitions: - If this value is not specified, it is necessary to specify the time interval between 2 repetitions using <interval>.
- If this value is not specified, the values of <delay> and <interval> are initialized with the value of the specified interval.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <repetition [=number of repetitions]> | Used to specify that the procedure is called several times in a row (repetitions). The optional value number of repetitions is used to specify the number of calls to the procedure.- If this value is not specified, the repetition will go on until:
- EndAutomatedProcedure is called.
- the element to which the procedure belongs is closed (window, page, report).
- the instance to which the procedure belongs is destroyed (for more details about the concept of instance, see the help on Instantiation of an object).
- the end of the application (application closed by the user, or use of EndProgram).
- If this value is specified, the procedure will be called as many times as the specified number.
This extension attribute is not compatible with <timer>. In a Timer, repetition is automatic and infinite (until the Timer stops)..
Additionally, you can see the help about Automatic procedures. | <interval=duration in hundredths of a second> | Used to specify the duration (interval) between 2 calls to the procedure. This extension attribute must be used with <timer> or <repetition>. The optional value interval in hundredths of a second is used to specify this time interval. If this value is not specified, you must specify this value with <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <call again[=type of call]> | Used to specify, in a procedure called in a Timer, the operating mode of subsequent calls. This extension attribute must be used with <timer>. The optional value of this extension attribute can be:
| | ignore (Default value) | The procedure is called immediately. There is no wait time for calling the procedure. The procedure is called only once without repetition. | new | A new Timer is triggered. The procedure is called in this new Timer. Caution, the previous Timer has not stopped. The Timers will pile up in memory. | restart | Used to restart the Timer automatically at the end of the procedure. <Interval> is used to define the time interval between each call to the procedure. | This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <delay=duration un hundredths of a second> | Used to specify the wait time before the start of the procedure in a Timer (during the first call). This extension attribute must be used with <timer>. The optional value delay in hundredths of a second is used to specify this wait time. If this value is not specified, you must specify this value when using <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
extension attribute to manage timers:
| | <timer [=interval in hundredths of a second]> | Used to specify that the procedure will be run in a Timer. This extension attribute is equivalent to TimerSys. Repetition is automatic. The optional value interval in hundredths of a second is used to specify the time interval between 2 repetitions: - If this value is not specified, it is necessary to specify the time interval between 2 repetitions using <interval>.
- If this value is not specified, the values of <delay> and <interval> are initialized with the value of the specified interval.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <repetition [=number of repetitions]> | Used to specify that the procedure is called several times in a row (repetitions). The optional value number of repetitions is used to specify the number of calls to the procedure.- If this value is not specified, the repetition will go on until:
- EndAutomatedProcedure is called.
- the element to which the procedure belongs is closed (window, page, report).
- the instance to which the procedure belongs is destroyed (for more details about the concept of instance, see the help on Instantiation of an object).
- the end of the application (application closed by the user, or use of EndProgram).
- If this value is specified, the procedure will be called as many times as the specified number.
This extension attribute is not compatible with <timer>. In a Timer, repetition is automatic and infinite (until the Timer stops)..
Additionally, you can see the help about Automatic procedures. | <interval=duration in hundredths of a second> | Used to specify the duration (interval) between 2 calls to the procedure. This extension attribute must be used with <timer> or <repetition>. The optional value interval in hundredths of a second is used to specify this time interval. If this value is not specified, you must specify this value with <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <call again[=type of call]> | Used to specify, in a procedure called in a Timer, the operating mode of subsequent calls. This extension attribute must be used with <timer>. The optional value of this extension attribute can be:
| | ignore (Default value) | The procedure is called immediately. There is no wait time for calling the procedure. The procedure is called only once without repetition. | new | A new Timer is triggered. The procedure is called in this new Timer. Caution, the previous Timer has not stopped. The Timers will pile up in memory. | restart | Used to restart the Timer automatically at the end of the procedure. <Interval> is used to define the time interval between each call to the procedure. | This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <delay=duration un hundredths of a second> | Used to specify the wait time before the start of the procedure in a Timer (during the first call). This extension attribute must be used with <timer>. The optional value delay in hundredths of a second is used to specify this wait time. If this value is not specified, you must specify this value when using <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
- extension attribute to manage threads:
| | <thread> | Used to specify that the procedure will be run in a secondary thread. For more details on threads, see Management of threads.
This extension attribute is not compatible with <timer> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <main thread> | Used to specify that the procedure will be run in a secondary thread. For more details on threads, see Management of threads.
This extension attribute is not compatible with <timer> and <thread>.
Additionally, you can see the help about Automatic procedures. | <light HFSQL context> | Triggers the immediate copy of part of current HFSQL context. Only the directories containing the data files in HFSQL Classic mode and/or the connections in HFSQL Client/Server mode are stored.
This extension attribute must be used with <thread>. For more details on the management of threads, see the help about ThreadExecute. Additionally, you can see the help about Automatic procedures. This extension attribute is not available. | <full HFSQL context> | Triggers the immediate copy of current HFSQL context. Recommended if the thread must take into account the current positions in the files and queries of caller context.
This extension attribute must be used with <thread>. For more details on the management of threads, see the help about ThreadExecute.
Additionally, you can see the help about Automatic procedures. This extension attribute is not available. |
New in version 23Extension attributes The available extension attributes are: - extension attribute for managing zombie procedures:
| | <zombie [comment = "text"]> | Used to define an obsolete procedure (also called zombie procedure). The optional comment keyword is used to indicate the text that will be displayed in the compilation error associated with the obsolete procedure. See Zombie procedures for more details. |
- extension attribute for managing the debugger:
| | <without step by step> | Used to specify that the procedure will be ignored by the debugger when debugging in "Step by step" mode. |
Versions 24 and laterextension attributes specific to local, global or internal procedures: | | <automatic> | Used to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures.
Caution, this extension attribute cannot be applied to an internal procedure. | <end process> | Used to specify that this procedure will be run after the process that contains the call to the procedure.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <end event> | Used to specify that this procedure will be run after the process that contains the call to the procedure. See "At the end of the event containing the call" for more details.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
New in version 24extension attributes specific to local, global or internal procedures: | | <automatic> | Used to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures.
Caution, this extension attribute cannot be applied to an internal procedure. | <end process> | Used to specify that this procedure will be run after the process that contains the call to the procedure.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <end event> | Used to specify that this procedure will be run after the process that contains the call to the procedure. See "At the end of the event containing the call" for more details.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
extension attributes specific to local, global or internal procedures:
| | <automatic> | Used to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures.
Caution, this extension attribute cannot be applied to an internal procedure. | <end process> | Used to specify that this procedure will be run after the process that contains the call to the procedure.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <end event> | Used to specify that this procedure will be run after the process that contains the call to the procedure. See "At the end of the event containing the call" for more details.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
Versions 24 and laterextension attribute to manage timers: | | <timer [=interval in hundredths of a second]> | Used to specify that the procedure will be run in a Timer. This extension attribute is equivalent to TimerSys. Repetition is automatic. The optional value interval in hundredths of a second is used to specify the time interval between 2 repetitions: - If this value is not specified, it is necessary to specify the time interval between 2 repetitions using <interval>.
- If this value is not specified, the values of <delay> and <interval> are initialized with the value of the specified interval.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <repetition [=number of repetitions]> | Used to specify that the procedure is called several times in a row (repetitions). The optional value number of repetitions is used to specify the number of calls to the procedure.- If this value is not specified, the repetition will go on until:
- EndAutomatedProcedure is called.
- the element to which the procedure belongs is closed (window, page, report).
- the instance to which the procedure belongs is destroyed (for more details about the concept of instance, see the help on Instantiation of an object).
- the end of the application (application closed by the user, or use of EndProgram).
- If this value is specified, the procedure will be called as many times as the specified number.
This extension attribute is not compatible with <timer>. In a Timer, repetition is automatic and infinite (until the Timer stops)..
Additionally, you can see the help about Automatic procedures. | <interval=duration in hundredths of a second> | Used to specify the duration (interval) between 2 calls to the procedure. This extension attribute must be used with <timer> or <repetition>. The optional value interval in hundredths of a second is used to specify this time interval. If this value is not specified, you must specify this value with <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <call again[=type of call]> | Used to specify, in a procedure called in a Timer, the operating mode of subsequent calls. This extension attribute must be used with <timer>. The optional value of this extension attribute can be:
| | ignore (Default value) | The procedure is called immediately. There is no wait time for calling the procedure. The procedure is called only once without repetition. | new | A new Timer is triggered. The procedure is called in this new Timer. Caution, the previous Timer has not stopped. The Timers will pile up in memory. | restart | Used to restart the Timer automatically at the end of the procedure. <Interval> is used to define the time interval between each call to the procedure. | This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <delay=duration un hundredths of a second> | Used to specify the wait time before the start of the procedure in a Timer (during the first call). This extension attribute must be used with <timer>. The optional value delay in hundredths of a second is used to specify this wait time. If this value is not specified, you must specify this value when using <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
New in version 24extension attribute to manage timers: | | <timer [=interval in hundredths of a second]> | Used to specify that the procedure will be run in a Timer. This extension attribute is equivalent to TimerSys. Repetition is automatic. The optional value interval in hundredths of a second is used to specify the time interval between 2 repetitions: - If this value is not specified, it is necessary to specify the time interval between 2 repetitions using <interval>.
- If this value is not specified, the values of <delay> and <interval> are initialized with the value of the specified interval.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <repetition [=number of repetitions]> | Used to specify that the procedure is called several times in a row (repetitions). The optional value number of repetitions is used to specify the number of calls to the procedure.- If this value is not specified, the repetition will go on until:
- EndAutomatedProcedure is called.
- the element to which the procedure belongs is closed (window, page, report).
- the instance to which the procedure belongs is destroyed (for more details about the concept of instance, see the help on Instantiation of an object).
- the end of the application (application closed by the user, or use of EndProgram).
- If this value is specified, the procedure will be called as many times as the specified number.
This extension attribute is not compatible with <timer>. In a Timer, repetition is automatic and infinite (until the Timer stops)..
Additionally, you can see the help about Automatic procedures. | <interval=duration in hundredths of a second> | Used to specify the duration (interval) between 2 calls to the procedure. This extension attribute must be used with <timer> or <repetition>. The optional value interval in hundredths of a second is used to specify this time interval. If this value is not specified, you must specify this value with <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <call again[=type of call]> | Used to specify, in a procedure called in a Timer, the operating mode of subsequent calls. This extension attribute must be used with <timer>. The optional value of this extension attribute can be:
| | ignore (Default value) | The procedure is called immediately. There is no wait time for calling the procedure. The procedure is called only once without repetition. | new | A new Timer is triggered. The procedure is called in this new Timer. Caution, the previous Timer has not stopped. The Timers will pile up in memory. | restart | Used to restart the Timer automatically at the end of the procedure. <Interval> is used to define the time interval between each call to the procedure. | This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <delay=duration un hundredths of a second> | Used to specify the wait time before the start of the procedure in a Timer (during the first call). This extension attribute must be used with <timer>. The optional value delay in hundredths of a second is used to specify this wait time. If this value is not specified, you must specify this value when using <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
extension attribute to manage timers:
| | <timer [=interval in hundredths of a second]> | Used to specify that the procedure will be run in a Timer. This extension attribute is equivalent to TimerSys. Repetition is automatic. The optional value interval in hundredths of a second is used to specify the time interval between 2 repetitions: - If this value is not specified, it is necessary to specify the time interval between 2 repetitions using <interval>.
- If this value is not specified, the values of <delay> and <interval> are initialized with the value of the specified interval.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <repetition [=number of repetitions]> | Used to specify that the procedure is called several times in a row (repetitions). The optional value number of repetitions is used to specify the number of calls to the procedure.- If this value is not specified, the repetition will go on until:
- EndAutomatedProcedure is called.
- the element to which the procedure belongs is closed (window, page, report).
- the instance to which the procedure belongs is destroyed (for more details about the concept of instance, see the help on Instantiation of an object).
- the end of the application (application closed by the user, or use of EndProgram).
- If this value is specified, the procedure will be called as many times as the specified number.
This extension attribute is not compatible with <timer>. In a Timer, repetition is automatic and infinite (until the Timer stops)..
Additionally, you can see the help about Automatic procedures. | <interval=duration in hundredths of a second> | Used to specify the duration (interval) between 2 calls to the procedure. This extension attribute must be used with <timer> or <repetition>. The optional value interval in hundredths of a second is used to specify this time interval. If this value is not specified, you must specify this value with <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <call again[=type of call]> | Used to specify, in a procedure called in a Timer, the operating mode of subsequent calls. This extension attribute must be used with <timer>. The optional value of this extension attribute can be:
| | ignore (Default value) | The procedure is called immediately. There is no wait time for calling the procedure. The procedure is called only once without repetition. | new | A new Timer is triggered. The procedure is called in this new Timer. Caution, the previous Timer has not stopped. The Timers will pile up in memory. | restart | Used to restart the Timer automatically at the end of the procedure. <Interval> is used to define the time interval between each call to the procedure. | This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <delay=duration un hundredths of a second> | Used to specify the wait time before the start of the procedure in a Timer (during the first call). This extension attribute must be used with <timer>. The optional value delay in hundredths of a second is used to specify this wait time. If this value is not specified, you must specify this value when using <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
- extension attribute to manage threads:
| | <thread> | Used to specify that the procedure will be run in a secondary thread. For more details on threads, see Management of threads.
This extension attribute is not compatible with <timer> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <main thread> | Used to specify that the procedure will be run in a secondary thread. For more details on threads, see Management of threads.
This extension attribute is not compatible with <timer> and <thread>.
Additionally, you can see the help about Automatic procedures. | <light HFSQL context> | Triggers the immediate copy of part of current HFSQL context. Only the directories containing the data files in HFSQL Classic mode and/or the connections in HFSQL Client/Server mode are stored.
This extension attribute must be used with <thread>. For more details on the management of threads, see the help about ThreadExecute. Additionally, you can see the help about Automatic procedures. This extension attribute is not available. | <full HFSQL context> | Triggers the immediate copy of current HFSQL context. Recommended if the thread must take into account the current positions in the files and queries of caller context.
This extension attribute must be used with <thread>. For more details on the management of threads, see the help about ThreadExecute.
Additionally, you can see the help about Automatic procedures. This extension attribute is not available. |
Extension attributes The available extension attributes are: - extension attribute for managing zombie procedures:
| | <zombie [comment = "text"]> | Used to define an obsolete procedure (also called zombie procedure). The optional comment keyword is used to indicate the text that will be displayed in the compilation error associated with the obsolete procedure. See Zombie procedures for more details. |
- extension attribute for managing the debugger:
| | <without step by step> | Used to specify that the procedure will be ignored by the debugger when debugging in "Step by step" mode. |
Versions 24 and laterextension attributes specific to local, global or internal procedures: | | <automatic> | Used to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures.
Caution, this extension attribute cannot be applied to an internal procedure. | <end process> | Used to specify that this procedure will be run after the process that contains the call to the procedure.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <end event> | Used to specify that this procedure will be run after the process that contains the call to the procedure. See "At the end of the event containing the call" for more details.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
New in version 24extension attributes specific to local, global or internal procedures: | | <automatic> | Used to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures.
Caution, this extension attribute cannot be applied to an internal procedure. | <end process> | Used to specify that this procedure will be run after the process that contains the call to the procedure.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <end event> | Used to specify that this procedure will be run after the process that contains the call to the procedure. See "At the end of the event containing the call" for more details.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
extension attributes specific to local, global or internal procedures:
| | <automatic> | Used to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures.
Caution, this extension attribute cannot be applied to an internal procedure. | <end process> | Used to specify that this procedure will be run after the process that contains the call to the procedure.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <end event> | Used to specify that this procedure will be run after the process that contains the call to the procedure. See "At the end of the event containing the call" for more details.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
Versions 24 and laterextension attribute to manage timers: | | <timer [=interval in hundredths of a second]> | Used to specify that the procedure will be run in a Timer. This extension attribute is equivalent to TimerSys. Repetition is automatic. The optional value interval in hundredths of a second is used to specify the time interval between 2 repetitions: - If this value is not specified, it is necessary to specify the time interval between 2 repetitions using <interval>.
- If this value is not specified, the values of <delay> and <interval> are initialized with the value of the specified interval.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <repetition [=number of repetitions]> | Used to specify that the procedure is called several times in a row (repetitions). The optional value number of repetitions is used to specify the number of calls to the procedure.- If this value is not specified, the repetition will go on until:
- EndAutomatedProcedure is called.
- the element to which the procedure belongs is closed (window, page, report).
- the instance to which the procedure belongs is destroyed (for more details about the concept of instance, see the help on Instantiation of an object).
- the end of the application (application closed by the user, or use of EndProgram).
- If this value is specified, the procedure will be called as many times as the specified number.
This extension attribute is not compatible with <timer>. In a Timer, repetition is automatic and infinite (until the Timer stops)..
Additionally, you can see the help about Automatic procedures. | <interval=duration in hundredths of a second> | Used to specify the duration (interval) between 2 calls to the procedure. This extension attribute must be used with <timer> or <repetition>. The optional value interval in hundredths of a second is used to specify this time interval. If this value is not specified, you must specify this value with <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <call again[=type of call]> | Used to specify, in a procedure called in a Timer, the operating mode of subsequent calls. This extension attribute must be used with <timer>. The optional value of this extension attribute can be:
| | ignore (Default value) | The procedure is called immediately. There is no wait time for calling the procedure. The procedure is called only once without repetition. | new | A new Timer is triggered. The procedure is called in this new Timer. Caution, the previous Timer has not stopped. The Timers will pile up in memory. | restart | Used to restart the Timer automatically at the end of the procedure. <Interval> is used to define the time interval between each call to the procedure. | This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <delay=duration un hundredths of a second> | Used to specify the wait time before the start of the procedure in a Timer (during the first call). This extension attribute must be used with <timer>. The optional value delay in hundredths of a second is used to specify this wait time. If this value is not specified, you must specify this value when using <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
New in version 24extension attribute to manage timers: | | <timer [=interval in hundredths of a second]> | Used to specify that the procedure will be run in a Timer. This extension attribute is equivalent to TimerSys. Repetition is automatic. The optional value interval in hundredths of a second is used to specify the time interval between 2 repetitions: - If this value is not specified, it is necessary to specify the time interval between 2 repetitions using <interval>.
- If this value is not specified, the values of <delay> and <interval> are initialized with the value of the specified interval.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <repetition [=number of repetitions]> | Used to specify that the procedure is called several times in a row (repetitions). The optional value number of repetitions is used to specify the number of calls to the procedure.- If this value is not specified, the repetition will go on until:
- EndAutomatedProcedure is called.
- the element to which the procedure belongs is closed (window, page, report).
- the instance to which the procedure belongs is destroyed (for more details about the concept of instance, see the help on Instantiation of an object).
- the end of the application (application closed by the user, or use of EndProgram).
- If this value is specified, the procedure will be called as many times as the specified number.
This extension attribute is not compatible with <timer>. In a Timer, repetition is automatic and infinite (until the Timer stops)..
Additionally, you can see the help about Automatic procedures. | <interval=duration in hundredths of a second> | Used to specify the duration (interval) between 2 calls to the procedure. This extension attribute must be used with <timer> or <repetition>. The optional value interval in hundredths of a second is used to specify this time interval. If this value is not specified, you must specify this value with <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <call again[=type of call]> | Used to specify, in a procedure called in a Timer, the operating mode of subsequent calls. This extension attribute must be used with <timer>. The optional value of this extension attribute can be:
| | ignore (Default value) | The procedure is called immediately. There is no wait time for calling the procedure. The procedure is called only once without repetition. | new | A new Timer is triggered. The procedure is called in this new Timer. Caution, the previous Timer has not stopped. The Timers will pile up in memory. | restart | Used to restart the Timer automatically at the end of the procedure. <Interval> is used to define the time interval between each call to the procedure. | This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <delay=duration un hundredths of a second> | Used to specify the wait time before the start of the procedure in a Timer (during the first call). This extension attribute must be used with <timer>. The optional value delay in hundredths of a second is used to specify this wait time. If this value is not specified, you must specify this value when using <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
extension attribute to manage timers:
| | <timer [=interval in hundredths of a second]> | Used to specify that the procedure will be run in a Timer. This extension attribute is equivalent to TimerSys. Repetition is automatic. The optional value interval in hundredths of a second is used to specify the time interval between 2 repetitions: - If this value is not specified, it is necessary to specify the time interval between 2 repetitions using <interval>.
- If this value is not specified, the values of <delay> and <interval> are initialized with the value of the specified interval.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <repetition [=number of repetitions]> | Used to specify that the procedure is called several times in a row (repetitions). The optional value number of repetitions is used to specify the number of calls to the procedure.- If this value is not specified, the repetition will go on until:
- EndAutomatedProcedure is called.
- the element to which the procedure belongs is closed (window, page, report).
- the instance to which the procedure belongs is destroyed (for more details about the concept of instance, see the help on Instantiation of an object).
- the end of the application (application closed by the user, or use of EndProgram).
- If this value is specified, the procedure will be called as many times as the specified number.
This extension attribute is not compatible with <timer>. In a Timer, repetition is automatic and infinite (until the Timer stops)..
Additionally, you can see the help about Automatic procedures. | <interval=duration in hundredths of a second> | Used to specify the duration (interval) between 2 calls to the procedure. This extension attribute must be used with <timer> or <repetition>. The optional value interval in hundredths of a second is used to specify this time interval. If this value is not specified, you must specify this value with <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <call again[=type of call]> | Used to specify, in a procedure called in a Timer, the operating mode of subsequent calls. This extension attribute must be used with <timer>. The optional value of this extension attribute can be:
| | ignore (Default value) | The procedure is called immediately. There is no wait time for calling the procedure. The procedure is called only once without repetition. | new | A new Timer is triggered. The procedure is called in this new Timer. Caution, the previous Timer has not stopped. The Timers will pile up in memory. | restart | Used to restart the Timer automatically at the end of the procedure. <Interval> is used to define the time interval between each call to the procedure. | This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <delay=duration un hundredths of a second> | Used to specify the wait time before the start of the procedure in a Timer (during the first call). This extension attribute must be used with <timer>. The optional value delay in hundredths of a second is used to specify this wait time. If this value is not specified, you must specify this value when using <timer>.
This extension attribute is not compatible with <thread> and <main thread>.
Additionally, you can see the help about Automatic procedures. |
- extension attribute to manage threads:
| | <thread> | Used to specify that the procedure will be run in a secondary thread. For more details on threads, see Management of threads.
This extension attribute is not compatible with <timer> and <main thread>.
Additionally, you can see the help about Automatic procedures. | <main thread> | Used to specify that the procedure will be run in a secondary thread. For more details on threads, see Management of threads.
This extension attribute is not compatible with <timer> and <thread>.
Additionally, you can see the help about Automatic procedures. | <light HFSQL context> | Triggers the immediate copy of part of current HFSQL context. Only the directories containing the data files in HFSQL Classic mode and/or the connections in HFSQL Client/Server mode are stored.
This extension attribute must be used with <thread>. For more details on the management of threads, see the help about ThreadExecute. Additionally, you can see the help about Automatic procedures. This extension attribute is not available. | <full HFSQL context> | Triggers the immediate copy of current HFSQL context. Recommended if the thread must take into account the current positions in the files and queries of caller context.
This extension attribute must be used with <thread>. For more details on the management of threads, see the help about ThreadExecute.
Additionally, you can see the help about Automatic procedures. This extension attribute is not available. |
Versions 23 and laterZombie (or obsolete) procedure In most cases, an old code contains procedures that are used but that do no longer match the current quality standard. In this case, a new procedure version is created, with different parameters. As all the existing calls cannot be modified straightaway, you have the ability to indicate that the former version becomes a zombie procedure. In this case: - When recompiling the project, a warning is used to indicate all the calls to the zombie procedure.
- Whenever the zombie procedure is used, a specific logo is displayed beside the call during 10 seconds and a compilation warning is generated.
- The zombie procedures is grayed and struck out in the project explorer.
How to proceed?To indicate that a procedure is a zombie procedure, the procedure declaration must be followed by the <Zombie> attribute extension. The syntax is as follows:
PROCEDURE <Procedure name>(<Parameters>) <zombie [comment = "text"]> [: <Type of return>] PROCEDURE <Procedure name>() <zombie [comment = "text"]> [: <Type of return>]
In these syntaxes, the optional comment keyword is used to specify the text that will be displayed in the compilation error associated with the obsolete procedure. Example
- Procedure code:
PROCEDURE AddTreeView(sNode, sMonth, sImageDate, sImage)<zombie comment = "use AjFull"> // Check to find out whether the year exists IF TreeStatus(TreeCommand, sNode) = tvError THEN // it does not exist, create it with all the months TreeAdd(TreeCommand, sNode, sImageDate, sImageDate, "", tvLast) AddMonth(sNode) END
- The zombie procedures is grayed and struck out in the project explorer (as soon as the element is recompiled).
- When typing the call to the function, a specific icon will be displayed during 10 seconds : and a compilation error containing the comment will be displayed:
New in version 23Zombie (or obsolete) procedure In most cases, an old code contains procedures that are used but that do no longer match the current quality standard. In this case, a new procedure version is created, with different parameters. As all the existing calls cannot be modified straightaway, you have the ability to indicate that the former version becomes a zombie procedure. In this case: - When recompiling the project, a warning is used to indicate all the calls to the zombie procedure.
- Whenever the zombie procedure is used, a specific logo is displayed beside the call during 10 seconds and a compilation warning is generated.
- The zombie procedures is grayed and struck out in the project explorer.
How to proceed?To indicate that a procedure is a zombie procedure, the procedure declaration must be followed by the <Zombie> attribute extension. The syntax is as follows:
PROCEDURE <Procedure name>(<Parameters>) <zombie [comment = "text"]> [: <Type of return>] PROCEDURE <Procedure name>() <zombie [comment = "text"]> [: <Type of return>]
In these syntaxes, the optional comment keyword is used to specify the text that will be displayed in the compilation error associated with the obsolete procedure. Example
- Procedure code:
PROCEDURE AddTreeView(sNode, sMonth, sImageDate, sImage)<zombie comment = "use AjFull"> // Check to find out whether the year exists IF TreeStatus(TreeCommand, sNode) = tvError THEN // it does not exist, create it with all the months TreeAdd(TreeCommand, sNode, sImageDate, sImageDate, "", tvLast) AddMonth(sNode) END
- The zombie procedures is grayed and struck out in the project explorer (as soon as the element is recompiled).
- When typing the call to the function, a specific icon will be displayed during 10 seconds : and a compilation error containing the comment will be displayed:
Zombie (or obsolete) procedure In most cases, an old code contains procedures that are used but that do no longer match the current quality standard. In this case, a new procedure version is created, with different parameters. As all the existing calls cannot be modified straightaway, you have the ability to indicate that the former version becomes a zombie procedure. In this case: - When recompiling the project, a warning is used to indicate all the calls to the zombie procedure.
- Whenever the zombie procedure is used, a specific logo is displayed beside the call during 10 seconds and a compilation warning is generated.
- The zombie procedures is grayed and struck out in the project explorer.
How to proceed?To indicate that a procedure is a zombie procedure, the procedure declaration must be followed by the <Zombie> attribute extension. The syntax is as follows:
PROCEDURE <Procedure name>(<Parameters>) <zombie [comment = "text"]> [: <Type of return>] PROCEDURE <Procedure name>() <zombie [comment = "text"]> [: <Type of return>]
In these syntaxes, the optional comment keyword is used to specify the text that will be displayed in the compilation error associated with the obsolete procedure. Example
- Procedure code:
PROCEDURE AddTreeView(sNode, sMonth, sImageDate, sImage)<zombie comment = "use AjFull"> // Check to find out whether the year exists IF TreeStatus(TreeCommand, sNode) = tvError THEN // it does not exist, create it with all the months TreeAdd(TreeCommand, sNode, sImageDate, sImageDate, "", tvLast) AddMonth(sNode) END
- The zombie procedures is grayed and struck out in the project explorer (as soon as the element is recompiled).
- When typing the call to the function, a specific icon will be displayed during 10 seconds : and a compilation error containing the comment will be displayed:
This page is also available for…
|
|
|
| |
| Click [Add] to post a comment |
|
| |
|
| |
| |
| |
| |
| |
| |
| | |
| |