DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV et WINDEV Mobile 2025 !
Aide / Nouveautés / Nouveautés de la version 2025
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Profitez des 208 nouveautés communes de la version 2025 dans WINDEV
WINDEV 2025 bénéficie bien entendu des 208 nouveautés communes de la version 2025, et en particulier des évolutions des éditeurs, de l'IA générative de code, des palettes, du nouveau bouton segmenté, des Webservices plus rapides, des évolutions de l'éditeur de code dont le coffre-fort de mots de passe, du nouveau type de graphe Pourcentage Imagé, des nouveautés du GDS, des nouveautés du WLangage et de la POO, etc.
Utilisation du processeur de la carte graphique à la place du processeur du PC
En version 2025, le moteur graphique du framework adopte de nouvelles technologies.
Rappel: le moteur graphique du framework prend en charge tous les aspects de l'affichage des applications ainsi que des interactions avec l'utilisateur final.
C'est un élément important du framework, qui conditionne à la fois les performances et la qualité d'affichage.
La version 2025 s'appuie maintenant sur les processeurs présents dans la carte graphique du PC.
Ce type de processeur est aujourd'hui bien plus performant que celui de la carte mère du PC. Son utilisation libère par ailleurs des ressources de la carte mère.
Cette technologie s'appuie sur Direct2D.
L'affichage des fenêtres de vos applications devient bien plus rapide.
La fin des créations de handle GDI: ressources Windows économisées
Une autre nouveauté majeure de la version 2025 dans le domaine du moteur graphique est la possibilité de ne plus utiliser de handles pour la gestion des champs.
Plus le nombre de champs est élevé et plus le gain lors de l'ouverture de la fenêtre est important.
Autre avantage de cette nouveauté, l'absence de handle libère des ressources Windows.
L'utilisation de cette technologie est optionnelle: l'appel de la fonction WLangage Handle est toujours possible, bien évidemment.
Moteur graphique interne: utilisez le moteur historique ou le nouveau moteur
Pour vos applications, vous avez le choix, soit au niveau du projet, soit fenêtre par fenêtre.
3 modes du moteur graphique sont maintenant disponibles:
  • le mode historique,
  • le mode historique sans handle,
  • le mode Direct2D sans handle.
Notez que par défaut, le mode historique est sélectionné.
Le changement de mode s'effectue soit pour le projet entier, lors de la description du projet, soit par fenêtre à l'aide de la nouvelle fonction WLangage FenOptimise.
Les palettes: vraiment très utile
Le concept de palettes pour vos applications permet à l'utilisateur final de passer du mode clair au monde sombre, à la couleur dominante de Windows ou à toute autre couleur que vous autorisez.
C'est une fonctionnalité très appréciée des utilisateurs finaux.
Vous pouvez également changer par programmation un fond de fenêtre d'administration en rouge (clair) pour la distinguer.
Voir nouveautés 007 à 023.
Exemple de fenêtre de choix de palette en temps réel
Exemple de fenêtre de choix de palette en temps réel
Nouveau champ Bouton segmenté
Le nouveau champ Bouton segmenté permet de présenter des choix, uniques ou multiples, de manière actuelle, et de traiter les choix facilement.
Pour plus de détails, consultez Le champ Bouton segmenté.
Présentation
Les Champs Métier font gagner beaucoup de temps lors de la création d’UI, et apportent une sophistication immédiate à vos applications.
Deux nouveaux Champs Métier font leur apparition en version 2025 de WINDEV:
  • Création d’un QR code intégrant une image.
  • Saisie de numéros de page.
Générer un QR code intégrant un logo central
Pour générer un QR Code incluant une image, il suffit d'indiquer le contenu du QR code, l'image à intégrer et sa taille dans le QR Code.
Rappel: les Champs Métier sont livrés avec leur code source, et sont donc totalement modifiables et personnalisables.
Saisie de numéros de page à imprimer
Le nouveau Champ Métier "Saisie de séquence de pages" permet la saisie d'une suite de nombres et d'intervalles.
L'usage le plus courant est la saisie de pages à imprimer.
Table liée aux données triable sur toutes les colonnes
Le champ Table permet en version 2025 de proposer le tri et le filtrage à l'utilisateur sur toutes les colonnes, incluant les colonnes non indexées.
Divers
  • La fonction WLangage ConstruitTableFichier offre une nouvelle fonctionnalité qui permet d'indiquer si les mémos texte seront affichés en monoligne ou multiligne.
