Ecco sgcChat.
Una chat dentro la tua applicazione.
Un assistente AI che trasmette le risposte in streaming come Markdown formattato, e una chat di team con presenza, indicatore di scrittura, conferme di lettura e reazioni. Controlli nativi per Delphi, C++ Builder e .NET.
- VCL
- FireMonkey
- WinForms
- WPF
- Avalonia
- SVG e PNG headless
Oggi rilasciamo sgcUI 2026.11. Aggiunge un nuovo prodotto, sgcChat, che porta una chat con assistente AI e una chat di team dentro la tua applicazione, e colma un elenco di lacune minori in tutta la suite: indicatori che accettano input dell'utente, data binding che segue il dataset in entrambe le direzioni, una dashboard pubblicata come pagina web, le serie ricorrenti di Outlook nel planner, gli script nei report e altro ancora.
sgcChat è il sedicesimo prodotto sgcUI. Funziona su VCL e FireMonkey per Delphi e C++ Builder, e su WinForms, WPF e Avalonia per .NET, ed è incluso in sgcUI Enterprise e All-Access. Non viene venduto come package separato.
sgcChat: un assistente AI nella tua applicazione
Una risposta AI arriva a piccoli pezzi, e gli utenti si aspettano di leggerla mentre viene scritta. TsgcChatAI collega una conversazione a un provider, invia la cronologia e il prompt di sistema, e mostra ogni pezzo come Markdown formattato appena arriva. Il provider gira su un thread di lavoro, quindi la finestra resta reattiva, e il pannello della chat offre stop, rigenerazione e modifica con reinvio per ogni risposta.
- Markdown in streaming con un cursore mentre la risposta viene scritta.
- Schede di chiamata degli strumenti con il nome dello strumento, gli argomenti, il risultato e uno stato di esecuzione, completato o errore.
- La cronologia della conversazione salvata e caricata in JSON.
sgcChat non ti lega a un unico fornitore di AI. TsgcChatAIProvider_AIChat si collega a TsgcAIChat di sgcWebSockets, che dialoga con OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok e Mistral. TsgcChatAIProvider_UICore usa il livello di provider AI condiviso da tutti i prodotti sgcUI, e TsgcChatAIEventProvider ti permette di trasmettere in streaming dal tuo backend in un evento. Ecco come un binding TsgcChatAI risponde con OpenAI:
uses
SysUtils, Classes,
// sgcWebSockets
sgcAI, sgcAI_Chat,
// sgc
sgcChat_AI, sgcChatWS_AI;
procedure UseOpenAI(aAI: TsgcChatAI; const aApiKey: string);
var
oChat: TsgcAIChat;
oProvider: TsgcChatAIProvider_AIChat;
begin
oChat := TsgcAIChat.Create(aAI.Owner);
oChat.Provider := aicpOpenAI;
oChat.ChatOptions.ApiKey := aApiKey;
oChat.ChatOptions.Model := 'gpt-4o-mini';
oProvider := TsgcChatAIProvider_AIChat.Create(aAI.Owner);
oProvider.Chat := oChat;
aAI.Model := oChat.ChatOptions.Model;
aAI.Provider := oProvider;
end;
Cambia Provider per usare Anthropic, Gemini, DeepSeek, Ollama, Grok o Mistral. La guida di sgcChat contiene la guida rapida completa.
Il dialogo con Claude, OpenAI, Gemini e gli altri provider LLM richiede sgcWebSockets, incluso in All-Access. TsgcChatAIProvider_AIChat si trova nel package bridge sgcChatWS (.NET: esegece.sgcChat.sgcWebSockets). Senza sgcWebSockets, TsgcChatAIEventProvider permette al tuo codice di chiamare qualsiasi servizio AI.
sgcChat: una chat di team sul tuo server
I servizi di assistenza, i team sul campo e gli strumenti interni hanno bisogno di una chat che i loro utenti sappiano già usare. La vista della chat raggruppa i messaggi di ogni autore con un avatar e un nome, mostra chi è online, assente o occupato, mostra chi sta scrivendo e contrassegna ogni messaggio come inviato, recapitato o letto. Gli utenti rispondono a un messaggio, reagiscono, modificano o eliminano i propri messaggi e inviano allegati con miniature delle immagini e chip dei file.
La chat non dipende da un server specifico. TsgcChatEventTransport consegna al tuo codice ogni messaggio, cambio di scrittura, conferma e reazione come frame JSON documentato. Con sgcWebSockets, TsgcChatTransport_WebSocket collega un client e TsgcChatServer_WebSocket inoltra i messaggi tra i client di un canale, tiene la presenza di ogni utente e invia gli ultimi messaggi a chi si unisce più tardi. Il relay gira in un servizio o in un programma console:
function CreateRelay(aOwner: TComponent; aPort: Integer)
: TsgcChatServer_WebSocket;
var
oServer: TsgcWebSocketServer;
begin
oServer := TsgcWebSocketServer.Create(aOwner);
oServer.Port := aPort;
// the relay needs no main thread
oServer.NotifyEvents := neNoSync;
Result := TsgcChatServer_WebSocket.Create(aOwner);
Result.Server := oServer;
// the last 100 messages of every channel go to late joiners
Result.HistoryCount := 100;
oServer.Active := True;
end;
Entrambi gli esempi Delphi qui sopra sono copiati senza modifiche dagli esempi della guida di sgcChat, che sono stati compilati con Delphi 13 (Win32) sui sorgenti di sgcUI e sgcWebSockets.
La chat di team via WebSocket richiede sgcWebSockets, incluso in All-Access. TsgcChatTransport_WebSocket e TsgcChatServer_WebSocket si trovano nel package bridge sgcChatWS (.NET: esegece.sgcChat.sgcWebSockets). Senza sgcWebSockets, TsgcChatEventTransport collega la chat a qualsiasi backend.
sgcChat: un visualizzatore Markdown nativo
Il motore che sta dietro alle bolle della chat è anche un controllo a sé. TsgcVCLMarkdownViewer e TsgcFMXMarkdownViewer mostrano titoli, enfasi, citazioni, elenchi, elenchi di attività, tabelle, link e immagini, ed evidenziano i blocchi di codice di Pascal, C#, C++, JavaScript, Python, JSON, SQL e altri linguaggi. AppendMarkdown aggiunge il testo man mano che arriva, e gli utenti selezionano e copiano il testo o un intero blocco di codice con il suo pulsante di copia. Usalo per note di rilascio, pagine di guida e messaggi scritti in Markdown.
sgcChat si integra con il resto della suite
La chat segue i temi chiaro, scuro e Fluent di sgcUI. Una conversazione in arabo o in ebraico viene rispecchiata, e i testi dei controlli sono tradotti nelle 12 lingue di sgcUI. Su Windows, la vista della chat è un elenco di messaggi per gli screen reader, con l'autore e l'ora di ogni messaggio. Il modello della conversazione, il documento Markdown e la vista non dipendono da VCL né da FireMonkey, quindi un servizio può rendere una conversazione o un documento Markdown in SVG o PNG senza finestra, anche su Linux64.
I componenti sono TsgcVCLChatPanel, TsgcVCLChatView, TsgcVCLChatInput e TsgcVCLMarkdownViewer, lo stesso insieme con il prefisso TsgcFMX per FireMonkey, e gli stessi controlli per WinForms, WPF e Avalonia, come TsgcWinFormsChatPanel, TsgcWpfChatPanel e TsgcAvaloniaChatPanel. Le demo coprono un assistente AI, un client di chat di team con il suo server relay e il visualizzatore Markdown, per VCL, FireMonkey, C++ Builder, WinForms, WPF e Avalonia.
sgcChat si vende come parte di sgcUI Enterprise e del bundle All-Access, che include anche sgcWebSockets per il provider AI e il bridge WebSocket. Consulta la pagina di sgcChat e la matrice delle funzionalità.
In tutta la suite: input, dati e output
Il resto della versione colma lacune minori in tutti i prodotti: controlli che accettano input dell'utente, data binding che segue il dataset in entrambe le direzioni e più modi per portare una schermata fuori dall'applicazione.
sgcGauges: indicatori di input e skin
Quattro indicatori di input, TsgcVCLKnobGauge, TsgcVCLSliderGauge, TsgcVCLToggleSwitchGauge e TsgcVCLPushButtonGauge (TsgcFMX su FireMonkey, e gli stessi nomi in WinForms, WPF e Avalonia), permettono all'utente di impostare un valore con il mouse, il tocco, la rotellina o la tastiera. OnUserChange scatta solo per le modifiche fatte dall'utente, e gli screen reader li vedono come cursore, interruttore e pulsante. sgcGauges ora ha sedici tipi di indicatore, contando gli indicatori di serbatoio e di simbolo di processo del pacchetto HMI qui sotto.
Skin dà a ogni indicatore un nuovo aspetto: Classic, Modern, Industrial, ISA101, Dark o una skin tua registrata con sgcGaugesRegisterSkin. TsgcGaugeDataLink mostra un campo del dataset su qualsiasi indicatore e riscrive nel campo le modifiche di un indicatore di input. Vedi le funzionalità di sgcGauges e la guida degli indicatori di input.
Data binding live e bidirezionale
I prodotti seguono un TDataSet di Delphi, o un DataTable in .NET, mentre cambia, e i prodotti di modifica riscrivono le modifiche dell'utente:
- sgcPlanner:
TsgcPlannerSource_DataSetsegnala ogni scrittura conOnWriteBack, può rifiutarne una inOnBeforeWriteBack, e riallinea il planner ai dati quando una scrittura viene rifiutata o fallisce.Throttleraggruppa le modifiche rapide eFollowCursorseleziona l'elemento del record corrente. - sgcDiagram:
TsgcDiagramDataBindingsegue i dataset dei nodi e dei collegamenti tramite Id, memorizza posizione e dimensione dei nodi e, conWriteBack, riscrive nei dati i nodi e i collegamenti che gli utenti aggiungono, spostano, modificano o eliminano. - sgcPivotGrid e sgcDashboard: la sorgente DataSet del pivot e la sorgente dati della dashboard seguono un dataset con un
Throttleche raggruppa le modifiche rapide in un unico aggiornamento.
sgcDiagram, sgcPivotGrid, sgcGauges e sgcDashboard hanno lo stesso binding in .NET. La matrice delle funzionalità di sgcUI elenca cosa include ogni edizione.
sgcPlanner: serie di Outlook, promemoria di Google e capacità
TsgcPlannerGraphSync ora importa le serie ricorrenti di Outlook come un unico elemento ricorrente con il suo RRULE, le occorrenze modificate come occorrenze modificate e quelle annullate come eccezioni, e rimanda a Outlook le serie create nel planner. TsgcPlannerGoogleSync invia a Google Calendar i promemoria modificati nel planner quando un evento viene aggiornato, e rilegge quelli modificati in Google. Una Capacity per risorsa (1 per una persona a tempo pieno, 0.5 per il part time, 3 per un team di tre) guida la linea della capacità dell'istogramma del carico, ed è letta e scritta come MaxUnits in Microsoft Project XML. Vedi le funzionalità di sgcPlanner.
sgcDashboard: pubblicazione sul web e tile mappa ovunque
SaveToHTML scrive una dashboard come un'unica pagina HTML autonoma. Ogni tile è disegnato come SVG dallo stesso codice che lo stampa, su una griglia CSS che segue i breakpoint della dashboard, e ogni tile ha un titolo e un'alternativa testuale per gli screen reader. Senza un URL di aggiornamento la pagina non contiene alcuno script. In .NET il tile mappa ora esiste anche per WPF e Avalonia, e le mappe compaiono nella stampa, nel PDF e nell'HTML della dashboard. Leggi la guida alla pubblicazione sul web e le funzionalità di sgcDashboard.
sgcMaps: disegna la mappa su qualsiasi canvas
DrawTo su TsgcVCLMap, TsgcFMXMap e sul SgcMapControl di WinForms disegna la vista corrente, con i suoi tile caricati, in un rettangolo di qualsiasi canvas sgcUI, e anche le mappe WPF e Avalonia si rendono su qualsiasi canvas sgcUI. È così che una mappa in un tile della dashboard arriva alla stampa, al PDF e alla pagina HTML. Vedi le funzionalità di sgcMaps.
sgcWizard: transizioni e pagina di riepilogo
Transition anima il cambio di pagina con uno scorrimento, una dissolvenza o entrambi, rispecchiati nei layout da destra a sinistra, e ReduceMotion segue l'impostazione di animazione di Windows. Con ShowSummary il wizard aggiunge una pagina finale che elenca i campi e i valori inseriti dall'utente in ogni pagina visitata, con le password mascherate e un link Modifica che torna a ciascuna pagina. Vedi le funzionalità di sgcWizard e la guida alla pagina di riepilogo.
sgcReports: script e anteprima FireMonkey su ogni piattaforma
TsgcReport.Script contiene procedure in un piccolo linguaggio simile a Pascal, memorizzate nella definizione del report e nel JSON. Il report esegue uno script all'avvio e al termine, e prima e dopo la stampa di ogni banda e di ogni elemento, quindi uno script può nascondere una banda o cambiare il testo, il colore del carattere o l'altezza di un elemento per la stampa corrente. I designer di VCL, FireMonkey, WinForms, WPF e Avalonia modificano lo script con un pulsante Check che mostra la riga e la colonna di un errore. L'anteprima FireMonkey funziona su Windows, macOS, iOS e Android, con pan touch e zoom a pinch, e su iOS e Android Stampa e Salva PDF aprono il foglio di condivisione del sistema. Vedi le funzionalità di sgcReports e la guida agli script.
sgcPDF per .NET: modifica delle annotazioni e compilazione dei moduli in WPF e Avalonia
I visualizzatori WPF e Avalonia ora fanno ciò che fa quello WinForms: gli utenti creano, spostano, ridimensionano, modificano ed eliminano le annotazioni con il mouse (AnnotationEditing e AnnotationTool), e con FormFilling compilano campi di testo, caselle di controllo, pulsanti di opzione, caselle combinate e caselle di riepilogo, con Tab che scorre i campi nel loro ordine di tabulazione. Vedi le funzionalità di sgcPDF.
Accessibilità verificata su ogni piattaforma
L'albero UI Automation di ogni demo dei prodotti, l'albero letto da screen reader come Narrator e NVDA, è stato verificato con un client UI Automation su VCL, FireMonkey, WinForms, WPF e Avalonia, e i problemi trovati sono stati corretti. Gli editor VCL ora annunciano l'etichetta del campo invece del suo valore, una barra di navigazione piatta è un elenco anziché un albero, le barre di stato di WinForms e WPF non prendono più il focus della tastiera, le celle della griglia Avalonia non ripetono più il nome della colonna, e i punti dei grafici e gli altri elementi disegnati dei controlli Avalonia riportano la loro posizione sullo schermo.
Smart tag di Visual Studio e XAML
Gli smart tag di tutti i 69 componenti della toolbox WinForms sono stati provati su una design surface: ogni proprietà, editor di raccolte, elenco di origini dati, azione e verbo. In WPF e Avalonia, i tile di sgcDashboard e le skin di sgcGauges si dichiarano in XAML con lo stesso prefisso sgc delle colonne, dei campi e delle serie degli altri prodotti.
sgcEditors: controllo di layout e maschere dati
Il nuovo controllo di layout, TsgcVCLLayoutControl e TsgcFMXLayoutControl (e gli stessi nomi in WinForms, WPF e Avalonia), dispone i controlli di un form in gruppi, gruppi a schede e colonne, con le etichette allineate a un'unica larghezza, divisori che l'utente può trascinare e layout da destra a sinistra. SaveLayout e LoadLayout conservano come JSON la disposizione creata dall'utente. Il controllo di layout è in ogni edizione, Community compresa. Delphi Community non ha un pacchetto in fase di progettazione per sgcEditors, quindi lì si crea nel codice.
La maschera dati si basa su di esso. TsgcVCLDataForm e TsgcFMXDataForm generano una maschera di modifica completa da un TDataSet, o dalle proprietà published di una classe con BindObject, e le maschere dati di WinForms, WPF e Avalonia accettano una DataTable, un elenco o un oggetto. Ogni campo riceve un controllo sgcEditors, le regole del validatore di sgcUICore e un posto in un gruppo o in una scheda, e un navigatore scorre, aggiunge, modifica, elimina e registra i record. Smart Paste compila l'intero record da un testo incollato tramite il livello AI che gli editor già usano, e segna i campi compilati. La maschera dati è nell'edizione Registered, su VCL, FireMonkey, C++Builder, WinForms, WPF e Avalonia:
uses
Forms, Controls, DB,
sgcUICore_AI, sgcEditors_DataForm, sgcEditors_VCL_DataForm;
function CreateCustomerForm(aOwner: TForm; aSource: TDataSource;
aProvider: TsgcUIAIProvider): TsgcVCLDataForm;
var
oField: TsgcDataFormField;
begin
Result := TsgcVCLDataForm.Create(aOwner);
Result.Parent := aOwner;
Result.Align := alClient;
// an open dataset: one field, one editor and one rule per TField
Result.DataSource := aSource;
oField := Result.Fields.FindField('EMAIL');
oField.Kind := edfEmail;
oField.Required := True;
oField.Group := 'Contact';
Result.Fields.FindField('PHONE').Group := 'Contact';
Result.RebuildEditors;
// the Smart Paste button of the navigator fills every field from the
// clipboard; without a provider a local parser reads "Name: value" lines
Result.Provider := aProvider;
end;
Vedi le funzionalità di sgcEditors e la guida della maschera dati.
Pacchetto HMI di sgcUI: serbatoi, P&ID, allarmi e un NumPad
Il pacchetto HMI porta le schermate di processo in sgcUI: pannelli operatore, parchi serbatoi, stazioni di pompaggio e altri display d'impianto. Non è un nuovo prodotto. Ogni parte vive nel prodotto che estende e ne segue l'edizione, su VCL e FireMonkey, C++Builder, e WinForms, WPF e Avalonia in .NET. Chiama sgcUIApplyISA101 una volta e ogni controllo sgcUI passa allo schema grigio ISA-101, dove il colore è riservato agli stati anomali e agli allarmi.
- sgcGauges: un indicatore di serbatoio e recipiente,
TsgcVCLTankGauge, in quattro forme con limiti HH, H, L e LL e isteresi, e un indicatore con simboli di processo,TsgcVCLSymbolGauge, che disegna una valvola, una pompa, un motore, un ventilatore, uno scambiatore di calore o un sensore come spento, acceso, guasto, aperto, chiuso o in transito, con pompe e ventilatori che girano mentre sono in funzione. Il ponte sgcGaugesWS alimenta entrambi da MQTT, WebSocket o SSE, eValueMaptrasforma i codici d'impianto comeRUNNINGin stati del simbolo. - sgcDiagram: 56 stencil P&ID nello stile ISA-5.1 per pompe, valvole, recipienti, apparecchiature di scambio termico, tubazioni e strumenti, e stati di processo e tubazioni animate tramite le regole di
TsgcDiagramStatusBinding. - sgcGrid: un elenco allarmi ISA-18.2.
TsgcGridAlarmModeltiene gli allarmi con priorità da 1 a 4 e sei stati, con Acknowledge, Shelve, filtri ed esportazione in JSON e CSV.TsgcGridAlarmLinkli mostra in una griglia con i colori delle priorità e righe lampeggianti, e il menu allarmi dà all'operatore i comandi. - sgcEditors:
TsgcVCLNumPad, un NumPad per pannelli touch, ancorato sul form o come pad a discesa, che digita negli spin edit e currency edit, in un edit standard e negli indicatori manopola e slider.
L'applicazione resta responsabile dell'impianto: porta i valori dai propri driver, da un database o dal ponte degli indicatori, e decide quando un allarme viene generato. Non c'è un driver OPC UA o Modbus. Gli indicatori di serbatoio e di simbolo di processo, l'elenco allarmi e il NumPad sono in ogni edizione, Community compresa, mentre gli stencil P&ID, gli stati di processo e le tubazioni animate, i feed degli indicatori e il registro delle conferme degli allarmi sono Registered. La demo di suite HMI mette insieme i pezzi su un piccolo parco serbatoi pilotato da un simulatore. Leggi la pagina del pacchetto HMI di sgcUI e la guida del pacchetto HMI.
Pacchetto Realtime UI di sgcUI: presenza, notifiche, feed delle attività e log in tempo reale
Il pacchetto Realtime UI dà a sgcUI i pezzi di una schermata live per Delphi, C++Builder e .NET. Non è un prodotto nuovo. Ogni pezzo vive nel prodotto che estende. sgcUICore aggiunge un modello di presenza con avatar, un gruppo di avatar e un indicatore di presenza. sgcNavigation aggiunge un centro notifiche con toast, una casella raggruppata per giorno e preferenze per categoria e canale, mentre TsgcToolbarBadgeLink di sgcToolbar mostra il numero di non lette su una voce della toolbar o del ribbon. sgcDashboard aggiunge un feed delle attività e un registro di controllo, come controlli autonomi e come riquadri della dashboard, e sgcGrid aggiunge un visualizzatore di log live con livelli, filtri, coda in primo piano, pausa ed esportazione.
Ogni modello riceve un messaggio JSON per ogni modifica. Nell'edizione Registered, le sorgenti live WebSocket, MQTT e SSE del ponte sgcUICoreWS li alimentano da sgcWebSockets senza codice. Ogni controllo arriva con l'edizione del suo prodotto. Senza un server, o in una build Community, l'applicazione aggiorna invece i modelli tramite la loro API. Leggi la pagina del pacchetto Realtime UI di sgcUI.
Guide Getting Started per ogni prodotto
Ogni prodotto sgcUI include ora cinque demo QuickStart per Delphi (VCL) e una guida Getting Started, in HTML accanto alle demo e in PDF. Le demo vanno dal primo form a una piccola applicazione completa, e la guida spiega ogni passaggio. Inizia con la guida di sgcGrid, la guida di sgcCharts o la guida di sgcChat.
Tutte le 16 guide sono elencate nella sezione guide del quick start di sgcUI.
Prova sgcChat e sgcUI 2026.11
Una versione di prova per Delphi e una per C++ Builder installano tutti i 16 prodotti sgcUI.
Domande o suggerimenti? Contattaci, riceverai una risposta dalle persone che hanno scritto il codice.
