Également sur YouTube.

sgcUI 2026.11 : sgcChat, assistant IA et chat d'équipe pour Delphi et .NET | Blog eSeGeCe

sgcUI 2026.11 : sgcChat, assistant IA et chat d'équipe pour Delphi, C++ Builder et .NET

· Versions
sgcUI 2026.11 : sgcChat, assistant IA et chat d'équipe pour Delphi et .NET | Blog eSeGeCe
✦  Nouvelle version · sgcUI 2026.11

Découvrez sgcChat.
Un chat dans votre application.

Un assistant IA dont les réponses arrivent en Markdown mis en forme au fil de l'eau, et un chat d'équipe avec présence, saisie en cours, accusés de lecture et réactions. Des contrôles natifs pour Delphi, C++ Builder et .NET.

  • VCL
  • FireMonkey
  • WinForms
  • WPF
  • Avalonia
  • SVG et PNG sans fenêtre
Une conversation avec un assistant IA et un chat d'équipe côte à côte, dessinés par sgcChat
16produits sgcUI
4contrôles de chat
5frameworks d'interface
12langues

Nous publions aujourd'hui sgcUI 2026.11. Cette version ajoute un nouveau produit, sgcChat, qui place un chat d'assistant IA et un chat d'équipe dans votre propre application, et comble une série de petites lacunes dans toute la suite : des jauges qui acceptent une saisie, une liaison de données qui suit le jeu de données dans les deux sens, un tableau de bord publié sous forme de page web, les séries récurrentes Outlook dans le planificateur, des scripts dans les rapports et plus encore.

sgcChat est le seizième produit sgcUI. Il fonctionne avec VCL et FireMonkey pour Delphi et C++ Builder, et avec WinForms, WPF et Avalonia pour .NET, et il est inclus dans sgcUI Enterprise et All-Access. Il n'est pas vendu comme paquet séparé.

sgcChat : un assistant IA dans votre application

Une réponse d'IA arrive par petits morceaux, et les utilisateurs veulent la lire pendant qu'elle s'écrit. TsgcChatAI lie une conversation à un fournisseur, envoie l'historique et le prompt système, puis affiche chaque morceau en Markdown mis en forme dès son arrivée. Le fournisseur s'exécute dans un thread de travail, la fenêtre reste donc réactive, et le panneau de chat propose pour chaque réponse d'arrêter, de régénérer, et de modifier puis renvoyer.

Une conversation avec un assistant IA dans le panneau sgcChat
L'assistant IA dans le panneau de chat.

sgcChat ne vous enferme pas chez un seul fournisseur d'IA. TsgcChatAIProvider_AIChat se connecte à TsgcAIChat de sgcWebSockets, qui dialogue avec OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok et Mistral. TsgcChatAIProvider_UICore utilise la couche de fournisseurs d'IA que partagent tous les produits sgcUI, et TsgcChatAIEventProvider vous permet de diffuser depuis votre propre backend dans un événement. Voici comment une liaison TsgcChatAI répond avec 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;

Changez Provider pour utiliser Anthropic, Gemini, DeepSeek, Ollama, Grok ou Mistral. L'aide de sgcChat propose le guide de démarrage complet.

Le dialogue avec Claude, OpenAI, Gemini et les autres fournisseurs de LLM nécessite sgcWebSockets, inclus dans All-Access. TsgcChatAIProvider_AIChat se trouve dans le paquet de passerelle sgcChatWS (.NET : esegece.sgcChat.sgcWebSockets). Sans sgcWebSockets, TsgcChatAIEventProvider permet à ton propre code d'appeler n'importe quel service IA.

sgcChat : un chat d'équipe sur votre propre serveur

Les services d'assistance, les équipes de terrain et les outils internes ont besoin d'un chat que leurs utilisateurs savent déjà utiliser. La vue de chat regroupe les messages de chaque auteur avec un avatar et un nom, indique qui est en ligne, absent ou occupé, montre qui est en train d'écrire, et marque chaque message comme envoyé, remis ou lu. Les utilisateurs répondent à un message, y réagissent, modifient ou suppriment leurs propres messages et envoient des pièces jointes avec des miniatures d'images et des pastilles de fichier.

