PBToolboxAI Buy

Documentation

Four steps, and the first component is on screen

No wizard, no COM registration, no administrator rights: two files to copy, then you drop the component like any PowerBuilder control.

1. The library in the library list

Copy pbtoolboxai.pbl into your application folder and add it to the target's library list. The external function declarations already live on the ancestor: nothing to redeclare.

2. The DLL next to the executable

A single self-contained file, pbtoolboxai.dll: the web bundles, themes and dictionaries are embedded in it. The x86 copy sits next to pbXXX.exe for the IDE, the x64 one next to a 64-bit executable.

3. The userobject on the window

Insert → Control → User Object, pick u_pbt_statictext, name it, size it. In the painter it shows a grey frame: the real rendering happens at runtime.

4. Driving it, right from the constructor

Assign the properties, script the events. Commands issued before the component is ready are queued and replayed: there is no initialization order to respect.

// 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)

One single model, for all forty-seven components

What you learn on one component holds for every other: same prefixes, same conventions, same return codes.

Everything is a property

uo_text.is_text = "Hello" — no setter to remember. And reading back is live: a property the user changed with the mouse reads back up to date.

Constants, not strings

Every property with predefined values exposes its constants on the component: ALIGN_CENTER, THEME_MODE_DARK… auto-completed by the IDE, and no typos.

Typed PB events

ue_clicked, ue_selection_changed… with their arguments. Some are vetoable: your code can refuse the change before it happens.

Return codes, never a MessageBox

The of_* methods return a long: ≥ 0 = done, < 0 = error. The library never pops a box on your behalf.

The documentation shipped with the product

Eight guide chapters, one reference page per component, plus an interactive documentation inside the demo application: every property has its runnable example there, whose code you copy.

1. Installation and deployment

Requirements, files to ship, IDE integration, WebView2 runtime

2. Getting started

Open and migrate the shipped demo, first component on screen

3. Shared foundation u_pbt_base

Property engine, items, events, life cycle, of_reset

4. Themes and appearance

Themes (style × mode), accent color, token overrides, icons, rich text

5. Language and reading direction

PBT_SetLanguage, translations, RTL

6. Cross-cutting features

Tooltips, hosting PB controls, file drop, keyboard focus, image export, non-visual utilities

7. FAQ and troubleshooting

Common symptoms and what causes them

8. License and demo mode

dev / runtime / demo keys, demo mode

All of it in six languages — French, English, German, Italian, Spanish, Portuguese — as self-contained HTML pages, readable offline in a browser, in the Documentation\ folder shipped with the product.

14. AI assistant: the documentation MCP server

The same documentation, served to your AI assistant: Claude Code, Claude Desktop, Cursor or VS Code look up the components, members and examples of your version there, and have the PowerScript they propose checked. Chapter 13 explains how to connect it in a few lines.

Connect your assistant →

Read the documentation online →

Version history of every component →

What the machine needs

PowerBuilder

10.2 → 2025, 32-bit and 64-bit alike. Both copies of the DLL carry the same name: you develop in the 32-bit IDE and compile to 64-bit without changing a line of PowerScript.

Windows

10 and 11, Server 2016 and above.

WebView2 runtime

Already present on an up-to-date Windows 10/11. On Server or LTSC, a 2 MB bootstrapper installs it once, silently.

And nothing else

No .NET, no ActiveX, no PBNI, no COM registration, no administrator rights for the library itself.

Questions that come back

Do I have to write HTML or JavaScript?

No, never. The web engine is an implementation detail: all you see are PowerBuilder userobjects, properties and events.

What changes when moving to 64-bit?

The file you deploy, and nothing else. Same DLL name, same declarations, same PowerScript.

Can a PowerBuilder control go inside a component?

Yes: tabs and dock panels host real PB controls — a DataWindow, an entry form, another component. That is Win32 parenting, not a picture.

How do I change the theme or the language?

The theme is a property of the component (is_theme_style × is_theme_mode, plus an accent color), applied live. The language is process-wide: one call to PBT_SetLanguage in the application open, and every component follows.

And if the component does not show up?

The FAQ and troubleshooting chapter of the shipped documentation lists the frequent symptoms and their cause — DLL not found, runtime missing, control placed outside the visible window.

Ready to try?

Download