The "Analysis" tab that is used to associate an analysis with the project and/or with a UML model

The "Files" tab that is used to type information about the data files managed by the application (only if the project is linked to an analysis).

The "Live data" tab that is used to configure the display of data (coming from the data files) in the different editors.

The "Languages" tab that is used to configure the different languages handled by the project as well as the linguistic options that will be used for each language.

The "Style" tab that is used to choose the theme of skin template and the custom style sheet, and to customize the print preview. You also have the ability to configure the size of screens.

The "Group" tab that is used to manage the teamwork (developer groupware or SCM).

The "Options" tab that is used to configure the options for updating, saving and synchronizing the templates. This tab is also used to enable the strict mode and to define the code style.

The "Advanced" tab that is used to manage the use of "Reports & Queries", the AAFs and the application lock.

The "Compilation" tab that is used to configure the compilation options.

Versions 22 and laterThe "Telemetry" tab that is used to configure the telemetry options for the project. This option is not available.

New in version 22The "Telemetry" tab that is used to configure the telemetry options for the project. This option is not available.

The "Telemetry" tab that is used to configure the telemetry options for the project. This option is not available.

Compilation tab

General options

The general options are as follows:

Compilation directory: The directory of compiled code is created in a "<Project_Name>.cpl" subdirectory of compilation directory. This directory of compiled codes contains:

The files of compiled codes for each project element: windows, reports, queries, etc.

A subdirectory for each developer taking part in the project. This directory corresponds to the developer name. See Sharing the development of a project for more details.By default, the compilation directory corresponds to the project directory. All your projects can be compiled in the same directory: to do so, specify the same compilation directory for all your projects.

Recompile the project before generating the applications, the libraries, the components, ...: This option is used to force the project recompilation before each major operation on the project. This option is recommended during the multiple generation from a project.This option is also proposed in all the wizards used to perform a deployment operation (executable creation, library creation, multiple generation, ...).

Display the compilation errors specific to Linux system: Used to specify that the project will be deployed in Linux. The compilation errors specific to a use in Linux are displayed.

Versions 20 and laterDisplay compilation errors specific to pre-launched sessions: If your project uses pre-launched sessions, some functions can no longer be used when initializing the project. This option is used to identify the possible problems when using cached sessions. See Pre-launched sessions for more details.

New in version 20Display compilation errors specific to pre-launched sessions: If your project uses pre-launched sessions, some functions can no longer be used when initializing the project. This option is used to identify the possible problems when using cached sessions. See Pre-launched sessions for more details.

Display compilation errors specific to pre-launched sessions: If your project uses pre-launched sessions, some functions can no longer be used when initializing the project. This option is used to identify the possible problems when using cached sessions. See Pre-launched sessions for more details.

Recompiling the project in order to synchronize the GUI and the code: A recompilation is often required in order for the interface to be consistent with the code, for example when the name of an element was modified, the code of an element was modified, ... You can:

always propose to recompilation: a message is displayed, asking the developer whether the compilation must be performed. The compilation can be delayed in order to be performed later.

always perform the compilation without asking. If this option is checked, the recompilation may provoke slowdowns.

Versions 22 and laterWLanguage browser: Allows you to choose the browser framework used for the project. From version 22, WEBDEV proposes a new WLanguage framework for the browser code. This new version proposes a behavior close to server code and it completes the features of browser code. Important: to use the new WLanguage framework, the generation standard of pages must be defined in "HTML 5".

New in version 22WLanguage browser: Allows you to choose the browser framework used for the project. From version 22, WEBDEV proposes a new WLanguage framework for the browser code. This new version proposes a behavior close to server code and it completes the features of browser code. Important: to use the new WLanguage framework, the generation standard of pages must be defined in "HTML 5".

WLanguage browser: Allows you to choose the browser framework used for the project. From version 22, WEBDEV proposes a new WLanguage framework for the browser code. This new version proposes a behavior close to server code and it completes the features of browser code. Important: to use the new WLanguage framework, the generation standard of pages must be defined in "HTML 5".

UI errors

UI compilation errors indicate the possible problems detected in your interfaces whenever a window, a page or a report is saved or whenever the project is recompiled.

By default, UI compilation errors are enabled for each new project created ("Enable UI compilation" checked).

Versions 22 and laterThe "Edit the languages" button is used to choose the project languages that will be taken into account by the UI compilation.

New in version 22The "Edit the languages" button is used to choose the project languages that will be taken into account by the UI compilation.

The "Edit the languages" button is used to choose the project languages that will be taken into account by the UI compilation.

If "Enable multi-configuration compilation" is checked, all project configurations will be systematically compiled.

Therefore, the possible compilation errors in a given configuration appear immediately.

This option is very useful for a WINDEV Mobile project available in Android and iPhone/iPad for example.

Reminder: the project is compiled at each line break in the code editor, at each backup (Ctrl + S), ...

New in version 22

Multi-configuration compilation

If "Enable multi-configuration compilation" is checked, all project configurations will be systematically compiled.

Therefore, the possible compilation errors in a given configuration appear immediately.

This option is very useful for a WINDEV Mobile project available in Android and iPhone/iPad for example.

Reminder: the project is compiled at each line break in the code editor, at each backup (Ctrl + S), ...

Multi-configuration compilation

If "Enable multi-configuration compilation" is checked, all project configurations will be systematically compiled.

Therefore, the possible compilation errors in a given configuration appear immediately.

This option is very useful for a WINDEV Mobile project available in Android and iPhone/iPad for example.

Reminder: the project is compiled at each line break in the code editor, at each backup (Ctrl + S), ...

Versions 23 and later

Programming standard

These options are used to define a programming standard. The programming standard "errors" signal the code lines that do not respect this standard. These errors are displayed in the "Compilation errors" pane.

The available options are:

Versions 24 and later Indicate when the Business logic and UI code are mixed: If this option is checked, business code and UI code mixing errors will be enabled on all project elements. Remark: It is recommended to use this option on individual elements before using it on the entire project. See Splitting Business logic / UI code for more details.

New in version 24 Indicate when the Business logic and UI code are mixed: If this option is checked, business code and UI code mixing errors will be enabled on all project elements. Remark: It is recommended to use this option on individual elements before using it on the entire project. See Splitting Business logic / UI code for more details.

Indicate when the Business logic and UI code are mixed: If this option is checked, business code and UI code mixing errors will be enabled on all project elements. Remark: It is recommended to use this option on individual elements before using it on the entire project. See Splitting Business logic / UI code for more details.

Signal the WLanguage functions kept for compatibility: If this option is checked, the WLanguage functions kept for backward compatibility are indicated in the programming standard errors (TreeSort_55 for example). Reminder: The functions kept for backward compatibility may not be supported anymore in a forthcoming version. We recommend that you use the corresponding new function.

Indicate the accesses to HFSQL from windows, pages and reports: If this option is checked, all accesses to HFSQL data files are signaled in the programming standard errors. This option is used to quickly isolate the accesses to the database. Indeed, in some programming architectures, the accesses to the database must not be performed from the interface. These accesses must be performed in the business code from procedures or classes.

Signal the uses of object syntax ("ListControl.Add" for example): If this option is checked, all uses of WLanguage prefixed syntax, available from version 23, will be signaled in the programming standard errors. This allows you to easily find the uses of this syntax if it is not allowed in the project.

These options can be overloaded for the internal components, windows and reports. See "Programming standard errors" for more details.

New in version 23

Programming standard

These options are used to define a programming standard. The programming standard "errors" signal the code lines that do not respect this standard. These errors are displayed in the "Compilation errors" pane.

The available options are:

Versions 24 and later Indicate when the Business logic and UI code are mixed: If this option is checked, business code and UI code mixing errors will be enabled on all project elements. Remark: It is recommended to use this option on individual elements before using it on the entire project. See Splitting Business logic / UI code for more details.

New in version 24 Indicate when the Business logic and UI code are mixed: If this option is checked, business code and UI code mixing errors will be enabled on all project elements. Remark: It is recommended to use this option on individual elements before using it on the entire project. See Splitting Business logic / UI code for more details.

Indicate when the Business logic and UI code are mixed: If this option is checked, business code and UI code mixing errors will be enabled on all project elements. Remark: It is recommended to use this option on individual elements before using it on the entire project. See Splitting Business logic / UI code for more details.

Signal the WLanguage functions kept for compatibility: If this option is checked, the WLanguage functions kept for backward compatibility are indicated in the programming standard errors (TreeSort_55 for example). Reminder: The functions kept for backward compatibility may not be supported anymore in a forthcoming version. We recommend that you use the corresponding new function.

Indicate the accesses to HFSQL from windows, pages and reports: If this option is checked, all accesses to HFSQL data files are signaled in the programming standard errors. This option is used to quickly isolate the accesses to the database. Indeed, in some programming architectures, the accesses to the database must not be performed from the interface. These accesses must be performed in the business code from procedures or classes.

Signal the uses of object syntax ("ListControl.Add" for example): If this option is checked, all uses of WLanguage prefixed syntax, available from version 23, will be signaled in the programming standard errors. This allows you to easily find the uses of this syntax if it is not allowed in the project.

These options can be overloaded for the internal components, windows and reports. See "Programming standard errors" for more details.

Programming standard

These options are used to define a programming standard. The programming standard "errors" signal the code lines that do not respect this standard. These errors are displayed in the "Compilation errors" pane.

The available options are:

Versions 24 and later Indicate when the Business logic and UI code are mixed: If this option is checked, business code and UI code mixing errors will be enabled on all project elements. Remark: It is recommended to use this option on individual elements before using it on the entire project. See Splitting Business logic / UI code for more details.

New in version 24 Indicate when the Business logic and UI code are mixed: If this option is checked, business code and UI code mixing errors will be enabled on all project elements. Remark: It is recommended to use this option on individual elements before using it on the entire project. See Splitting Business logic / UI code for more details.

Indicate when the Business logic and UI code are mixed: If this option is checked, business code and UI code mixing errors will be enabled on all project elements. Remark: It is recommended to use this option on individual elements before using it on the entire project. See Splitting Business logic / UI code for more details.

Signal the WLanguage functions kept for compatibility: If this option is checked, the WLanguage functions kept for backward compatibility are indicated in the programming standard errors (TreeSort_55 for example). Reminder: The functions kept for backward compatibility may not be supported anymore in a forthcoming version. We recommend that you use the corresponding new function.

Indicate the accesses to HFSQL from windows, pages and reports: If this option is checked, all accesses to HFSQL data files are signaled in the programming standard errors. This option is used to quickly isolate the accesses to the database. Indeed, in some programming architectures, the accesses to the database must not be performed from the interface. These accesses must be performed in the business code from procedures or classes.

Signal the uses of object syntax ("ListControl.Add" for example): If this option is checked, all uses of WLanguage prefixed syntax, available from version 23, will be signaled in the programming standard errors. This allows you to easily find the uses of this syntax if it is not allowed in the project.

These options can be overloaded for the internal components, windows and reports. See "Programming standard errors" for more details.

Compilation options

The available compilation options are as follows:

Compilation errors on unknown identifiers: Used to define whether a compilation derror is displayed when the compiler encounters an unknown identifier (window name, control name, ...).

Versions 21 and laterCompilation error on the off-configuration elementsWhen this option is enabled, a compilation error occurs when it is used in the code linked to a configuration of elements outside configuration. The <COMPILE IF> statement is used to manage the code compilation according to the platforms and to the configuration types.

New in version 21Compilation error on the off-configuration elementsWhen this option is enabled, a compilation error occurs when it is used in the code linked to a configuration of elements outside configuration. The <COMPILE IF> statement is used to manage the code compilation according to the platforms and to the configuration types.

Compilation error on the off-configuration elementsWhen this option is enabled, a compilation error occurs when it is used in the code linked to a configuration of elements outside configuration. The <COMPILE IF> statement is used to manage the code compilation according to the platforms and to the configuration types.

Versions 18 and laterScope of local variables limited to the current blockIf this option is selected, the local variables will be specific to the block.You cannot use a local variable outside the block in which it is declared.The ending of the variable is run at the end of block (destructors and freeing memory).You have the ability to redeclare a variable with the same name in two distinct sub-blocks but you cannot redeclare a variable with the same name in a child sub-block.

New in version 18Scope of local variables limited to the current blockIf this option is selected, the local variables will be specific to the block.You cannot use a local variable outside the block in which it is declared.The ending of the variable is run at the end of block (destructors and freeing memory).You have the ability to redeclare a variable with the same name in two distinct sub-blocks but you cannot redeclare a variable with the same name in a child sub-block.

Scope of local variables limited to the current blockIf this option is selected, the local variables will be specific to the block.You cannot use a local variable outside the block in which it is declared.The ending of the variable is run at the end of block (destructors and freeing memory).You have the ability to redeclare a variable with the same name in two distinct sub-blocks but you cannot redeclare a variable with the same name in a child sub-block.

Versions 22 and laterAllow "[% %]" in strings: This option allows the direct input of a variable name in a character string (also called "dynamic string construction"). To do so, use the following syntax:

[%VariableName%]

For example:

// Ask for customer confirmationIF YesNo(Yes, "Do you confirm the creation of customer [%sCustomerName%]") = No THEN RETURNEND

Caution: if this option is used, the code may have to be modified for some WLanguage functions that already use the "[% %]" characters in their parameters. In this case, to avoid interpreting the "[% %]" characters, they must be preceded by "-%". Example:

