- Compilation tab
- General options
- UI errors
- Multi-configuration compilation
- Programming standard
- Compilation options
Project description: Compilation tab
The project description window allows you to configure various elements of your project. This window includes the following tabs:
- The "Project" tab, which allows you to enter general information about the project
- The "Analysis" tab, which is used to associate an analysis with the project and/or with a UML model
- The "Files" tab, which allows you to enter information about the data files used by the application (only if the project is bound to an analysis).
- The "Live data" tab, which allows you to configure how the data from the data files is displayed in the different editors.
- The "Languages" tab, which is used to configure the different languages used by the project as well as the options to be used for each language.
- The "Style" tab, which allows you to customize the print preview and to choose the skin template theme and custom style sheet. You can also configure screen sizes.
- The "Group" tab, which is used to manage teamwork (SCM or GIT).
- The "Options" tab, which allows you to configure the template update, backup and synchronization options. This tab is also used to enable the strict mode and to define the code style.
- The "Advanced" tab, which allows you to configure how to use "Reports & Queries", AAFs and how to lock the application.
- The "Compilation" tab, which allows you to configure the compilation options.
- The "Telemetry" tab, which allows you to configure the telemetry options for the project.
This option is not available.
The general options are as follows:
- Recompile project before generating applications, libraries, components, etc.:
This option is used to force the project recompilation before each major operation on the project. This option is recommended for a multiple generation from a project.
This option is also available in all the wizards used to perform a deployment operation (creation of an executable file or library, multiple generation, etc.).
Remark: The compiled code directory is created in a "<Project_Name>.cpl" subdirectory of the compilation directory. This compiled code directory contains the compiled code files of each project element: windows, reports, queries, etc.
- 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.
- 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 allows you to identify potential problems when using pre-launched sessions. For more details, see Pre-launched sessions.
- 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 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).
The "Edit the languages" button allows you to choose the project languages that will be taken into account by the UI compilation.
If the "Enable multi-configuration compilation (per user)" option is checked, all the project configurations will be 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), ...
These options are used to define a programming standard. The programming standard "errors" signal the lines of code that do not respect this standard. These errors are displayed in the "Compilation errors" pane.
The available options are:
- Standard or prefix syntax: You can:
- Allow both: in this case, no programming standard error will be displayed.
- Indicate use of prefix syntax: A programming standard error will appear if prefix syntax is used (e.g., "ListControl.Add").
- Indicate use of standard syntax: A programming standard error will appear if standard syntax is used instead of an available prefix syntax.
- Indicate when the Business logic and UI code are mixed: If this option is checked, code mixing errors will be enabled on all project elements. For more details, see Splitting Business logic / UI code.
- Indicate use of insecure threads: If this option is checked, there will be error messages for unsafe threads. For more details, see Thread (Type of variable).
- Indicate 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. It is recommended to use the corresponding new function.
- Indicate shared multilingual messages: If checked, this option allows you to quickly identify shared multilingual messages via a compilation error. This option should be used when converting multilingual messages to format 27 and higher. For more details, see Translating programming messages.
These options can be overridden for internal components, windows, pages and reports. For more details, see Programming standard errors
The available compilation options are as follows:
- Compilation error on unknown identifiers: Used to define whether a compilation derror is displayed when the compiler encounters an unknown identifier (window name, control name, ...).
- Compilation error on the off-configuration elements
When 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.
- Scope of local variables limited to the current block
If 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 the 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.
- 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:
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:
// Ask for customer confirmation
IF YesNo(Yes, "Do you confirm the creation of customer [%sCustomerName%]") = No THEN
grTooltip(GR_Deadline, grTooltipFormat, "[%CATEGORY%]" + CR + CR+ "[%VALUE%]" + " H")
. For more details, see String interpolation.
grTooltip(GR_Deadline, grTooltipFormat, -%"[%CATEGORY%]" + CR + CR + -%"[%VALUE%]" + " H")
- Classes: optional ":" and "::" prefixes for accessing the members and the methods
Until 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.
- 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.
- Arrays: The assignment copies the content
When 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: protected access to the elements passed to a procedure as parameter
This option is used to protect an array element passed to a procedure as parameter. 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.
- Optimization: Enable inline expansion: this option speeds up the execution of the application code. Whenever possible, the compiler automatically replaces the procedure call with its code. This may result in an overall increase in code size, but faster procedure calls.
- "Naming of data sources":
- "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 Source
M1 is Data Source
- "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:
The NULL value is supported.
x is Data Source
x = FileName
x = QueryName
The "Automatic name with references" option is not available.
These compilation options are taken into account in Java and Android.
This page is also available for…