13. Notes de version #
← Migrer de la 4.0 à la 5.0 · Sommaire · Assistant IA →
Une version acquise ne perd jamais ses composants : la 5.0 contient les trente-sept de la 1.0 à la 4.0, et une clé dont la maintenance couvre la date de votre build compile avec la DLL la plus récente — voir Licence.
5.0 — octobre 2026 #
Huit composants : saisie, graphiques, planification et menus #
- Angular gauge — une jauge à cadran : aiguille, arc plein ou repère, plages colorées par leur ton, graduations, cible, valeur réglable à la souris et au clavier.
- Context menu — un menu contextuel natif construit entrée par entrée, en cascade, avec icônes, coches et groupes radio, ouvert au curseur, sous un contrôle ou en un point de l'écran.
- Form — un formulaire de saisie dans un seul composant : sections repliables, douze types de champ (texte, nombre, interrupteur, liste, date, couleur, étiquettes, notation…), validation, masques, et lecture ou écriture d'une ligne de DataWindow.
- Gantt chart — un diagramme de Gantt : tâches et sommaires repliables, jalons, dépendances, chemin critique, échelles du jour au trimestre, glisser et redimensionner à la souris, rempli depuis un DataStore.
- Kanban board — un tableau kanban : cartes glissées d'une colonne à l'autre, limites d'encours, étiquettes, échéances et avatars, colonnes repliables, rempli depuis un DataStore et réécrit dans le DataWindow.
- Linear gauge — une jauge linéaire, horizontale ou verticale, de la même famille que la jauge à cadran : barre ou repère, plages colorées, graduations, cible, valeur réglable.
- Pie chart — un graphique en secteurs ou en anneau animé : parts qui glissent vers leurs nouvelles valeurs, étiquettes dedans ou dehors, texte au centre, légende cliquable, demi-cercle possible, petites parts rassemblées en « Autres », un DataStore lu en un appel.
- Property grid — une grille de propriétés façon Visual Studio : catégories, propriétés dépliables, un éditeur par type (nombre, booléen, liste, couleur, date…), recherche, tri alphabétique et volet d'aide.
Ce qui change #
- La barre de progression parle comme les jauges :
ib_label,il_coloretis_label_formatdeviennentib_show_value,il_value_coloretis_format(un format d'affichage PowerBuilder appliqué à la valeur), etis_unitécrit une unité après la lecture. Aucune méthode n'est retirée. Le détail, et ce qu'il faut modifier : Migrer de la 4.0 à la 5.0.
Ailleurs dans la bibliothèque #
- Masques de saisie numériques dans la grille de données (
is_maskd'une colonne) et sur un compteur du ruban (is_mask,is_format) : le groupement apparaît au fil des chiffres, les décimales sont bornées, les lettres refusées, et la valeur reste le nombre nu. - Les menus natifs d'un composant qui a son propre accent le montrent sur l'entrée pointée.
- crypto : les blobs sans fichier (
of_base64_encode_blob,of_hash_blob,of_encrypt_blob…), la vérification d'un jeton par le jeu de clés d'Azure AD, de Google ou d'Auth0 (of_jwt_verify_jwks, JWK), les claims attendues et la tolérance des JWT, de nouveaux algorithmes (RS384/512, PS256/384/512, ES384, HS384/512), les signatures PSS, les données associées d'AES-GCM, les réglages TOTP et HOTP,of_password_needs_rehash.
Corrigé #
- Mémoire : chaque création puis destruction d'un composant laissait en mémoire une partie des fichiers chargés par sa page (environ 0,5 à 1 Mo selon le composant, depuis la 3.0). Une application qui ouvre et ferme souvent des fenêtres à composants voyait sa mémoire grandir sans retour, jusqu'à l'arrêt d'une application 32 bits. La mémoire est désormais rendue à la destruction du composant ; rien n'est à modifier dans votre code.
- Grille de données : une cellule de notation se lit par un lecteur d'écran comme son nombre d'étoiles sur cinq (
4 / 5) ; ouvrir puis fermer l'éditeur d'une cellule numérique sans rien taper ne change plus une valeur que le format arrondit.
4.0 — octobre 2026 #
Cinq composants : données, graphiques, documents et son #
- Cartesian chart — un graphique cartésien animé : colonnes, barres, lignes, aires, nuages de points, bulles, cartes de chaleur, chandeliers. Le type se choisit par série : un graphique combiné (colonnes et ligne d'objectif sur deux axes) tient dans un seul composant.
- Data grid — une grille moderne posée sur un DataStore : colonnes typées et cellules riches, tri, filtres, regroupements et sous-totaux, édition en place, très gros volumes, export CSV et Excel. Elle lit ce que le DataWindow dit de chaque colonne (titre, format, liste de codes), et le DataWindow reste le maître de vos données.
- Markdown view — un document Markdown en lecture, aux couleurs du thème : titres, listes, tableaux, cases à cocher, code coloré, images — depuis un texte ou un fichier du poste.
- Scheduler — un calendrier façon Outlook : vues jour, semaine de travail, semaine, mois et agenda, glisser-déposer, ressources côte à côte, catégories de couleur, cartes et info-bulles écrites par gabarits — rempli rendez-vous par rendez-vous ou depuis un DataStore.
- Sound player — un objet non visuel qui joue un fichier du poste, une adresse
httpsou un bip synthétisé, de façon asynchrone (événements) ou synchrone (l'appel rend la main quand le son se termine).
Ce qui change #
- Un changement demandé par votre code (
of_select_*,of_expand,of_open…) lève le même événement qu'un geste de l'utilisateur, commeSelectTabdans PowerBuilder ; les questions posées avant un changement sont facultatives et s'activent par une propriétéib_veto_*. - Deux méthodes partent :
of_set_datadu tableau croisé devientof_from_datastore, etof_transformde XML disparaît avec XSLT, que le moteur du navigateur retire. Quelques noms et comptes s'alignent sur le reste de la bibliothèque. Le détail, et ce qu'il faut modifier : Migrer de la 3.0 à la 4.0. - Les thèmes suivent l'application : l'accent qu'elle pose survit à un changement de thème, et un axe de thème laissé vide suit le sien.
Ailleurs dans la bibliothèque #
- Le clavier de la fenêtre : Entrée presse le bouton par défaut le plus proche du focus, les raccourcis d'un composant répondent depuis toute la fenêtre, une lettre soulignée (
&Enregistrer) aussi, et F10 ouvre la barre de menus. - Tous les menus déroulants cherchent par la frappe et restent fluides avec des milliers d'entrées.
- Texte riche : la balise
[symbol=nom]ajoute dix-huit glyphes monochromes (horloge, lieu, personne, calendrier…) qui suivent la couleur du texte. - Des ajouts dans la plupart des composants livrés — onglets au clavier (Ctrl+Tab, clic du milieu), panneaux détachés au double-clic, chevron de débordement de la barre de menus, liste déroulante dans la barre d'outils, journal ligne à ligne du statictext, taille réelle d'une image, lecture d'une cellule du tableau croisé… La liste complète, composant par composant, est dans Migrer de la 3.0 à la 4.0 et dans l'historique de chaque composant.
- Un assistant IA (Claude, Cursor, VS Code…) peut consulter l'API exacte de votre version et vérifier le code qu'il propose, grâce au serveur MCP de la documentation livré avec la démonstration.
Corrigé #
- Une propriété décimale (
double) se relisait au séparateur du poste : sur un Windows français,1.5revenait faux. - Le clic droit sur un item ne produit plus qu'un seul événement, dans tous les composants.
- Tuiles :
of_get_layoutrendait une disposition vide.
3.0 — septembre 2026 #
Onze composants : données, utilitaires et médias #
- Breadcrumb — le fil d'Ariane : où l'on est, et retour à n'importe quel niveau en un clic. Branches ouvertes à la demande, saisie directe du chemin, fichiers déposés sur un segment.
- Button bar — une rangée de boutons de commande — icône, libellé ou les deux — dans un seul composant ; un clic rend la clé du bouton.
- Crosstab — le tableau croisé dynamique d'un DataStore : lignes, colonnes, valeurs agrégées, filtres, sous-totaux, champs et mesures calculés, export CSV et Excel.
- Crypto — empreintes, HMAC, chiffrement par mot de passe ou par clé, signatures RSA, ECDSA et Ed25519, JWT, mots de passe salés, TOTP à deux facteurs et DPAPI — sans rien installer.
- JSON — construire un document JSON type par type, le lire le long d'un chemin et le modifier sur place, en PowerScript pur.
- JSON tree — un document JSON affiché comme dans un éditeur de code : numéros de ligne, coloration par type, repli de chaque bloc, recherche.
- REST client — un client HTTPS natif et asynchrone : GET, POST, en-têtes, JSON, multipart, cookies, nouvelles tentatives, téléchargement de fichiers — sans le mur CORS d'un navigateur.
- Speech out — la lecture à voix haute avec les voix installées sur le poste : phrase et mot en cours, file d'attente, dictionnaire de prononciation, lecture synchrone.
- Video player — un lecteur vidéo avec sa propre barre au thème : sous-titres, plein écran, chapitres, marqueurs, liste de lecture, capture d'image.
- XML — construire un document XML élément par élément et le lire avec un vrai XPath : espaces de noms, modification, transformation XSLT.
- XML tree — un document XML affiché comme dans un éditeur de code : balises, attributs et texte colorés, repli de chaque élément, recherche.
Ce qui change #
- Toute position donnée à une méthode compte à partir de 1, comme celles que rendent déjà les events de réordonnancement ; une entrée en cascade rend son adresse complète. Le détail, et ce qu'il faut modifier : Migrer de la 2.0 à la 3.0.
- Button reste livré et supporté, mais il est déprécié au profit de Button bar : une barre de boutons tient en un seul composant.
Ailleurs dans la bibliothèque #
of_set_property,of_get_propertyetof_component_name: piloter une propriété par son nom, pour un écran de réglages ou une configuration enregistrée.- La boîte de message propose une liste de choix (
of_add_choice,of_choose) en plus de ses boutons.
Corrigé #
- Une couleur relue (
il_text_color,il_accent…) rendait0, du noir, qu'elle soit posée ou non : elle rend la couleur posée, et-1quand c'est celle du thème. ue_errorde Picture et de Shell explorer n'était jamais levé.- Texte riche : un
[mot]inconnu faisait disparaître la suite du texte ; il s'affiche désormais tel quel. - Barre d'état :
ue_panel_rclickeddonne des coordonnées écran, à passer telles quelles à un menu contextuel.
2.0 — septembre 2026 #
Cinq composants, tous tournés vers la navigation #
- Menu bar — barre de menus d'application : menus, sous-menus, entrées cochables, séparateurs, icônes, raccourcis et mnémoniques
&Fichier, dessinée par la bibliothèque dans le thème de l'application. - Command palette — un raccourci, trois lettres, et n'importe quelle action de l'application est atteinte sans la chercher dans les menus. Recherche sur le libellé, le groupe et les mots-clés, en plusieurs mots.
- Radial menu — les commandes en couronne autour du curseur au clic droit, choisies par leur direction plutôt qu'en parcourant une liste.
- Shell explorer — l'arborescence du vrai shell Windows : Bureau, Ce PC, lecteurs, dossiers, Réseau, avec les icônes du poste. Un seul
of_expandouvre un chemin profond. - Stepbar — le fil d'étapes d'un assistant : les étapes franchies, celle en cours et celles à venir, en horizontal ou en vertical.
Une API remodelée sur les seize de la 1.0 #
Une clé, une adresse ; tout depuis le composant ; un ajout rend un code. Les trois règles, l'avant/après et chaque signature changée sont dans Migrer de la 1.0 à la 2.0. Ce qui l'a motivé : une poignée qui ajoutait ne pouvait pas dire qu'elle avait refusé, et trois arguments pour désigner un item obligeaient chaque composant à inventer sa propre façon de le faire.
Sur tous les composants #
of_count,of_keys_atetof_has, sur le composant et à chaque niveau : ce qu'un composant contient se demande, il n'y a plus à le retenir soi-même.- Toute méthode qui rend un
longdit ce que son retour signifie :0appliqué,-5argument invalide,-2composant non créé — dans la doc embarquée de la démo comme ici. - Les propriétés d'un item se relisent en direct : l'icône d'une entrée de listbar, le texte et l'icône d'une tuile, l'état d'un bouton de barre — un getter dit ce qui est à l'écran, jamais une valeur mémorisée.
ib_visiblesur chaque entrée de menu — barre de menus, menu contextuel, menu radial, menus du ruban : masquer n'est pas griser, l'entrée quitte le menu, raccourci compris, et garde sa clé pour revenir.- La barre d'état construit ses menus entrée par entrée (
of_add_menu_item ("panel/id", …)), avec une poignée d'entrée qui grise, coche et masque — à la place des deux tableaux parallèles deof_set_panel_menu. ue_script_error: une erreur de script dans la page remonte à PowerBuilder avec son message et sa pile, au lieu de se perdre.
Corrigé #
- Un item désactivé ou masqué ne répond plus à rien : ni clic, ni clavier — la listbar sélectionnait encore une entrée grisée sur Entrée.
- Le texte grisé se lit dans tous les thèmes (contraste 3:1 au moins), et le texte survolé aussi en mode sombre — deux boutons désactivés du ruban devenaient invisibles en Office 2007.
- Un chemin Windows lu depuis la page revenait avec ses antislashs doublés (
C:\\Windows) ; une valeur contenant un guillemet était coupée. - Dock container : le panneau épinglé à gauche perdait sa bordure droite au-dessus de 100 % d'échelle d'affichage.
- Ruban : l'icône d'un bouton désactivé n'était pas grisée en mode compact ; un titre de barre de menus s'allumait en même temps que le survolé.
- Éditeur de code : le texte relu après un repli était l'ancien, et déplier écrasait la frappe.
1.0 — août 2026 #
Première version : seize composants — button, code editor, dock container, listbar, message box, PDF viewer, picture, progress, ribbon, statictext, statusbar, tab, tiles box, toaster, toolbar, web browser — une seule DLL à déployer, x86 et x64 sous le même nom, aucune dépendance .NET, ActiveX ni PBNI. Thèmes Office, Fluent et Metro, clair et sombre ; six langues et RTL ; licence entièrement hors ligne ; PowerBuilder 10.2 à 2025.