Un chat d'équipe avec avatars, présence et accusés de lecture dans sgcChat
Un chat d'équipe avec présence, saisie en cours et accusés de lecture.

Le chat ne dépend pas d'un serveur en particulier. TsgcChatEventTransport transmet à votre code chaque message, changement de saisie, accusé et réaction sous la forme d'une trame JSON documentée. Avec sgcWebSockets, TsgcChatTransport_WebSocket connecte un client et TsgcChatServer_WebSocket relaie les messages entre les clients d'un canal, tient à jour la présence de chaque utilisateur et envoie les derniers messages à ceux qui rejoignent la conversation plus tard. Le relais s'exécute dans un service ou un programme 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;

Les deux exemples Delphi ci-dessus sont copiés tels quels des exemples de l'aide de sgcChat, qui ont été compilés avec Delphi 13 (Win32) avec les sources de sgcUI et de sgcWebSockets.

Le chat d'équipe par WebSocket nécessite sgcWebSockets, inclus dans All-Access. TsgcChatTransport_WebSocket et TsgcChatServer_WebSocket se trouvent dans le paquet de passerelle sgcChatWS (.NET : esegece.sgcChat.sgcWebSockets). Sans sgcWebSockets, TsgcChatEventTransport connecte le chat à n'importe quel backend.

sgcChat : un visualiseur Markdown natif

Le moteur qui se cache derrière les bulles du chat est aussi un contrôle à part entière. TsgcVCLMarkdownViewer et TsgcFMXMarkdownViewer affichent les titres, l'emphase, les citations, les listes, les listes de tâches, les tableaux, les liens et les images, et colorent les blocs de code en Pascal, C#, C++, JavaScript, Python, JSON, SQL et d'autres langages. AppendMarkdown ajoute du texte au fur et à mesure de son arrivée, et les utilisateurs sélectionnent et copient le texte ou un bloc de code entier avec son bouton de copie. Utilisez-le pour les notes de version, les pages d'aide et les messages rédigés en Markdown.

Le visualiseur Markdown de sgcChat avec le thème clair
Visualiseur Markdown, clair
Le visualiseur Markdown de sgcChat avec le thème sombre
Visualiseur Markdown, sombre

sgcChat s'intègre au reste de la suite

Le chat suit les thèmes clair, sombre et Fluent de sgcUI. Une conversation en arabe ou en hébreu est inversée, et les textes des contrôles sont traduits dans les 12 langues de sgcUI. Sous Windows, la vue de chat est une liste de messages pour les lecteurs d'écran, avec l'auteur et l'heure de chaque message. Le modèle de conversation, le document Markdown et la vue ne dépendent ni de VCL ni de FireMonkey : un service peut donc produire une conversation ou un document Markdown en SVG ou en PNG sans fenêtre, y compris sous Linux64.

Les composants sont TsgcVCLChatPanel, TsgcVCLChatView, TsgcVCLChatInput et TsgcVCLMarkdownViewer, le même jeu avec le préfixe TsgcFMX pour FireMonkey, et les mêmes contrôles pour WinForms, WPF et Avalonia, comme TsgcWinFormsChatPanel, TsgcWpfChatPanel et TsgcAvaloniaChatPanel. Les démos couvrent un assistant IA, un client de chat d'équipe avec son serveur relais, et le visualiseur Markdown, pour VCL, FireMonkey, C++ Builder, WinForms, WPF et Avalonia.

sgcChat est vendu avec sgcUI Enterprise et le pack All-Access, qui inclut aussi sgcWebSockets pour le fournisseur d'IA et la passerelle WebSocket. Consultez la page de sgcChat et la matrice des fonctionnalités.

Dans toute la suite : saisie, données et sortie