New in version 22Allow "[% %]" in strings: This option allows the direct input of a variable name in a character string (also called "dynamic string construction"). To do so, use the following syntax:

[%VariableName%]

For example:

// Ask for customer confirmationIF YesNo(Yes, "Do you confirm the creation of customer [%sCustomerName%]") = No THEN RETURNEND

Caution: if this option is used, the code may have to be modified for some WLanguage functions that already use the "[% %]" characters in their parameters. In this case, to avoid interpreting the "[% %]" characters, they must be preceded by "-%". Example:

Allow "[% %]" in strings: This option allows the direct input of a variable name in a character string (also called "dynamic string construction"). To do so, use the following syntax:

[%VariableName%]

For example:

// Ask for customer confirmationIF YesNo(Yes, "Do you confirm the creation of customer [%sCustomerName%]") = No THEN RETURNEND

Caution: if this option is used, the code may have to be modified for some WLanguage functions that already use the "[% %]" characters in their parameters. In this case, to avoid interpreting the "[% %]" characters, they must be preceded by "-%". Example:

"Variable name": "Data source" variables create a data source that use the name of the variable. This may cause a problem in the following cases:

using arrays of data sources

using data sources as class members.

when two windows use the same "data source" variable.

"Automatic name" : "Data source" variables use a unique name for the data source. Caution: the quotes must be deleted to handle the data source. You must not write:

M1 is Data SourceHReadFirst("M1")

but

M1 is Data SourceHReadFirst(M1)

Versions 24 and later"Automatic name with references": "Data source" variables use a unique name for the data source. It is now possible to reference an existing data source, for example using the following syntax:

x is Data Sourcex = FileNamex = QueryName

The NULL value is supported.

New in version 24"Automatic name with references": "Data source" variables use a unique name for the data source. It is now possible to reference an existing data source, for example using the following syntax:

x is Data Sourcex = FileNamex = QueryName

The NULL value is supported.

"Automatic name with references": "Data source" variables use a unique name for the data source. It is now possible to reference an existing data source, for example using the following syntax:

x is Data Sourcex = FileNamex = QueryName

The NULL value is supported.

Classes: optional ":" and "::" prefixes for accessing the members and the methodsUntil version 14, the accesses to the members had to be performed by using the ":" and "::" prefixes. If this option is checked, these prefixes will not be required anymore.

Versions 18 and laterClasses: the methods with the same name are automatically virtual.The methods with the same name in derived classes are automatically virtual.The "semi-virtual" mode kept for backward compatibility with WINDEV 4 and 5 is no longer available.The "virtual" keyword has no effect. No warning occurs on the virtual methods if the "virtual" keyword is missing.

New in version 18Classes: the methods with the same name are automatically virtual.The methods with the same name in derived classes are automatically virtual.The "semi-virtual" mode kept for backward compatibility with WINDEV 4 and 5 is no longer available.The "virtual" keyword has no effect. No warning occurs on the virtual methods if the "virtual" keyword is missing.

Classes: the methods with the same name are automatically virtual.The methods with the same name in derived classes are automatically virtual.The "semi-virtual" mode kept for backward compatibility with WINDEV 4 and 5 is no longer available.The "virtual" keyword has no effect. No warning occurs on the virtual methods if the "virtual" keyword is missing.

Versions 18 and laterArrays: The assignment copies the contentWhen this option is enabled, the arrays are local by default, which means that the '=' operator performs a copy of the array.The "dynamic" keyword is used to keep the taking of reference to the assignment.

New in version 18Arrays: The assignment copies the contentWhen this option is enabled, the arrays are local by default, which means that the '=' operator performs a copy of the array.The "dynamic" keyword is used to keep the taking of reference to the assignment.

Arrays: The assignment copies the contentWhen this option is enabled, the arrays are local by default, which means that the '=' operator performs a copy of the array.The "dynamic" keyword is used to keep the taking of reference to the assignment.

Versions 21 and laterArrays: protected access to the elements passed in parameter to a procedureThis option is used to protect an array element passed in parameter to a procedure. This allows you to modify, delete or add elements into the array from this procedure. Remark: If this option is selected, the accesses to the array may be slowed down.

New in version 21Arrays: protected access to the elements passed in parameter to a procedureThis option is used to protect an array element passed in parameter to a procedure. This allows you to modify, delete or add elements into the array from this procedure. Remark: If this option is selected, the accesses to the array may be slowed down.

Arrays: protected access to the elements passed in parameter to a procedureThis option is used to protect an array element passed in parameter to a procedure. This allows you to modify, delete or add elements into the array from this procedure. Remark: If this option is selected, the accesses to the array may be slowed down.