DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Editeurs / Editeur de code
  • Présentation
  • Un code simple mais puissant
  • Variables et types
  • Programmation puissante
  • Programmation structurée puissante
  • POUR CHAQUE
  • Programmation procédurale
  • Procédures
  • Programmation Orientée Objet
  • Accès intégré aux bases de données
  • Manipulation des UI par programmation
  • Et toujours plus de fonctionnalités ...
  • Compilation dynamique
  • Programmation défensive
  • Multithread et tâches parallèles
  • Multiplateforme
  • Sécurité de l'exécution
  • Zone mémoire sécurisée
  • Langages tiers
  • Ouverture
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Le langage intégré de WINDEV, le WLangage est un modèle de puissance, de facilité et d'intuitivité.
C'est un langage de 5ème génération (L5G), c'est-à-dire que les ordres sont évolués.
Un ordre WLangage remplace des dizaines ou des centaines d'ordres de L4G, simplifiant et fiabilisant ainsi la programmation.
Finie la complexité inutile, finies les API incompréhensibles, finie la programmation improductive !
Un code simple mais puissant
Le WLangage est un langage de programmation facile, proche du langage naturel, il est rapide à apprendre. Le code est rapide à écrire et très facile à relire. Le codage et la maintenance s'en trouvent considérablement améliorés.
POUR CHAQUE Client
Message est un Email
Message.Destinataire = Client.AdresseMail
EmailEnvoieMessage(Message)
FIN
Comprenez-vous ce code ? Oui, grâce à la facilité du WLangage. Le code WLangage est disponible en Français et en Anglais.

Variables et types

La déclaration des variables est simple et naturelle.
Message est un Email
TableauDeClient est un tableau de Clients
Les déclarations de variables sont simples, à l'endroit. Le WLangage propose les types simples classiques parmi lesquels les entiers, les booléens, les monétaires, les numériques jusqu'à 38 chiffres significatifs, les réels ou les chaînes de caractères.
Plus de 20 types simples sont ainsi disponibles.
Pour plus de détails, consultez Les différents types de variables.
Le WLangage propose en standard de nombreux types avancés qui permettent de gérer très facilement des notions complexes : emails, flux RSS, certificats et signatures, documents XML, ressources pour les plannings et les agendas, etc.
Programmation puissante

Programmation structurée puissante

Les structures itératives et conditionnelles classiques de la programmation impératives sont disponibles (POUR i, BOUCLE, TANTQUE, SI, SELON ...) mais chacune d'elles a été simplifiée au maximum pour une écriture du code efficace et rapide.
Par exemple les déclarations des variables des boucles "POUR i" sont implicites, les SELON peuvent utiliser toute la palette des comparaisons du WLangage, etc.
SELON RéférenceLivre
CAS "A" <= * < "H" : Etage = 1
CAS "H" <= * < "P" : Etage = 2
CAS >= "P" : Etage = 3
FIN
On peut utiliser des intervalles complexes pour définir les CAS.

POUR CHAQUE

Les boucles "POUR CHAQUE" parcourent tous les éléments d'un ensemble, par exemple tous les enregistrements d'un fichier de données, tous les éléments d'un tableau, tous les champs sélectionnés d'une liste, toutes les sous-chaînes d'une chaîne, etc.
POUR CHAQUE email NON LU DE ConnexionServeurMail
FIN
POUR CHAQUE LIGNE SÉLECTIONNÉE DE ListeOption
FIN
POUR CHAQUE Client AVEC Pays = "France"
FIN
Programmation procédurale

Procédures

La programmation procédurale en WLangage est très puissante. Les procédures permettent une organisation logique du code.
Une procédure du WLangage peut avoir plusieurs paramètres et plusieurs valeurs de retour.
Les paramètres peuvent être optionnels et leur nombre peut être variable.
Les procédures sont récursives.
Le typage est au choix souple ou strict.
Les principales fonctionnalités gérées :
  • Automatismes (répétition, timer, thread),
  • Syntaxes multiples (dynamic dispatch),
  • Procédures internes (closures),
  • Paramètres nommés,
  • Typage souple ou strict,
  • etc.
