13. Note di versione #
← Migrare dalla 4.0 alla 5.0 · Sommario · Assistente IA →
Una versione acquistata non perde mai i suoi componenti: la 5.0 contiene i trentasette dalla 1.0 alla 4.0, e una chiave la cui manutenzione copre la data della Sua build compila con la DLL più recente — vedere Licenza.
5.0 — novembre 2026 #
Dieci componenti: inserimento, dati, grafici, pianificazione, menu e media #
- Angular gauge — un indicatore a quadrante: lancetta, arco pieno o indice, intervalli colorati secondo il loro tono, tacche, obiettivo, un valore regolabile con il mouse e la tastiera.
- Carousel — un carosello in stile iTunes: copertine in rilievo (Cover Flow), striscia piatta o pila, trascinato con inerzia, con la tastiera, la rotellina o in scorrimento automatico; ogni elemento è un'immagine, un testo formattato o una scheda a modello, aggiunto a mano o letto da un DataStore.
- Context menu — un menu contestuale nativo costruito voce per voce, a cascata, con icone, segni di spunta e gruppi radio, aperto al cursore, sotto un controllo o in un punto dello schermo.
- Form — un modulo di inserimento in un solo componente: sezioni comprimibili, dodici tipi di campo (testo, numero, interruttore, elenco, data, colore, etichette, valutazione…), convalida, maschere, e lettura o scrittura di una riga di DataWindow.
- Gantt chart — un diagramma di Gantt: attività e riepiloghi comprimibili, milestone, dipendenze, percorso critico, scale dal giorno al trimestre, trascinamento e ridimensionamento con il mouse, riempito da un DataStore.
- Kanban board — una bacheca kanban: schede trascinate da una colonna all'altra, limiti di lavoro in corso, etichette, scadenze e avatar, colonne comprimibili, riempita da un DataStore e riscritta nella DataWindow.
- Linear gauge — un indicatore lineare, orizzontale o verticale, della stessa famiglia dell'indicatore a quadrante: barra o indice, intervalli colorati, tacche, obiettivo, valore regolabile.
- Pie chart — un grafico a torta o ad anello animato: fette che scorrono verso i nuovi valori, etichette dentro o fuori, un testo al centro, una legenda cliccabile, un semicerchio se lo desidera, fette piccole raggruppate in «Altri», un DataStore letto in una chiamata.
- Property grid — una griglia delle proprietà in stile Visual Studio: categorie, proprietà espandibili, un editor per tipo (numero, booleano, elenco, colore, data…), ricerca, ordinamento alfabetico e riquadro di guida.
- Tree view — un albero, o un elenco ad albero non appena ha delle colonne: rami letti su richiesta, caselle a tre stati, modifica sul posto, trascinamento, ricerca, ordinamento per colonna, totali di ramo, riempito da un DataStore gerarchico e riscritto nella DataWindow, fluido con decine di migliaia di nodi.
Cosa cambia #
- Ciò che si legge senza argomento è una proprietà: la selezione, una posizione, uno stato, la disposizione, l'ultimo errore si leggono come ogni proprietà (
uo.is_selected_key,uo.ib_open,uo.is_last_error), di sola lettura quando non si scrivono;is_layoutsostituisce la coppiaof_get_layout/of_set_layout. Le vecchie funzioni scompaiono: il compilatore mostra ogni riga da riprendere. - Una parola per ruolo:
is_textè ciò che un elemento mostra,is_labelil nome di un dato,is_valueciò che l'utente digita — le voci di menu della barra multifunzione e della barra di stato e i comandi della tavolozza passano dais_labelais_text. La barra di avanzamento prende le parole degli indicatori (ib_show_value,il_value_color,is_format,is_unit), e il grafico cartesiano come la tabella pivot scrivono i loro numeri tramiteis_format, un formato di visualizzazione PowerBuilder, invece diof_set_value_format. - Gli eventi dicono di più: ogni clic destro su un elemento riceve il punto dello schermo dove aprire un menu (
al_x,al_y: barra laterale, schede, barra degli strumenti, percorso;ue_tile_contextdel pannello di riquadri diventaue_tile_rclicked), e alcuni eventi ricevono un argomento in più — il calendario, il lettore di suoni, il toaster, l'esploratore della shell, il testo formattato, il visualizzatore Markdown. La barra di pulsanti mette il testo prima dell'icona nelle sue aggiunte. - Ogni verbo restituisce un codice:
of_stop,of_closeeof_resetdei componenti non visuali,of_go_back,of_go_forwardeof_stopdel browser web,of_stopdel lettore video restituiscono unlong; una chiamata scritta come istruzione compila ancora. I dettagli, componente per componente, e cosa modificare: Migrare dalla 4.0 alla 5.0.
Altrove nella libreria #
- Button non è più deprecato: è il componente per un pulsante singolo, Button bar resta quello per una fila di pulsanti.
- Maschere di input numeriche nella griglia dati (
is_maskdi una colonna) e su un contatore della barra multifunzione (is_mask,is_format): il raggruppamento appare man mano che arrivano le cifre, i decimali sono limitati, le lettere rifiutate, e il valore resta il numero nudo. - I menu nativi di un componente che ha un accento proprio lo mostrano sulla voce puntata.
- crypto: i blob senza file (
of_base64_encode_blob,of_hash_blob,of_encrypt_blob…), la verifica di un token con l'insieme di chiavi di Azure AD, Google o Auth0 (of_jwt_verify_jwks, JWK), le claim attese e la tolleranza dei JWT, nuovi algoritmi (RS384/512, PS256/384/512, ES384, HS384/512), le firme PSS, i dati aggiuntivi di AES-GCM, le impostazioni TOTP e HOTP,of_password_needs_rehash. - webbrowser: l'elenco dei siti che può mostrare (
is_allowed_hosts), un certificato di intranet accettato dalla Sua applicazione (ue_certificate_error), messaggi scambiati con la pagina (ue_web_message,of_post_message), lo zoom (ii_zoom),ue_load_startedeib_loading. - I dati e i menu di PowerBuilder: un DataStore, una DataWindow o un DataWindowChild alimenta anche il grafico cartesiano, la barra laterale, il JSON (
of_from_datastore, eof_to_datastorenell'altro senso) e il client REST (of_retrieve); la barra dei menu e la tavolozza dei comandi si riempiono dal menu PowerBuilder di una finestra (of_load_menu); il visualizzatore PDF e l'immagine mostrano un blob senza file. is_accessible_nameeis_accessible_descriptionsu tutti i componenti visuali, per i lettori di schermo; l'editor di codice acquista una cronologia di annullamento pilotabile dal codice (of_undo,of_redo,ue_undo_state_changed) e Ctrl+/; il percorso diventa una barra degli indirizzi con completamento. L'elenco completo, componente per componente, è al 12.6 di Migrare dalla 4.0 alla 5.0 e nella cronologia di ogni componente.
Corretto #
- Anello di focus dopo una finestra di dialogo: un pulsante (o qualsiasi componente) cliccato con il mouse che riceveva di nuovo il focus alla chiusura di una finestra di dialogo mostrava l'anello di focus della tastiera. Come Windows, il componente mantiene ora la modalità in cui era: nessun anello dopo un clic, l'anello dopo il tasto Tab.
- Controllo ospitato in una scheda o in un pannello: un controllo posto in una pagina di Tab o in un pannello di Dock container che scriveva una proprietà di un componente nel suo
pbm_sizebloccava l'applicazione 5 secondi per proprietà, e i clic fatti nel frattempo andavano persi. La proprietà ora si applica subito. - Memoria: ogni creazione e successiva distruzione di un componente lasciava in memoria una parte dei file caricati dalla sua pagina (circa 0,5-1 MB a seconda del componente, dalla 3.0). Un'applicazione che apre e chiude spesso finestre con componenti vedeva la memoria crescere senza tornare indietro, fino all'arresto di un'applicazione a 32 bit. La memoria viene ora restituita alla distruzione del componente; nulla da modificare nel Suo codice.
- Menu: dopo un momento in cui l'applicazione era occupata, un menu (contestuale, a discesa, di una barra multifunzione o di una barra dei menu) poteva non chiudersi più con un clic altrove. Ora si chiude sempre; nulla da modificare nel Suo codice.
- commandpalette: una palette chiusa con Alt+F4 risultava ancora aperta, e la pressione successiva della sua scorciatoia non la riapriva. Ora si chiude come con Esc.
- Il motivo di un fallimento (
is_last_error, in precedenzaof_get_last_error()) è quello di questo componente: era spesso l'ultimo messaggio lasciato nella DLL da un altro. - crypto:
of_encrypt_fileeof_decrypt_filetrattano i file di più di 1 MB (la cifratura restituiva-4, la decifratura poteva arrestare un'applicazione a 32 bit). - REST client: una richiesta sincrona non blocca più la finestra, nemmeno durante un lungo scaricamento.
- Costruire in grande è rapido: una barra multifunzione o un pannello di riquadri riempito un elemento dopo l'altro si disegna una volta (una barra di 200 controlli richiedeva da 13 a 14 s), e l'editor di codice resta fluido oltre le 2.000 righe.
- Griglia dati: una cella di valutazione viene letta da un lettore di schermo come il suo numero di stelle su cinque (
4 / 5); aprire e chiudere l'editor di una cella numerica senza digitare non cambia più un valore che il formato arrotonda.
4.0 — ottobre 2026 #
Cinque componenti: dati, grafici, documenti e suono #
- Cartesian chart — un grafico cartesiano animato: colonne, barre, linee, aree, dispersione, bolle, mappe di calore, candele. Il tipo si sceglie per serie: un grafico combinato (colonne e linea obiettivo su due assi) sta in un solo componente.
- Data grid — una griglia moderna posata su un DataStore: colonne tipizzate e celle ricche, ordinamento, filtri, raggruppamenti e subtotali, modifica sul posto, volumi molto grandi, esportazione CSV ed Excel. Legge ciò che il DataWindow dice di ogni colonna (titolo, formato, tabella dei codici), e il DataWindow resta il padrone dei Suoi dati.
- Markdown view — un documento Markdown in sola lettura, nei colori del tema: titoli, elenchi, tabelle, caselle di spunta, codice colorato, immagini — da un testo o da un file della postazione.
- Scheduler — un calendario in stile Outlook: viste giorno, settimana lavorativa, settimana, mese e agenda, trascinamento, risorse affiancate, categorie di colore, schede e descrizioni comandi scritte con modelli — riempito appuntamento per appuntamento o da un DataStore.
- Sound player — un oggetto non visuale che riproduce un file della postazione, un indirizzo
httpso un segnale acustico sintetizzato, in modo asincrono (eventi) o sincrono (la chiamata ritorna quando il suono finisce).
Cosa cambia #
- Un cambiamento chiesto dal Suo codice (
of_select_*,of_expand,of_open…) solleva lo stesso evento di un gesto dell'utente, comeSelectTabin PowerBuilder; le domande poste prima di un cambiamento sono facoltative e si attivano con una proprietàib_veto_*. - Due metodi scompaiono:
of_set_datadella tabella pivot diventaof_from_datastore, eof_transformdi XML se ne va con XSLT, che il motore del browser sta rimuovendo. Alcuni nomi e conteggi si allineano al resto della libreria. I dettagli, e cosa modificare: Migrare dalla 3.0 alla 4.0. - I temi seguono l'applicazione: l'accento che imposta sopravvive a un cambio di tema, e un asse di tema lasciato vuoto segue il suo.
Altrove nella libreria #
- La tastiera della finestra: Invio preme il pulsante predefinito più vicino al focus, le scorciatoie di un componente rispondono da tutta la finestra, così come una lettera sottolineata (
&Salva), e F10 apre la barra dei menu. - Tutti i menu a discesa cercano durante la digitazione e restano fluidi anche con migliaia di voci.
- Testo formattato: il tag
[symbol=nome]aggiunge diciotto glifi monocromatici (orologio, luogo, persona, calendario…) che seguono il colore del testo. - Aggiunte nella maggior parte dei componenti forniti — schede da tastiera (Ctrl+Tab, clic centrale), pannelli staccati con un doppio clic, freccia di overflow della barra dei menu, elenco a discesa nella barra degli strumenti, registro riga per riga dello statictext, dimensione reale di un'immagine, lettura di una cella della tabella pivot… L'elenco completo, componente per componente, è in Migrare dalla 3.0 alla 4.0 e nella cronologia di ogni componente.
- Un assistente IA (Claude, Cursor, VS Code…) può consultare l'API esatta della Sua versione e verificare il codice che propone, grazie al server MCP della documentazione fornito con la dimostrazione.
Corretto #
- Una proprietà decimale (
double) veniva riletta con il separatore della postazione: su un Windows francese,1.5tornava errato. - Il clic destro su un elemento produce ora un solo evento, in tutti i componenti.
- Tiles box:
of_get_layoutrestituiva una disposizione vuota.
3.0 — settembre 2026 #
Undici componenti: dati, utilità e media #
- Breadcrumb — il percorso di navigazione: dove ci si trova, e ritorno a qualsiasi livello con un clic. Rami aperti su richiesta, inserimento diretto del percorso, file rilasciati su un segmento.
- Button bar — una fila di pulsanti di comando — icona, etichetta o entrambe — in un solo componente; un clic restituisce la chiave del pulsante.
- Crosstab — la tabella pivot dinamica di un DataStore: righe, colonne, valori aggregati, filtri, subtotali, campi e misure calcolati, esportazione CSV ed Excel.
- Crypto — impronte, HMAC, cifratura con password o con chiave, firme RSA, ECDSA ed Ed25519, JWT, password con sale, TOTP a due fattori e DPAPI — senza installare nulla.
- JSON — costruire un documento JSON tipo per tipo, leggerlo lungo un percorso e modificarlo sul posto, in PowerScript puro.
- JSON tree — un documento JSON mostrato come in un editor di codice: numeri di riga, colorazione per tipo, ogni blocco comprimibile, ricerca.
- REST client — un client HTTPS nativo e asincrono: GET, POST, intestazioni, JSON, multipart, cookie, nuovi tentativi, download di file — senza il muro CORS di un browser.
- Speech out — la lettura ad alta voce con le voci installate sulla postazione: frase e parola in corso, coda, dizionario di pronuncia, lettura sincrona.
- Video player — un lettore video con la propria barra a tema: sottotitoli, schermo intero, capitoli, marcatori, playlist, cattura del fotogramma.
- XML — costruire un documento XML elemento per elemento e leggerlo con un vero XPath: spazi dei nomi, modifica, trasformazione XSLT.
- XML tree — un documento XML mostrato come in un editor di codice: tag, attributi e testo colorati, ogni elemento comprimibile, ricerca.
Cosa cambia #
- Ogni posizione passata a un metodo conta da 1, come quelle che gli eventi di riordino restituiscono già; una voce a cascata restituisce il suo indirizzo completo. I dettagli, e cosa modificare: Migrare dalla 2.0 alla 3.0.
- Button resta fornito e supportato, ma è deprecato a favore di Button bar: una fila di pulsanti sta in un solo componente.
Altrove nella libreria #
of_set_property,of_get_propertyeof_component_name: pilotare una proprietà dal suo nome, per una schermata di impostazioni o una configurazione salvata.- La finestra di messaggio propone un elenco di scelte (
of_add_choice,of_choose) oltre ai suoi pulsanti.
Corretto #
- Un colore riletto (
il_text_color,il_accent…) restituiva0, nero, che fosse impostato o no: restituisce il colore impostato, e-1quando è quello del tema. ue_errordi Picture e Shell explorer non veniva mai sollevato.- Testo formattato: una
[parola]sconosciuta faceva sparire il resto del testo; ora viene mostrata così com'è. - Barra di stato:
ue_panel_rclickedfornisce coordinate schermo, da passare così come sono a un menu contestuale.
2.0 — settembre 2026 #
Cinque componenti, tutti dedicati alla navigazione #
- Menu bar — barra dei menu dell'applicazione: menu, sottomenu, voci spuntabili, separatori, icone, scorciatoie e mnemonici
&File, disegnata dalla libreria nel tema dell'applicazione. - Command palette — una scorciatoia, tre lettere, e qualsiasi azione dell'applicazione è raggiunta senza cercarla nei menu. Ricerca su etichetta, gruppo e parole chiave, più parole alla volta.
- Radial menu — i comandi in corona attorno al cursore al clic destro, scelti per direzione anziché scorrendo un elenco.
- Shell explorer — l'albero del vero shell di Windows: Desktop, Questo PC, unità, cartelle, Rete, con le icone del computer. Un solo
of_expandapre un percorso profondo. - Stepbar — il filo dei passaggi di una procedura guidata: quelli compiuti, quello in corso e quelli a venire, in orizzontale o in verticale.
Un'API rimodellata sui sedici della 1.0 #
Una chiave, un indirizzo; tutto dal componente; un'aggiunta restituisce un codice. Le tre regole, il prima/dopo e ogni firma cambiata sono in Migrare dalla 1.0 alla 2.0. Il motivo: un handle che aggiungeva non poteva dire di aver rifiutato, e tre argomenti per designare un item obbligavano ogni componente a inventare il proprio modo di farlo.
Su tutti i componenti #
of_count,of_keys_ateof_has, sul componente e a ogni livello: ciò che un componente contiene si chiede, non c'è più bisogno di tenerne conto da soli.- Ogni metodo che restituisce un
longdice cosa significa il suo ritorno:0applicato,-5argomento non valido,-2componente non creato — nella doc incorporata della demo come qui. - Le proprietà di un item si rileggono dal vivo: l'icona di una voce della listbar, il testo e l'icona di una piastrella, lo stato di un pulsante di barra — un getter dice ciò che è a schermo, mai un valore memorizzato.
ib_visiblesu ogni voce di menu — barra dei menu, menu contestuale, menu radiale, menu della barra multifunzione: nascondere non è disattivare, la voce lascia il menu, scorciatoia compresa, e conserva la chiave per tornare.- La barra di stato costruisce i suoi menu una voce alla volta (
of_add_menu_item ("panel/id", …)), con un handle di voce che disattiva, spunta e nasconde — al posto dei due array paralleli diof_set_panel_menu. ue_script_error: un errore di script nella pagina arriva a PowerBuilder con messaggio e stack, invece di perdersi.
Corretto #
- Un item disattivato o nascosto non risponde più a nulla: né clic né tastiera — la listbar selezionava ancora una voce disattivata con Invio.
- Il testo disattivato si legge in tutti i temi (contrasto almeno 3:1), e anche il testo al passaggio del mouse in modalità scura — due pulsanti disattivati della barra multifunzione diventavano invisibili in Office 2007.
- Un percorso Windows letto dalla pagina tornava con le barre rovesciate raddoppiate (
C:\\Windows); un valore contenente virgolette veniva troncato. - Dock container: il pannello ancorato a sinistra perdeva il bordo destro oltre il 100% di ridimensionamento dello schermo.
- Barra multifunzione: l'icona di un pulsante disattivato non era disattivata in modalità compatta; un titolo della barra dei menu si accendeva insieme a quello al passaggio del mouse.
- Editor di codice: il testo riletto dopo un ripiegamento era quello vecchio, e riespandere sovrascriveva quanto digitato.
1.0 — agosto 2026 #
Prima versione: sedici componenti — button, code editor, dock container, listbar, message box, PDF viewer, picture, progress, ribbon, statictext, statusbar, tab, tiles box, toaster, toolbar, web browser — una sola DLL da distribuire, x86 e x64 con lo stesso nome, nessuna dipendenza .NET, ActiveX o PBNI. Temi Office, Fluent e Metro, chiaro e scuro; sei lingue e RTL; licenza interamente offline; PowerBuilder da 10.2 a 2025.