Le reste de la version comble des lacunes plus petites dans les produits : des contrôles qui acceptent une saisie, une liaison de données qui suit le jeu de données dans les deux sens, et davantage de façons de sortir un écran de l'application.

sgcGauges : jauges de saisie et habillages

Quatre jauges de saisie, TsgcVCLKnobGauge, TsgcVCLSliderGauge, TsgcVCLToggleSwitchGauge et TsgcVCLPushButtonGauge (TsgcFMX sous FireMonkey, et les mêmes noms dans WinForms, WPF et Avalonia), permettent à l'utilisateur de définir une valeur avec la souris, le tactile, la molette ou le clavier. OnUserChange ne se déclenche que pour les changements faits par l'utilisateur, et les lecteurs d'écran les voient comme un curseur, un interrupteur et un bouton. sgcGauges compte désormais seize types de jauges, en comptant les jauges de réservoir et de symboles de process du pack HMI ci-dessous.

Skin donne à chaque jauge un nouvel aspect : Classic, Modern, Industrial, ISA101, Dark ou un habillage de votre cru enregistré avec sgcGaugesRegisterSkin. TsgcGaugeDataLink affiche un champ de jeu de données sur n'importe quelle jauge et réécrit dans le champ les changements d'une jauge de saisie. Consultez les fonctionnalités de sgcGauges et l'aide sur les jauges de saisie.

Liaison de données en direct et bidirectionnelle

Les produits suivent un TDataSet Delphi, ou un DataTable en .NET, pendant qu'il change, et les produits d'édition réécrivent les modifications de l'utilisateur :

sgcDiagram, sgcPivotGrid, sgcGauges et sgcDashboard disposent de la même liaison en .NET. La matrice des fonctionnalités de sgcUI indique ce que contient chaque édition.

sgcPlanner : séries Outlook, rappels Google et capacité

TsgcPlannerGraphSync importe désormais les séries récurrentes Outlook sous la forme d'un seul élément récurrent avec sa RRULE, les occurrences modifiées comme occurrences modifiées et les occurrences annulées comme exceptions, et renvoie vers Outlook les séries créées dans le planificateur. TsgcPlannerGoogleSync envoie à Google Agenda les rappels modifiés dans le planificateur lors de la mise à jour d'un événement, et relit ceux qui ont été modifiés dans Google. Une Capacity par ressource (1 pour une personne à temps plein, 0.5 pour un mi-temps, 3 pour une équipe de trois) pilote la ligne de capacité de l'histogramme de charge, et elle est lue et écrite en tant que MaxUnits dans le XML de Microsoft Project. Consultez les fonctionnalités de sgcPlanner.

sgcDashboard : publication sur le web et tuile de carte partout

SaveToHTML écrit un tableau de bord sous la forme d'une seule page HTML autonome. Chaque tuile est dessinée en SVG par le même code que celui qui l'imprime, sur une grille CSS qui suit les points de rupture du tableau de bord, et chaque tuile a un titre et une alternative textuelle pour les lecteurs d'écran. Sans URL de rafraîchissement, la page ne contient aucun script. En .NET, la tuile de carte existe désormais aussi pour WPF et Avalonia, et les cartes apparaissent dans l'impression, le PDF et le HTML du tableau de bord. Lisez l'aide sur la publication sur le web et les fonctionnalités de sgcDashboard.

sgcMaps : dessiner la carte sur n'importe quel canevas

DrawTo sur TsgcVCLMap, TsgcFMXMap et sur le SgcMapControl de WinForms dessine la vue courante, avec ses tuiles chargées, dans un rectangle de n'importe quel canevas sgcUI, et les cartes WPF et Avalonia s'affichent aussi sur n'importe quel canevas sgcUI. C'est ainsi qu'une carte placée dans une tuile de tableau de bord arrive dans l'impression, le PDF et la page HTML. Consultez les fonctionnalités de sgcMaps.

sgcWizard : transitions et page de synthèse

Transition anime le changement de page avec un glissement, un fondu ou les deux, inversé dans les dispositions de droite à gauche, et ReduceMotion suit le réglage d'animation de Windows. Avec ShowSummary, l'assistant ajoute une dernière page qui liste les champs et les valeurs saisis par l'utilisateur sur chaque page visitée, avec les mots de passe masqués et un lien Modifier qui revient à chaque page. Consultez les fonctionnalités de sgcWizard et l'aide sur la page de synthèse.

sgcReports : scripts et aperçu FireMonkey sur toutes les plateformes

TsgcReport.Script contient des procédures dans un petit langage proche de Pascal, stockées dans la définition du rapport et dans le JSON. Le rapport exécute un script à son début et à sa fin, ainsi que pour chaque bande et chaque élément avant et après son impression, si bien qu'un script peut masquer une bande ou changer le texte, la couleur de police ou la hauteur d'un élément pour l'impression en cours. Les concepteurs de VCL, FireMonkey, WinForms, WPF et Avalonia modifient le script avec un bouton Vérifier qui indique la ligne et la colonne d'une erreur. L'aperçu FireMonkey fonctionne sous Windows, macOS, iOS et Android, avec panoramique tactile et zoom par pincement, et sous iOS et Android, Imprimer et Enregistrer en PDF ouvrent la feuille de partage du système. Consultez les fonctionnalités de sgcReports et l'aide sur les scripts.

sgcPDF pour .NET : modifier les annotations et remplir les formulaires dans WPF et Avalonia

Les visualiseurs WPF et Avalonia font désormais ce que fait celui de WinForms : les utilisateurs créent, déplacent, redimensionnent, modifient et suppriment des annotations avec la souris (AnnotationEditing et AnnotationTool), et avec FormFilling ils remplissent les champs de texte, les cases à cocher, les boutons radio, les listes déroulantes et les listes, la touche Tab parcourant les champs dans leur ordre de tabulation. Consultez les fonctionnalités de sgcPDF.

Accessibilité vérifiée sur toutes les plateformes

L'arbre UI Automation de chaque démo de produit, l'arbre que lisent les lecteurs d'écran comme Narrator et NVDA, a été vérifié avec un client UI Automation sur VCL, FireMonkey, WinForms, WPF et Avalonia, et les problèmes trouvés ont été corrigés. Les éditeurs VCL annoncent désormais l'étiquette du champ plutôt que sa valeur, une barre de navigation plate est une liste et non un arbre, les barres d'état WinForms et WPF ne prennent plus le focus du clavier, les cellules de la grille Avalonia ne répètent plus le nom de leur colonne, et les points de graphique et les autres éléments dessinés des contrôles Avalonia indiquent leur position à l'écran.

Balises actives de Visual Studio et XAML

Les balises actives des 69 composants de la boîte à outils WinForms ont été testées sur une surface de conception : chaque propriété, éditeur de collection, liste de sources de données, action et verbe. Dans WPF et Avalonia, les tuiles de sgcDashboard et les habillages de sgcGauges se déclarent en XAML sous le même préfixe sgc que les colonnes, les champs et les séries des autres produits.

sgcEditors : contrôle de mise en page et formulaires de données

Le nouveau contrôle de mise en page, TsgcVCLLayoutControl et TsgcFMXLayoutControl (et les mêmes noms en WinForms, WPF et Avalonia), organise les contrôles d'une fiche en groupes, groupes à onglets et colonnes, avec les libellés alignés sur une même largeur, des séparateurs que l'utilisateur peut faire glisser et des mises en page de droite à gauche. SaveLayout et LoadLayout conservent en JSON la disposition faite par l'utilisateur. Le contrôle de mise en page est dans toutes les éditions, Community comprise. Delphi Community n'a pas de package de conception pour sgcEditors, il y est donc créé en code.

Le formulaire de données s'appuie dessus. TsgcVCLDataForm et TsgcFMXDataForm génèrent un formulaire d'édition complet à partir d'un TDataSet, ou des propriétés published d'une classe avec BindObject, et les formulaires de données WinForms, WPF et Avalonia acceptent une DataTable, une liste ou un objet. Chaque champ reçoit un contrôle sgcEditors, les règles du validateur de sgcUICore et une place dans un groupe ou un onglet, et un navigateur parcourt, ajoute, modifie, supprime et valide les enregistrements. Smart Paste remplit tout l'enregistrement à partir d'un texte collé, via la couche d'IA que les éditeurs utilisent déjà, et signale les champs qu'il a remplis. Le formulaire de données est dans l'édition Enregistrée, sur VCL, FireMonkey, C++Builder, WinForms, WPF et 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;

Voir les fonctionnalités de sgcEditors et l'aide du formulaire de données.

Pack HMI de sgcUI : réservoirs, P&ID, alarmes et NumPad

Le pack HMI apporte à sgcUI les écrans de process : panneaux d'opérateur, parcs de réservoirs, stations de pompage et autres affichages d'installation. Ce n'est pas un nouveau produit. Chaque élément vit dans le produit qu'il étend et suit son édition, sur VCL et FireMonkey, C++Builder, et WinForms, WPF et Avalonia en .NET. Appelle sgcUIApplyISA101 une fois et tous les contrôles sgcUI passent au schéma gris ISA-101, où la couleur est réservée aux états anormaux et aux alarmes.

L'application garde la main sur l'installation : elle apporte les valeurs depuis ses propres pilotes, une base de données ou le pont des jauges, et elle décide quand une alarme est déclenchée. Il n'y a pas de pilote OPC UA ou Modbus. Les jauges de réservoir et de symboles de process, la liste d'alarmes et le NumPad sont dans toutes les éditions, Community comprise, tandis que les gabarits P&ID, les états de process et les tuyaux animés, les flux des jauges et le journal des acquittements d'alarmes sont de l'édition Enregistrée. La démo de suite HMI assemble les éléments sur un petit parc de réservoirs piloté par un simulateur. Lis la page du pack HMI de sgcUI et l'aide du pack HMI.

Pack Realtime UI de sgcUI : présence, notifications, flux d'activité et journaux en direct

Le pack Realtime UI donne à sgcUI les éléments d'un écran en direct pour Delphi, C++Builder et .NET. Ce n'est pas un nouveau produit. Chaque élément vit dans le produit qu'il étend. sgcUICore ajoute un modèle de présence avec des avatars, un groupe d'avatars et un indicateur de présence. sgcNavigation ajoute un centre de notifications avec des toasts, une boîte de réception groupée par jour et des préférences par catégorie et par canal, tandis que TsgcToolbarBadgeLink de sgcToolbar affiche le nombre de non lues sur un élément de barre d'outils ou de ruban. sgcDashboard ajoute un flux d'activité et une piste d'audit, comme contrôles autonomes et comme tuiles de tableau de bord, et sgcGrid ajoute une visionneuse de journal en direct avec niveaux, filtres, suivi de la fin, pause et export.

Chaque modèle reçoit un message JSON par changement. Dans l'édition Enregistrée, les sources en direct WebSocket, MQTT et SSE du pont sgcUICoreWS les alimentent depuis sgcWebSockets sans code. Chaque contrôle vient avec l'édition de son produit. Sans serveur, ou dans un build Community, l'application met à la place les modèles à jour par leur API. Lis la page du pack Realtime UI de sgcUI.

Des guides Getting Started pour chaque produit

Chaque produit sgcUI livre désormais cinq démos QuickStart pour Delphi (VCL) et un guide Getting Started, en HTML à côté des démos et en PDF (en anglais). Les démos vont du premier formulaire à une petite application complète, et le guide explique chaque étape. Commencez par le guide sgcGrid, le guide sgcCharts ou le guide sgcChat.

Les 16 guides sont listés dans la section guides du démarrage rapide sgcUI.

Essayez sgcChat et sgcUI 2026.11

Un essai pour Delphi et un pour C++ Builder installent les 16 produits sgcUI.

Des questions ou des commentaires ? Contactez-nous, vous recevrez une réponse de la part des personnes qui ont écrit le code.