Documentation
Aucun assistant, aucun enregistrement COM, aucun droit administrateur : deux fichiers à copier, et vous posez le composant comme n'importe quel contrôle PowerBuilder.
Copiez pbtoolboxai.pbl dans le dossier de votre application et ajoutez-la à la library list de la cible. Les déclarations external functions sont déjà portées par l'ancêtre : rien à redéclarer.
Un seul fichier, pbtoolboxai.dll, autoportant : les bundles web, les thèmes et les dictionnaires sont embarqués dedans. L'exemplaire x86 va à côté de pbXXX.exe pour l'IDE, le x64 à côté d'un exécutable 64 bits.
Insert → Control → User Object, choisissez u_pbt_statictext, nommez-le, dimensionnez-le. Dans le peintre il affiche un cadre gris : le rendu réel a lieu à l'exécution.
Affectez les propriétés, scriptez les events. Les commandes émises avant que le composant ne soit prêt sont mises en file et rejouées : vous n'avez aucun ordre d'initialisation à respecter.
// Window constructor -- the component is not created yet : these commands
// are queued and replayed as soon as it is ready.
uo_text.is_theme_style = uo_text.THEME_STYLE_FLUENT
uo_text.is_theme_mode = uo_text.THEME_MODE_DARK
uo_text.is_text = "Welcome to [b]PBToolboxAI[/b] !"
uo_text.is_align = uo_text.ALIGN_CENTER
uo_text.il_text_color = RGB(0, 103, 192)
// ue_clicked event of u_pbt_statictext
Open(w_detail)
Ce que vous apprenez sur un composant vaut pour tous les autres : mêmes préfixes, mêmes conventions, mêmes codes retour.
uo_texte.is_text = "Bonjour" — pas de setter à retenir. Et la relecture est vivante : une propriété que l'utilisateur a changée à la souris se relit à jour.
Chaque propriété à valeurs prédéfinies expose ses constantes sur le composant : ALIGN_CENTER, THEME_MODE_DARK… auto-complétées par l'IDE, et pas de faute de frappe.
ue_clicked, ue_selection_changed… avec leurs arguments. Certains sont vetoables : votre code peut refuser le changement avant qu'il n'ait lieu.
Les méthodes of_* renvoient un long : ≥ 0 = fait, < 0 = erreur. La bibliothèque n'affiche jamais de boîte à votre place.
Huit chapitres de guide, une page de référence par composant, et une documentation interactive dans l'application de démonstration : chaque propriété y a son exemple exécutable, dont vous copiez le code.
Prérequis, fichiers à livrer, intégration IDE, runtime WebView2
Ouvrir et migrer la démo livrée, premier composant à l'écran
u_pbt_baseMoteur de propriétés, items, events, cycle de vie, of_reset
Thèmes (style × mode), accent, surcharge de tokens, icônes, texte riche
PBT_SetLanguage, traductions, RTL
Info-bulles, hébergement de contrôles PB, drop de fichiers, focus clavier, export image, utilitaires non visuels
Symptômes fréquents et leurs causes
Clés dev / runtime / demo, mode démo
Le tout en six langues — français, anglais, allemand, italien, espagnol, portugais — en pages HTML autonomes, à lire hors ligne dans un navigateur, dans le dossier Documentation\ livré avec le produit.
La même documentation, servie à votre assistant IA : Claude Code, Claude Desktop, Cursor ou VS Code y cherchent les composants, les membres et les exemples de votre version, et font vérifier le PowerScript qu'ils vous proposent. Le chapitre 14 dit comment le brancher en quelques lignes.
10.2 → 2025, en 32 bits comme en 64 bits. Les deux exemplaires de la DLL portent le même nom : vous développez dans l'IDE 32 bits et compilez en 64 bits sans changer une ligne de PowerScript.
10 et 11, Server 2016 et supérieur.
Déjà présent sur un Windows 10/11 à jour. Sur Server ou LTSC, un bootstrapper de 2 Mo l'installe une fois, en silencieux.
Pas de .NET, pas d'ActiveX, pas de PBNI, aucun enregistrement COM, aucun droit administrateur pour la bibliothèque elle-même.
Non, jamais. Le moteur web est un détail d'implémentation : vous ne voyez que des userobjects, des propriétés et des events PowerBuilder.
Le fichier déployé, et rien d'autre. Même nom de DLL, mêmes déclarations, même PowerScript.
Oui : les onglets et les panneaux du dock hébergent de vrais contrôles PB — une DataWindow, une fenêtre de saisie, un autre composant. C'est du parentage Win32, pas une image.
Le thème est une propriété du composant (is_theme_style × is_theme_mode, plus une couleur d'accent), appliquée à chaud. La langue est globale au processus : un appel à PBT_SetLanguage dans l'open de l'application, et tous les composants suivent.
Le chapitre FAQ et dépannage de la documentation livrée liste les symptômes fréquents et leur cause — DLL introuvable, runtime absent, contrôle posé hors de la fenêtre visible.