Nouveau thème pour WINDEV
Le thème "Apollon" fait son apparition en version 2025.
Cela vous offre de nouvelles possibilités de personnalisation.
Gain apporté par la nouveauté 2025:
Relooking express!
Utilisez librement ces thèmes pour vos applications et vos progiciels, ainsi que tous les thèmes livrés avec WINDEV.
Et n’oubliez pas: vous pouvez appliquer une palette pour changer les couleurs, et également créer vos propres thèmes.
WINDEV vous apporte les aides nécessaires à la création de superbes UI.
Notes repositionnables relookées
En version 2025, les notes repositionnables passent par la case "fontaine de Jouvence".
Leur look est adapté aux tendances actuelles.
Note repositionnable new look
Note repositionnable new look
Dans les volets d'onglet ajoutés par programmation, un même groupe de champs peut être différencié
Vous le savez, il est possible d'ajouter par programmation des volets dans des onglets.
Le contenu du volet est une Fenêtre Interne.
Cette Fenêtre Interne peut contenir des groupes de champs.
Et souvent, une même Fenêtre Interne est utilisée dans plusieurs volets différents.
Une action par programmation sur un groupe de champs, comme par exemple le rendre invisible, permet maintenant de spécifier le volet pour ne pas impacter les autres volets.
Chaque bloc est différencié
Chaque bloc est différencié
Volet d'onglets: image vectorielle + marge
L'aspect de l'onglet pouvait déjà être modifié en utilisant une image.
En version 2025 il devient possible de modifier l'aspect de l'onglet en le paramétrant via les "7 onglets". La visualisation reste ainsi vectorielle.
Exemple d’images de volet (image agrandie)
Exemple d’images de volet (image agrandie)
Il est également possible de définir les marges entre les différents éléments grâce aux "7 onglets".
Edition des marges du contenu de l’onglet du volet
Edition des marges du contenu de l’onglet du volet
Zone répétée infinie par le haut
Une Zone Répétée "par le haut" se remplit comme son nom l'indique par le haut.
Pour de meilleures performances, le remplissage s'effectue au fur et à mesure du parcours de l'utilisateur final.
Voir nouveauté 432.
Couleur avec opacité: couche alpha
Un effet de transparence
Un effet de transparence
Il devient possible d'appliquer une opacité sur les fenêtres et les champs des fenêtres.
Cela peut être utile pour appliquer certaines chartes graphiques.
Combo: valeur affichée différente selon que la combo soit repliée ou dépliée
Dans certains cas, il peut être intéressant de proposer un contenu replié différent du contenu de la liste déroulée.
La nouvelle propriété..ValeurAffichéeCombo fait son apparition dans ce but.
En version 2025, il n'est plus nécessaire de programmer pour utiliser cette fonctionnalité.
Ici la combo repliée indique l’indicatif téléphonique, et la liste indique le drapeau et le nom du pays.
Ici la combo repliée indique l’indicatif téléphonique, et la liste indique le drapeau et le nom du pays.
Table dans une zone répétée: rendre la table invisible
Dans une Zone Répétée contenant un champ Table, il devient maintenant possible de rendre invisible une table affichée sur une et une seule ligne.
Au milieu de cet écran, la liste des commandes a été rendue invisible (et un libellé a été ajouté - en rouge -)
Au milieu de cet écran, la liste des commandes a été rendue invisible (et un libellé a été ajouté - en rouge -)
Récupérer les coordonnées des éléments d'un champ
Un champ est composé de différents éléments: son libellé, la zone de saisie elle-même, le bouton éventuellement intégré, le bouton de la combo, les en-têtes de table, l'ascenseur...
Pour des traitements particuliers, comme des alignements pointus de popup par programmation, il peut être nécessaire de récupérer les coordonnées de ces différents éléments.
La fonction WLangage ChampRectangle permet de récupérer ce type de coordonnées sous forme de "rectangle": coordonnées + largeur et hauteur.
La PopUp s’affiche exactement sous l’icône
La PopUp s’affiche exactement sous l’icône
Icone noir & blanc: possibilité de lui appliquer une couleur
Il est possible de changer la couleur d'une icône noir & blanc en choisissant la nouvelle option "Forcer en monochrome" disponible dans les "7 onglets", onglet Style.
Changement de couleur d’icône
Changement de couleur d’icône
Champ: divers
  • L’affichage de texte utilisant la fonction gPoliceItalique est amélioré.
  • Nouveau traitement Erreur de Chargement pour les champs HTML.
  • Il devient possible de spécifier une callback pour le remplissage des images du champ ListeImage.
  • Nouvelle fonction HauteurAdaptée: permet de calculer la hauteur nécessaire à un champ pour qu’il affiche l’intégralité du contenu dynamique.
Changez de look grâce aux palettes
Chaque nouveau thème et la plupart des anciens thèmes utilisent maintenant une palette.
Par défaut de nombreuses palettes sont livrées, dont:
  • mode clair,
  • mode sombre.
Pour changer de palette par programmation, il suffit d'utiliser la nouvelle fonction WLangage PaletteChange.
Le changement de palette est effectué en temps réel.
Couleurs personnelles et thèmes clair/sombre
Indépendamment des couleurs disponibles dans la palette, il est quelquefois nécessaire d'utiliser des couleurs personnalisées.
En version 2025, pour chaque nouvelle couleur définie, il est possible d'indiquer une couleur à utiliser dans l'autre mode.
Par exemple lorsque l'on définit une couleur nommée "Warning"cette couleur sera "rouge" en mode clair, et "rose" en mode sombre (parce que le rouge ne se voit pas sur un fond noir).
Boutons, icônes et graphes automatiquement modifiés
Le contenu des icônes et des boutons est automatiquement modifié pour tenir compte du mode.
Les graphes sont également adaptés.
Notez qu'une option permet aux boutons et aux icones de passer en mode monochrome lors d'un changement de mode.
Exemple: conditions générales de vente au verso d'une facture
Un état imprimé peut proposer un contenu de nature différente au recto et au verso.
L'exemple typique est une facture, imprimée au recto sur une feuille, et dont des conditions générales de vente sont imprimées au verso.
En version 2025, il devient possible d'utiliser 2 états différents pour imprimer des documents.
Le fonctionnement
La nouvelle fonction WLangage iInitEtatVerso permet de spécifier le nom de l'état à imprimer au verso.
Cet état peut tenir sur une seule page, ou sur plusieurs pages.
Lorsque l'état présent au verso comporte plus de pages que l'état présent au recto, il est possible d'indiquer d'utiliser le recto des pages "blanches".
L'état imprimé au verso peut être un document PDF rappelé sur chaque page.
Exemple de code
Le code est simple:
// Imprime les CGV au dos de la facture
iInitEtatVerso(ETAT_CGV)
iImprimeEtat(ETAT_Facture, numero_facture)
Aperçu de l'impression
L'aperçu d'un état contenant un recto et un verso différent visualise les pages côte à côte.
Editeur d'aide
En version 2025, il devient possible d'insérer des diagrammes réalisés à l'aide du champ Diagramme dans les pages d'aide.
Cela facilite les représentations visuelles.
Nouveautés communes
L'environnement de WINDEV bénéficie des nouveautés communes de la version 2025 (voir nouveautés 048 à 058 ).
En particulier la vitesse boostée, le choix du vocabulaire, les nouveaux raccourcis, les nouveaux volets, l'explorateur de projet plus pratique, les évolutions de l'éditeur de code, etc.
Nouveau champ bouton segmenté: présentation
Le nouveau champ Bouton Segmenté peut se comprendre comme un ensemble de boutons ON/OFF regroupés dans un seul champ.
Le rendu visuel est automatiquement plus soigné.
Le fonctionnement est standardisé: choix exclusif ou multiple possible.
Le contenu de chaque choix peut être un texte ou une image.
La programmation est bien plus simple.
Nouveau champ bouton segmenté: création du champ
Les principaux paramètres:
  • nombre de cases,
  • contenu des cases,
  • choix exclusif ou multiple,
  • options d'ancrage et d'ajustement automatique de la largeur,
  • présence ou pas de séparateur,
  • style du séparateur,
  • choix du cadre extérieur et du cadre des boutons,
  • ...
Il est possible de transformer (refactorer) un champ Interrupteur en Bouton Segmenté multiple ou un champ Sélecteur en Bouton Segmenté exclusif.
Une programmation simple
La programmation d'un Bouton Segmenté est bien plus simple que celle d'un ensemble de Sélecteurs, Interrupteurs ou Boutons On/Off.
La programmation d'un Bouton Segmenté permet:
  • la récupération de l'état d'un des boutons,
  • la possibilité de griser ou masquer un bouton,
  • la possibilité de changer son libellé ou sa bulle,
  • d'ajouter des options dynamiquement,
  • les libellés multilingues,
  • la persistance,
  • des images, du texte markdown,
  • ...
Autre usage
Un usage auquel on ne pense pas forcément pour les Boutons Segmentés est une UI de sélection de nombreux choix divers.
Sélection possible d’un ou plusieurs choix, avec une programmation très simple
Sélection possible d’un ou plusieurs choix, avec une programmation très simple
Divers
  • Animation de Bouton Segmenté exclusif: la sélection se déplace sur le nouveau choix au changement d'état.
Un concept puissant
Les Procédures Réactives permettent de déclencher automatiquement l'exécution de traitements.
Une Procédure Réactive est exécutée lorsqu'une variable ou lorsque la valeur ou le contenu d'un champ utilisé dans la procédure est modifié soit par l'utilisateur final, soit par programmation.
La Procédure Réactive "observe" en permanence (d'où le nom anglais "Design Pattern Observer") les variables et les champs concernés pour détecter les changements de valeur, et dans ce cas s'exécuter automatiquement.
Une variable ou un champ change? La Procédure est exécutée!
A quoi ça sert? un exemple simple
Quel est l'intérêt de créer une Procédure Réactive?
Eh bien c'est vraiment très pratique.
Prenons un exemple simplissime: une saisie de montant HT ou TTC.
Le fonctionnement attendu est le suivant: lorsque l'on saisit un montant dans un champ, les autres champs se mettent à jour automatiquement.
Il est bien entendu possible de coder ce fonctionnement en WLangage, directement dans chaque champ concerné.
Dans ce cas il faut créer une procédure qui effectue le calcul, et placer l'appel de cette procédure dans le Traitement de Modification de chacun des 3 champs.
Avec une Procédure Réactive, il suffit d'écrire la formule de calcul et c'est tout.
Sur 2 ou 3 champs, c'est encore simple, mais imaginez avec 5 ou 6 champs, et les risques lors d'une modification.
Et comment traiter le changement de valeur d'un des champs de saisie par programmation?
Avec une Procédure Réactive, il n'y a rien à programmer, la procédure sera exécutée automatiquement: aucun oubli.
Avantage: le code est unique et regroupé
L'avantage principal de cette méthode est que la surveillance du changement de valeur d'un champ est déléguée au framework.
Inutile de coder à chaque endroit ou à chaque champ où la modification peut intervenir.
La consommation de ressources est nulle car c'est le framework qui se charge de tout, de manière optimisée: c'est le champ ou la variable qui signale automatiquement leur changement de valeur à la Procédure Réactive.
Le code unique et clair de la Procédure Réactive permet donc de "surveiller" et de mettre à jour plusieurs champs et variables différents.
Comment déclarer une procédure réactive
Le mot-clé Réactive permet d'indiquer que la procédure doit surveiller les variables et les champs utilisés dans son code.
Et bien sûr de s'exécuter en cas de modification.
PROCÉDURE RÉACTIVE CalculeTTC()
Une Procédure Réactive peut être une procédure globale au projet (et donc réactive en permanence) , une procédure locale de fenêtre ou une procédure locale de champ.
Les options de la procédure réactive
Les Procédures Réactives proposent 2 options:
  • Délai: s'exécuter après un délai fourni. Par exemple La procédure s'exécutera 100 millisecondes après un changement de valeur.
    PROCÉDURE RÉACTIVE CalculeTTC() <délai = 100ms>
    SAI_TTC = SAI_HT + SAI_HT * (SAI_TVA+1) /100
  • Exécution: il est possible de déclencher par programme l'exécution d'une Procédure Réactive.
Cascade
Une Procédure Réactive peut modifier une variable ou un champ, eux-mêmes utilisés par une autre Procédure Réactive.
Dans ce cas, l'autre Procédure Réactive s'exécutera.
Le framework bénéficie de mécanismes de sécurité: en cas de cycle, le framework gère!
Savoir qu'un champ est surveillé ou modifié par une procédure réactive
Pour savoir qu'un champ peut être modifié par une Procédure Réactive, il suffit de regarder en bas à gauche de la fenêtre des "7 onglets" du champ.
  • le picto "23" indique le nombre d'utilisations du champ dans le code.
  • le picto "7" indique le nombre d'utilisation des Procédures Réactives.
Un clic sur un picto ouvre la liste des utilisations (des références croisées).
Un exemple explicatif
Dans cette fenêtre, on souhaite réaliser les traitements suivants:
  • Tant que le premier interrupteur n'est pas coché, il faut griser le sélecteur de 3 choix + les 2 combos + le bouton valider.
  • Lorsque le client a coché le premier interrupteur, il faut dégriser tous les choix.
  • Lorsque l'utilisateur sélectionne la première option du sélecteur à 3 choix, il faut dégriser la première combo et griser la 2ème combo.
  • Si l'utilisateur sélectionne la 2eme option, il faut griser la première combo et dégriser la 2eme combo.
  • Si l'utilisateur sélectionne la 3eme option, etc.
Avec une Procédure Réactive: 11 lignes de code simplissimes!
Dans cet exemple, il suffit de créer une Procédure Locale dans la fenêtre, et de déclarer cette procédure comme Réactive, et c'est tout!
PROCÉDURE RÉACTIVE Gestion_Livraison()<délai=1s>
GR_LIVRAISON.Grisé = Vrai // Par défaut
	SI INT_CGV[1] = Vrai ALORS
		SEL_MODE_LIVRAISON.Grisé = Faux

		SELON SEL_MODE_LIVRAISON
			CAS 1 // Livraison à une adresse
			COMBO_ADRESSE.Grisé = Faux
			CAS 2 // Livraison à un point relais
			COMBO_POINT_RELAIS.Grisé = Faux
			CAS 3 // Retrait en magasin
		FIN
	FIN
FIN
Nouveautés communes
L'éditeur de fenêtres de WINDEV bénéficie des nouveautés communes: palettes, les nouveaux champs, le floutage de champ, vitesse de mise à jour des modèles, ...
Voir Nouveautés 007 à 042.
Vitesse des "7 onglets"
En version 2025, l'ouverture et l'utilisation des "7 onglets" sont accélérées et gagnent en fluidité.
Nouveau modifieur
Le nouveau modifieur de la version 2025 facile la modification des champs.
Voir Nouveauté 062.
Nouveau volet de création
Le volet de création des champs fait son apparition en version 2025.
Il facilite le choix d'un champ à utiliser.
Voir Nouveauté 065.
Flexbox: visualisation des imbrications
L'édition des Flexbox est facilitée en version 2025 par la possibilité de visualiser l'ensemble des imbrications entre les Flexbox.
Voir nouveauté 772.
Flexbox: vérifier le positionnement des contenus
Lors de la création ou de l'édition d'un champ Flexbox, des champs sont intégrés dans la Flexbox.
Lors du redimensionnement ou du déplacement d'un de ces champs, l'algorithme de repositionnement des champs est automatiquement désactivé pour faciliter les manipulations.
En version 2025, il est possible de lancer l'exécution de cet algorithme de positionnement depuis l'éditeur de fenêtres.
Les champs seront alors correctement positionnés. Ce positionnement sera sauvé.
Divers
  • Erreur d'Ui lorsque le contenu d'une combo est vide dans une des langues.
RAD
RAD MVP: fournir son modèle de modèle
Il devient possible de fournir une classe modèle qui sera utilisée pour générer les modèles du MVP (le "M" de MVP).
Cela permet de mettre en place automatiquement le code qui doit se trouver dans tous les modèles.
Groupware utilisateur: nouveautés communes
Le Groupware Utilisateur de WINDEV bénéficie des nouveautés communes au Groupware Utilisateur: OAuth, SSO, ...
Voir nouveautés 076 et 790.
Nouveau choix: se souvenir de moi
Pour toute application compilée avec la version 2025, l'utilisateur final dispose du nouveau choix "se souvenir de moi" lors de la saisie de son Login.
Pour des raisons de sécurité, il est possible de désactiver cette fonctionnalité.
Notification de mise à jour intégrée dans l'application elle-même
Lorsqu'une nouvelle version d'une application est disponible, l'utilisateur final peut être averti soit au lancement de son application, soit par une notification Windows.
En version 2025 il devient possible d'avertir également l'utilisateur final directement depuis l'application.
Il s'agit une nouvelle option de l'Install, qui peut être désactivée.
Une notification de Mise à Jour disponible dans l’application elle-même
Une notification de Mise à Jour disponible dans l’application elle-même
Mise en avant des applications les plus téléchargées des 7 derniers jours
Vous le savez, le Store Privé livré en standard vous permet d'héberger vos applications Windows, iOS, Android et les liens vers vos sites dans un store hébergé et géré par votre entreprise.
C'est nouveau, le Store Privé peut maintenant proposer les applications les plus téléchargées en première position.
En première ligne du Store, les applications les plus téléchargées
En première ligne du Store, les applications les plus téléchargées
Authentification d'accès au store par serveur OAuth
L'accès au Store peut être défini à partir du Serveur OAuth disponible dans le Serveur d'Application WEBDEV.
Divers
  • L’UX d’install des applications du Store a été améliorée.
  • Appli mobile iOS + Android dans le Store; il devient possible d’installer soit sous forme d’appli multiplateforme, soit sous forme de 2 applis.
Table: copier coller de ligne entière
En version 2025, une nouvelle FAA permet à l'utilisateur final de copier/coller une ligne entière dans une table de visualisation.
Un copier/coller de ligne de table par FAA
Un copier/coller de ligne de table par FAA
Le champ éditeur HTML permet la rechercher sur internet
Une colonne «numéro de ligne» rajoutée par FAA
Une colonne «numéro de ligne» rajoutée par FAA
Le champ Editeur HTML permet maintenant à l'utilisateur final de lancer directement une recherche Internet sur le ou les mots sélectionnés.
Type thread disponible sous java
En version 2025, le type Thread est disponible en Java.
Cela permet de gérer plus facilement les threads en Java.
Les threads sécurisés sont également gérés.
Divers
  • Opérateur de Cast disponible.
  • la propriété Extra est disponible sur les types avancés concernés.
  • Amélioration de la copie des propriétés des classes.
10 nouvelles fonctions Java
Le WLangage propose 10 nouvelles fonctions pour Java.
AppelAJAXEnCoursPermet de savoir si la requête en cours de traitement est une requête AJAX.
EnModePageDansFenêtreIndique si la page est affichée dans un champ Page WEBDEV d'une fenêtre.
EnModeRecyclageIndique si le mode recyclage des sessions prélancées (de webservice) est activé
HExporteCSVExporte les enregistrements d'une table (HFSQL ou OLE DB), d'une vue ou d'une requête dans un fichier CSV.
HExporteXLSExporte les enregistrements d'une table (HFSQL ou OLE DB), d'une vue ou d'une requête dans un fichier Excel (XLSX).
HImporteCSVImporte un fichier CSV dans une table au format HFSQL Classic ou Client/Serveur (table décrite sous l'éditeur de schémas des données, ou déclarée par les fonctions HDéclare, HDéclareExterne ou HDécritTable).
HImporteXLSImporte un fichier XLS dans une table au format HFSQL Classic ou Client/Serveur (table décrite sous l'éditeur de schémas des données ou déclarée par les fonctions HDéclare, HDéclareExterne ou HDécritTable).
JourDansLAnnéeVersDateRenvoie la date (au format "AAAAMMJJ") correspondant à un numéro de jour dans l'année.
TableAjouteDébutAjoute une ligne au début d'un champ Table infinie. La ligne est insérée avant la première ligne du champ Table. La position de défilement du champ Table n'est pas modifiée.
ZoneRépétéeAjouteDébutAjoute une répétition (ou ligne) au début d'un champ Zone répétée infinie. La répétition est insérée avant la première répétition du champ Zone répétée. La position de défilement du champ Zone répétée n'est pas modifiée.
LINUX: champ spin
Le champ Spin est supporté sous Linux en version 2025.
29 nouvelles fonctions 46 nouvelles constantes linux pour WINDEV
Le WLangage propose 29 nouvelles fonctions et 46 nouvelles constantes (à découvrir dans l’aide en ligne) pour Linux.
ChampRectangleRenvoie le rectangle correspondant à la zone spécifiée d'un champ.
CmdAjouteArgumentAjoute un argument à une commande à exécuter en mode console.
CmdAjouteOptionAjoute une option à la commande à exécuter en mode console.
CmdEcritEntréeStandardEcrit les données sur l'entrée standard de la commande exécutée en mode console.
CmdExécuteExécute une commande en mode console.
CmdLitSortieErreurLit les données disponibles sur la sortie d'erreur pour la commande lancée en mode console.
CmdLitSortieStandardLit les données disponibles sur la sortie standard pour la commande lancée en mode console.
CmdRécupèreCodeRetourRécupère le code de retour de la commande lancée en mode console, c'est-à-dire la valeur renvoyée à la terminaison de la commande.
DocEffaceMiseEnFormeRemplace la mise en forme actuelle de la sélection par la mise en forme par défaut.
DocVersHTMLConvertit un document de type Traitement de texte en un fichier HTML.
EnModeRecyclageIndique si le mode recyclage des sessions prélancées (de webservice) est activé
ExécuteProcédureRéactiveForce l'exécution immédiate d'une procédure réactive.
grPIImageDéfinit l'image SVG utilisée pour un graphe de type "Pourcentage imagé".
grPIValeurMaximalePermet de spécifier la valeur maximale du graphe permettant de calculer automatiquement les pourcentages (graphe de type "Pourcentage imagé").
grVignetteCatégoriePermet de spécifier la vignette à utiliser dans les graphes pour remplacer le libellé de catégorie.
HImporteCSVImporte un fichier CSV dans une table au format HFSQL Classic ou Client/Serveur (table décrite sous l'éditeur de schémas des données, ou déclarée par les fonctions HDéclare, HDéclareExterne ou HDécritTable).
HListeHistoriquePlanificationListe l'historique d'exécution d'un élément planifié sur un serveur HFSQL: tâche planifiée (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée).
HRplAjouteTableAjoute une table dans une réplication universelle.
HRSTransformeSpareEnServeurTransforme un serveur Spare en un serveur HFSQL. Il est ainsi possible de supprimer les réplications d'un serveur spare pour pouvoir l'utiliser à nouveau (cas par exemple d'un serveur maître inaccessible).
Cette fonction doit être utilisée uniquement en cas d'urgence.
Attention: Cette fonction est disponible uniquement à partir de la version 2025 Update 1.
HSupprimeHistoriquePlanificationSupprime l'historique d'exécution d'un élément planifié sur un serveur HFSQL: tâche planifiée (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée).
HSupprimeToutHistoriquePlanificationPurge la totalité de l'historique d'exécution des éléments planifiés sur un serveur HFSQL.
iAjouteSignetAjoute un signet dans le visualisateur de rapports ou lors de l'export en PDF.
iInitEtatVersoInitialise les paramètres de l'état qui sera imprimé au verso d'un autre état.
JourDansLAnnéeVersDateRenvoie la date (au format "AAAAMMJJ") correspondant à un numéro de jour dans l'année.
JSONOuvreLecteurOuvre un lecteur JSON.
PaletteChangeModifie la palette utilisée par le projet ou par une fenêtre.
PaletteChargeCharge une palette à partir d'un fichier.
PaletteRécupèreRécupère la palette courante du projet ou de la fenêtre.
PDFExtraitCrée un nouveau document PDF à partir de différentes pages extraites d'un fichier PDF existant.
RécupèreDéfinitionVariableRécupère la description d'une variable.
Tableau: paramètre iénumérable
Les tableaux peuvent maintenant être passés en paramètre aux fonctions DotNet qui attendent un paramètre de type iEnumerable.
Nouveautés communes
Le langage reste la pierre a ngulaire du développement.
En version 2025, le WLangage sous WINDEV s'enrichit encore.
Il profite des nouveautés communes et de nombreuses évolutions utiles: Procédure Réactive, OAuth, vitesse des webservices, chiffrement, conversion explicite de type, Json de taille illimitée, ...
Voir nouveautés 123 à 143.
Lancement de process: lecture et écriture sur l'entrée et la sortie standard du process
Une application WINDEV peut lancer une autre application (un autre process) écrite en WINDEV ou avec un autre langage.
Cela concerne principalement les applications Console (lancées en ligne de commande).
En version 2025 il devient possible de lire sa sortie Standard (stdout) et sa sortie Erreur (stderr).
Il est également possible d'écrire sur son entrée standard (stdin).
Cela permet de piloter le process lancé, et de récupérer le compte rendu du process.
Envoi de notifications windows: paramétrage d'UI
Une application WINDEV peut envoyer des Notifications qui seront affichées de manière standard par Windows.
Il est maintenant possible de paramétrer la couleur des boutons ou d'associer des boutons à la zone de saisie.
Une notification riche
Une notification riche
51 nouvelles constantes
51 nouvelles constantes sont disponibles en WLangage en version 2025:
archi32archi64cmdEntréeStandardcmdSortieErreur
cmdSortieStandardcrChampcrEcrancrFenêtre
crypteAES192DésactiveConversionAnsiUnicodeOptimiséedocModeCopieMiseEnFormeInactifdocModeCopieMiseEnFormePermanent
docModeCopieMiseEnFormeUneFoisfoAvecHandlefoDirect2DfoSansHandle
ftpIgnoreDépréciéftpIgnoreRenégociationNonSecuriséegrPourcentageImagéhCPTélémétrieActive
hExecPlanificationAnnuléehExecPlanificationEnCourshExecPlanificationErreurhExecPlanificationTerminée
hlpSauvegardeComplètehlpSauvegardeDifférentiellehNullIndexéhNullIndexéCléComposée
hNullNonIndexéhtrgHAjoutehtrgHEcrithtrgHModifie
htrgHRayehtrgHSupprimepiVersionrectAscenseurHorizontal
rectAscenseurVerticalrectExternerectInternerectSaisieBoutonAGauche
relationAlternativerelationDonnéesrelationNonSpécifiéerelationSource
relationSupplémentsaisieInvalideBloquantesaisieInvalideNonBloquantesaisieInvalideRien
taIndicateurRafraîchissementBastaIndicateurRafraîchissementHauttaMotDePasse
5 nouveaux types
5 nouveaux types de variables sont disponibles en WLangage:
CommandehHistoriquePlanificationjsonLecteurpdfChamp
pdfOptionChamp
3 nouvelles propriétés sur les champs
Le WLangage s’enrichit de 3 nouvelles propriétés pour WINDEV.
SaisieInvalideValeurAffichéeComboVoletVisibleParDéfaut
49 nouvelles fonctions WLangage pour WINDEV
Le WLangage s’enrichit de 49 nouvelles fonctions pour WINDEV en version 2025:
AuthDéconnecteDéconnecte un utilisateur précédemment authentifié via :
  • le protocole OAuth 2.0 sur un service Web quelconque.
  • le protocole OpenID sur un service Web quelconque.
  • un token JWT.
AuthRévoqueTokenRévoque un token JWT.
AuthVérifieAuthentificationRetourne le token de l'utilisateur courant dans le cas d'une authentification SSO
BitcoinCoreConnexionOccurrenceRenvoie le nombre de pairs connectés.
BitcoinCoreDateHeureDernierLancementRenvoie la date du dernier lancement de Bitcoin Core.
BitcoinCoreEspaceDisqueUtiliséIndique la taille sur disque de la blockchain.
BitcoinCoreHashBlocRenvoie le hash d’un bloc par indice.
BTLECaractéristiqueChangementValeurActive ou désactive la détection des changements de valeur d'une caractéristique Bluetooth Low Energy.
CertificatExporteExporte un certificat du magasin de certificats Windows vers un fichier au format "pfx"ou "cert".
CertificatPEMVersPFXConvertit un fichier de certificat au format "pem" en un ficher de certificat au format "PFX" incluant la clé privée.
ChampRectangleRenvoie le rectangle correspondant à la zone spécifiée d'un champ.
CmdAjouteArgumentAjoute un argument à une commande à exécuter en mode console.
CmdAjouteOptionAjoute une option à la commande à exécuter en mode console.
CmdEcritEntréeStandardEcrit les données sur l'entrée standard de la commande exécutée en mode console.
CmdExécuteExécute une commande en mode console.
CmdLitSortieErreurLit les données disponibles sur la sortie d'erreur pour la commande lancée en mode console.
CmdLitSortieStandardLit les données disponibles sur la sortie standard pour la commande lancée en mode console.
CmdRécupèreCodeRetourRécupère le code de retour de la commande lancée en mode console, c'est-à-dire la valeur renvoyée à la terminaison de la commande.
DocEffaceMiseEnFormeRemplace la mise en forme actuelle de la sélection par la mise en forme par défaut.
DocModeCopieMiseEnFormeActive le mode "Copie de mise en forme" du champ Traitement de texte et permet de savoir si le mode "Copie de mise en forme" est activé.
EmailAppliRécupèreArchitectureRenvoie l'architecture (32 ou 64 bits) du programme de messagerie par défaut du poste en cours.
EnModeRecyclageIndique si le mode recyclage des sessions prélancées (de webservice) est activé
ExécuteProcédureRéactiveForce l'exécution immédiate d'une procédure réactive.
FenOptimisePermet de changer le mode de création et de dessin des fenêtres. Ce mode sera utilisé par toutes les fenêtres ouvertes après cette fonction.
gImagePaletteConstruit une séquence de caractères contenant une image monochome dont la couleur suit les changements de palettes
grPIImageDéfinit l'image SVG utilisée pour un graphe de type "Pourcentage imagé".
grPIValeurMaximalePermet de spécifier la valeur maximale du graphe permettant de calculer automatiquement les pourcentages (graphe de type "Pourcentage imagé").
grVignetteCatégoriePermet de spécifier la vignette à utiliser dans les graphes pour remplacer le libellé de catégorie.
HImporteCSVImporte un fichier CSV dans une table au format HFSQL Classic ou Client/Serveur (table décrite sous l'éditeur de schémas des données, ou déclarée par les fonctions HDéclare, HDéclareExterne ou HDécritTable).
HListeHistoriquePlanificationListe l'historique d'exécution d'un élément planifié sur un serveur HFSQL: tâche planifiée (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée).
HRplAjouteTableAjoute une table dans une réplication universelle.
HRSTransformeSpareEnServeurTransforme un serveur Spare en un serveur HFSQL. Il est ainsi possible de supprimer les réplications d'un serveur spare pour pouvoir l'utiliser à nouveau (cas par exemple d'un serveur maître inaccessible).
Cette fonction doit être utilisée uniquement en cas d'urgence.
Attention: Cette fonction est disponible uniquement à partir de la version 2025 Update 1.
HSupprimeHistoriquePlanificationSupprime l'historique d'exécution d'un élément planifié sur un serveur HFSQL: tâche planifiée (procédure stockée), sauvegarde, optimisation, rafraîchissement d'une vue matérialisée).
HSupprimeToutHistoriquePlanificationPurge la totalité de l'historique d'exécution des éléments planifiés sur un serveur HFSQL.
iInitEtatVersoInitialise les paramètres de l'état qui sera imprimé au verso d'un autre état.
JourDansLAnnéeVersDateRenvoie la date (au format "AAAAMMJJ") correspondant à un numéro de jour dans l'année.
JSONOuvreLecteurOuvre un lecteur JSON.
ListeProcédureChargeImagePermet d'indiquer la procédure appelée lors de l'affichage d'une ligne d'un champ Liste image.
PaletteChargeCharge une palette à partir d'un fichier.
PaletteGénèreGénère une palette à partir d’une ou de plusieurs couleurs de base.
PaletteRécupèreRécupère la palette courante du projet ou de la fenêtre.
PaletteSauveSauve une palette dans un fichier.
PDFExtraitCrée un nouveau document PDF à partir de différentes pages extraites d'un fichier PDF existant.
RécupèreDéfinitionVariableRécupère la description d'une variable.
TableAjouteDébutAjoute une ligne au début d'un champ Table infinie. La ligne est insérée avant la première ligne du champ Table. La position de défilement du champ Table n'est pas modifiée.
ZoneRépétéeAjouteDébutAjoute une répétition (ou ligne) au début d'un champ Zone répétée infinie. La répétition est insérée avant la première répétition du champ Zone répétée. La position de défilement du champ Zone répétée n'est pas modifiée.
ZoneRépétéeAjouteFIDébutAjoute une répétition (ou une ligne) constituée par une fenêtre interne en première répétition d'un champ Zone Répétée infinie. La répétition est insérée avant la première répétition du champ Zone répétée. La position de défilement du champ Zone répétée n'est pas modifiée.
Version minimum requise
  • Version 2025
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 05/02/2025

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