Les procédures disposent de fonctionnalités intégrées. Les automatismes d'exécution permettent une exécution différée: dans 1 minute, dans 1 heure, après les initialisations, etc.
L'exécution d'une procédure peut également être répétée. Une procédure peut se trouver dans un Timer ou dans un Thread.
Les "procédures internes" et les lambdas permettent d'écrire une sous-procédure à l'intérieur d'une procédure, ce qui permet de voir le code d'un seul coup d'oeil, sans jongler entre plusieurs procédures.
Les variables locales de la procédure peuvent être utilisées directement dans la sous-procédure ("closure").
Les procédures internes peuvent être utilisées dans toutes les fonctions qui nécessitent une "callback", y compris les fonctionnalités asynchrones.
Programmation Orientée Objet
La programmation orientée objet peut être utilisée avec WINDEV. Les méthodes des classes de base peuvent être redéfinies visuellement depuis l'explorateur de projet; les méthodes virtuelles sont gérées automatiquement.
La gestion de la mémoire des instances est totalement automatique dans la très grande majorité des cas, pour les allocations comme pour les libérations.
Principales fonctionnalités :
  • Classes,
  • Classes abstraites,
  • Interfaces (duck typing),
  • Héritage, héritage multiple,
  • Réflexion,
  • Surcharge (dynamic dispatch),
  • Méthodes abstraites et virtuelles (polymorphisme),
  • Propriétés (get et set),
  • Constructeur,
  • Destructeur,
  • Encapsulation des données: public, privée, protégée,
  • Programmation facile en L5G,
  • Libération automatique,
  • Opérateur "est un" et downcast,
  • Référence faible,
  • Copie profonde,
  • etc.
Accès intégré aux bases de données
Le WLangage intègre tous les aspects de la gestion des bases de données. La structure de la base de données est automatiquement reconnue par le compilateur, ce qui permet une manipulation très simple des différentes rubriques de l'enregistrement courant d'un fichier (ligne de table).
La programmation s'effectue en SQL ou en WLangage.
La programmation des curseurs est très puissante.
HLitRecherche(Client, Nom, NomClient)
telCompose(Client.NuméroTéléphone)

Les opérations sur les données nécessitent que ces dernières soient copiées depuis la base de données vers des variables, modifiées, sauvées ou rechargées vers d'autres formats. Toutes ces manipulations courantes sont très simples grâce aux syntaxes du WLangage.
La syntaxe AVEC permet par exemple d'accéder rapidement aux sous-éléments d'un élément de base.
La copie homonymique permet de copier en une seule opération les sous-éléments de même nom entre deux éléments hétérogènes.
Les fonctions de sérialisation et de dé-sérialisation permettent de sauvegarder et de recharger le contenu d'éléments complexes.
Manipulation des UI par programmation
Les champs des UI sont nativement très puissants dès leur définition sous l'éditeur de fenêtres. Il est possible de modifier leur état et leurs comportements par programmation grâce au type Champ : les 270 propriétés d'affichage (position, largeur, ...) tout comme le code à exécuter en fonction des actions de l'utilisateur peuvent ainsi être modifiés selon vos besoins.
Les fonctions ChampCrée et ChampClone permettent respectivement de créer un nouveau champ ou de dupliquer un champ existant.
Et toujours plus de fonctionnalités ...

Compilation dynamique

Le WLangage n'est pas un langage statique, c'est un langage dynamique. La compilation dynamique permet d'exécuter du code construit à la volée.

Programmation défensive

La programmation défensive consiste à tester dans le code même les entrées et les sorties de chaque procédure; les erreurs éventuelles décelées seront affichées uniquement en mode "débogage".
Le WLangage propose de puissantes fonctions de débogage dbgAssertion, dbgVérifieEgalité, dbgVérifieDifférence, dbgVérifieVrai, dbgVérifieFaux, etc. La création de tests unitaires permet de tester une application à tout moment.

Multithread et tâches parallèles

Pour profiter de la puissance des machines modernes multicoeurs et améliorer la vitesse de vos applications, le WLangage dispose d'une gestion des threads évoluée.
Les tâches parallèles permettent de découper un traitement long en une multitude de traitements courts qui vont être exécutés en parallèle pour tirer parti des processeurs modernes. Les variables sont automatiquement protégées. Les techniques de synchronisation sont disponibles:
  • sections critiques,
  • mutex,
  • sémaphores,
  • signaux,
  • etc.

Multiplateforme

Le code écrit en WLangage est multiplateforme :
  • 32 ou 64 bits,
  • Windows,
  • Linux,
  • Android,
  • iOS,
  • Java,
  • Javascript,
  • PHP,
  • etc.
Les composants peuvent être partagés entre plusieurs plateformes.

Sécurité de l'exécution

Le mécanisme de sécurité du WLangage empêche toute corruption des données. Le WLangage gère donc les erreurs (non fatales) et des exceptions (fatales). La gestion des erreurs et des exceptions peut être faite automatiquement ou par programmation.

Zone mémoire sécurisée

L'accès aux zones mémoire est contrôlé, ce qui élimine les risques de "buffer overflow".

Langages tiers

Il est possible d'appeler du code écrit en langage tiers depuis WINDEV, ou d'appeler WINDEV depuis un langage tiers: Java, C++, C#, Fortran, VB, etc.

Ouverture

Vous avez accès à toutes les fonctionnalités et tous les standards: API, appels de DLL, COM, ActiveX, .NET, J2EE, événements, etc.
Il est par exemple facile d'appeler une DLL C ou C++ depuis une application WINDEV.
Version minimum requise
  • Version 7
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 06/03/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale