ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage syntax / Reserved keywords
  • General extension attributes
  • Extension attributes specific to OOP and MVP
  • Extension attributes specific to variables
  • Extension attributes specific to local/global or internal procedures
  • Extension attributes to manage timers
  • Extension attributes to manage threads
  • Remark
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Extension attributes are special WLanguage statements that allow you to add specific properties or functionalities to variables or procedures. These extension attributes help simplify code and facilitate the maintenance of your applications.
WINDEV, WEBDEV and WINDEV Mobile support several extension attributes. This page presents the different extension attributes available, grouped by theme.
The extension attribute categories are:
To simplify the input of extension attributes, the code editor automatically proposes the list of available extension attributes when the "<" key is pressed. For more details, see Automatic completion.
General extension attributes
The general extension attributes are:
C#Used to define a WLanguage procedure that can be called via a C# code.
For more details, see C#: Call to WLanguage procedure.
WEBDEV - Server code Not available
GUI / UIUsed to specify the use of the variable or procedure in a code or process containing both UI code and Business logic.
For more details, see Splitting Business logic/UI code.
JavaUsed to define a WLanguage procedure that can be called via a Java code.
Business logicUsed to specify the use of the variable or procedure in a code or process containing both UI code and Business logic.
For more details, see Splitting Business logic/UI code.
ObjCUsed to define a WLanguage procedure that can be called via an Objective-C code.
browser synchronizedUsed to make a global server variable available on the browser side. The content is synchronized.
The value assigned to a "browser synchronized" global variable in server code is retrieved in a browser code executed later.
The value assigned to a global variable in a browser code is retrieved the next time a server code is executed.
Limit: To avoid overwriting, changes are synchronized only:
Caution: Changes are not synchronized for the server code of an Upload control or Clickable Image control because these processes do not send the value of the controls to the server.
To use this extension attribute it is necessary to use the framework V2 of the browser code.
xmlAttributeUsed to specify that the member is created as attribute (instead of tag).
For more details, see Serialize.
Extension attributes specific to OOP and MVP
The extension attributes specific to OOP and MVP are:
SerializeUsed to manage the serialization of each class member or structure member.
For more details, see:
no step intoUsed to specify that a method will be ignored by the debugger when debugging in "Step by step" mode.
For more details, see the help on how to declare Classes, members, methods and properties
immutableIndicates that a method or all methods in a class are immutable: once its value is set, it cannot be changed.
For more details, see the help on how to declare Classes, members, methods and properties
presenterUsed to associate a class of the presenter layer with a view (window or report).
For more details, see MVP RAD.
WEBDEV - Server code Not available
mappingUsed to specify the name of member that will be "mapped" to the structure member or to the class member.
For more details, see:
associatedUsed to access the members, the methods and the properties of a Model class from its Presenter class without having to perform any "rebounds".
For more details, see MVP RAD.
copyUsed to specify the operation to be performed when copying an instance of an object.
  • <Copy=Clone>: when used on a dynamic object, this extension attribute allows forcing the cloning of the object.
  • <Copy=False>: when used on a member, this extension attribute prevents copying the member's value when copying an object to another object.
For more details, see Copying and cloning.
force destructorForces the call to the destructor (deletes the object), even if an element holds a strong reference to this object.
weakIndicates a weak reference. In this case, objects will be automatically deleted according to their scope (even if a global reference was taken on these objects). The low reference must be specified during the dynamic instantiation of the object taking reference.
noteAllows you to insert a comment about a class member (<note=Comment about the member>). The content of this note can is returned by the AttributeNote property of a Variable Description.
Reminder: The Variable Description type is used to get information about a class or structure member.
For more details, see Variable Description.
Extension attributes specific to variables
The extension attributes specific to variables are:
ControllerIndicates that a variable is controller in a test script code. This controller variable can then be used in the test code, for example to check the result of a procedure.
For more details, see Manager of automated tests.
undetectableAutomatically obfuscates the content of the string in memory.
For more details, see Character strings.
immutableIndicates that the variable is immutable, i.e. its value will not change once assigned
For more details, see Declaring and using a variable.
critical sectionUsed to associate a critical section with a variable.
For more details, see Managing the critical sections.
browser synchronizedUsed to synchronize a variable global to the project to make it available on the browser side. In this case the value assigned to a global variable in a browser code, can be retrieved later in a server code.
For more details, see Global and local variables.
server onlyUsed to protect a variable global to the project to make it unavailable on the browser side.
For more details, see Global and local variables.
usefulPrevents a warning message from being displayed when a local variable is not used.
For more details, see Declaring and using a variable.
zombieUsed to specify that a variable or a procedure is obsolete and that it should not be used anymore.
For more details, see the help on how to declare a Global and local variable.
Extension attributes specific to local/global or internal procedures
The extension attributes specific to local, global or internal procedures are:
report nameAllows you to directly use the name of a project report in the procedure parameters.
For more details, see Passing parameters.
window nameAllows you to directly use the name of a project window in the procedure parameters.
For more details, see Passing parameters.
page nameAllows you to directly use the name of a project page in the procedure parameters.
For more details, see Passing parameters.
automaticUsed to specify that this procedure will be run automatically after the initialization code (of the window, page or project).
For more details, see Declaring a procedure/a function.
end processUsed to specify that this procedure will be executed when the process containing the procedure call is finished.
For more details, see Declaring a procedure/a function.
end eventUsed to specify that this procedure will be run after the event that contains the call to the procedure.
For more details, see Declaring a procedure/a function.
zombieUsed to specify that a variable or a procedure is obsolete and that it should not be used anymore.
For more details, see Zombie procedures.
usefulUsed to avoid a warning when a procedure declares some parameters that are not immediately used.
For more details, see Useful parameters of a procedure.
no step intoUsed to specify that a procedure will be ignored by the debugger when debugging in "Step by step" mode.
For more details, see the help on Declaring a procedure/a function.
extensionUsed to specify that a global procedure that handles a WLanguage type can be used as a native function.
For more details, see Extension procedure.
Extension attributes to manage timers
The extension attributes specific to the management of timers are:
timerUsed to specify that the procedure will be run in a Timer.
For more details, see Declaring a procedure/a function.
repetitionUsed to specify that the procedure is called several times in a row (repetitions).
For more details, see Declaring a procedure/a function.
intervalUsed to specify the duration (interval) between 2 calls to the procedure.
For more details, see Declaring a procedure/a function.
call againUsed to specify, in a procedure called in a Timer, the operating mode of subsequent calls.
For more details, see Declaring a procedure/a function.
delayUsed to specify the wait time before the start of the procedure in a Timer (during the first call).
For more details, see Declaring a procedure/a function.
Extension attributes to manage threads
The extension attributes specific to the management of threads are:
threadUsed to specify that the procedure will be run in a secondary thread.
For more details, see Declaring a procedure/a function.
main threadUsed to specify that the procedure will be run in the main thread.
For more details, see Declaring a procedure/a function.
main thread asynchronousIndicates that the procedure will be executed in the main thread and that there is no need to wait for the end of the execution of this procedure.
For more details, see Declaring a procedure/a function.
secure threadUsed to specify that the procedure will be run in the secure secondary thread.
For more details, see Declaring a procedure/a function.
light HFSQL contextTriggers the immediate copy of a part of the current HFSQL context.
For more details, see Declaring a procedure/a function.
full HFSQL contextTriggers the immediate copy of the current HFSQL context.
For more details, see Declaring a procedure/a function.
Remark
You can combine several extension attributes using the syntax, according to the type of declaration and the object used:
Declaration of my object <Name Attribute 1=value1, Name Attribute 2=value2, ...>

For example, for a declaration of a buffer variable:
Class
m_buffer is Buffer <serialize=false,mapping="ImageMemo">
END
Minimum version required
  • Version 15
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 03/06/2024

Send a report | Local help