Also on YouTube.

sgcUI 2026.11: sgcChat, AI Assistant and Team Chat for Delphi and .NET | eSeGeCe Blog

sgcUI 2026.11: sgcChat, AI Assistant and Team Chat for Delphi, C++ Builder and .NET

· Releases
sgcUI 2026.11: sgcChat, AI Assistant and Team Chat for Delphi and .NET
✦  New release · sgcUI 2026.11

Meet sgcChat.
A chat inside your application.

An AI assistant that streams its answers as formatted Markdown, and a team chat with presence, typing, read receipts and reactions. Native controls for Delphi, C++ Builder and .NET.

  • VCL
  • FireMonkey
  • WinForms
  • WPF
  • Avalonia
  • Headless SVG and PNG
An AI assistant conversation and a team chat side by side, drawn by sgcChat
16sgcUI products
4chat controls
5UI frameworks
12languages

Today we release sgcUI 2026.11. It adds a new product, sgcChat, that puts an AI assistant chat and a team chat inside your own application, and it fills a list of smaller gaps across the suite: gauges that take user input, data binding that follows the dataset both ways, a dashboard published as a web page, Outlook recurring series in the planner, scripts in reports and more.

sgcChat is the sixteenth sgcUI product. It runs on VCL and FireMonkey for Delphi and C++ Builder, and on WinForms, WPF and Avalonia for .NET, and it is included in sgcUI Enterprise and All-Access. It is not sold as a separate package.

sgcChat: an AI Assistant in Your Application

An AI answer arrives in small pieces, and users expect to read it while it is written. TsgcChatAI binds a conversation to a provider, sends the history and the system prompt, and shows each piece as formatted Markdown as soon as it arrives. The provider runs on a worker thread, so the window stays responsive, and the chat panel offers stop, regenerate, and edit and resend for every answer.

An AI assistant conversation in the sgcChat panel
The AI assistant in the chat panel.

sgcChat does not tie you to one AI vendor. TsgcChatAIProvider_AIChat connects to TsgcAIChat of sgcWebSockets, which talks to OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok and Mistral. TsgcChatAIProvider_UICore uses the AI provider layer that every sgcUI product shares, and TsgcChatAIEventProvider lets you stream from your own backend in an event. This is how a TsgcChatAI binding answers with 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;

Change Provider to use Anthropic, Gemini, DeepSeek, Ollama, Grok or Mistral. The sgcChat help has the complete quick start.

Talking to Claude, OpenAI, Gemini and the other LLM providers requires sgcWebSockets, which is included in All-Access. TsgcChatAIProvider_AIChat is in the sgcChatWS bridge package (.NET: esegece.sgcChat.sgcWebSockets). Without sgcWebSockets, TsgcChatAIEventProvider lets your own code call any AI service.

sgcChat: a Team Chat on Your Own Server

Support desks, field teams and internal tools need a chat that their users already know how to use. The chat view groups the messages of each author with an avatar and a name, shows who is online, away or busy, shows who is typing, and marks each message as sent, delivered or read. Users reply to a message, react to it, edit or delete their own messages and send attachments with image thumbnails and file chips.

A team chat with avatars, presence and read receipts in sgcChat
A team chat with presence, typing and read receipts.

The chat does not depend on one server. TsgcChatEventTransport hands every message, typing change, receipt and reaction to your code as a documented JSON frame. With sgcWebSockets, TsgcChatTransport_WebSocket connects a client and TsgcChatServer_WebSocket relays the messages between the clients of a channel, keeps the presence of each user and sends the last messages to users who join later. The relay runs in a service or a console program:

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;

Both Delphi samples above are copied unchanged from the sgcChat help samples, which were compiled with Delphi 13 (Win32) against the sgcUI and sgcWebSockets sources.

The WebSocket team chat requires sgcWebSockets, which is included in All-Access. TsgcChatTransport_WebSocket and TsgcChatServer_WebSocket are in the sgcChatWS bridge package (.NET: esegece.sgcChat.sgcWebSockets). Without sgcWebSockets, TsgcChatEventTransport connects the chat to any backend.

sgcChat: a Native Markdown Viewer

The engine behind the chat bubbles is also a control of its own. TsgcVCLMarkdownViewer and TsgcFMXMarkdownViewer show headings, emphasis, quotes, lists, task lists, tables, links and images, and highlight the code blocks of Pascal, C#, C++, JavaScript, Python, JSON, SQL and other languages. AppendMarkdown adds text as it arrives, and users select and copy the text or a whole code block with its copy button. Use it for release notes, help pages and messages written in Markdown.

The sgcChat Markdown viewer in the light theme
Markdown viewer, light
The sgcChat Markdown viewer in the dark theme
Markdown viewer, dark

sgcChat Fits the Rest of the Suite

The chat follows the light, dark and Fluent themes of sgcUI. A conversation in Arabic or Hebrew is mirrored, and the texts of the controls are translated into the 12 sgcUI languages. On Windows, the chat view is a list of messages for screen readers, with the author and the time of each message. The conversation model, the Markdown document and the view do not depend on VCL or FireMonkey, so a service can render a conversation or a Markdown document to SVG or PNG without a window, on Linux64 too.

The components are TsgcVCLChatPanel, TsgcVCLChatView, TsgcVCLChatInput and TsgcVCLMarkdownViewer, the same set with the TsgcFMX prefix for FireMonkey, and the same controls for WinForms, WPF and Avalonia, such as TsgcWinFormsChatPanel, TsgcWpfChatPanel and TsgcAvaloniaChatPanel. The demos cover an AI assistant, a team chat client with its relay server, and the Markdown viewer, for VCL, FireMonkey, C++ Builder, WinForms, WPF and Avalonia.

sgcChat is sold as part of sgcUI Enterprise and the All-Access bundle, which also includes sgcWebSockets for the AI provider and the WebSocket bridge. See the sgcChat page and the feature matrix.

Across the Suite: Input, Data and Output

The rest of the release fills smaller gaps across the products: controls that take user input, data binding that follows the dataset both ways, and more ways to get a screen out of the application.

sgcGauges: Input Gauges and Skins

Four input gauges, TsgcVCLKnobGauge, TsgcVCLSliderGauge, TsgcVCLToggleSwitchGauge and TsgcVCLPushButtonGauge (TsgcFMX on FireMonkey, and the same names in WinForms, WPF and Avalonia), let the user set a value with the mouse, touch, the wheel or the keyboard. OnUserChange fires only for changes made by the user, and screen readers see them as a slider, a toggle switch and a button. sgcGauges now has sixteen gauge types, counting the tank and process symbol gauges of the HMI pack below.

Skin gives every gauge a new look: Classic, Modern, Industrial, ISA101, Dark or a skin of your own registered with sgcGaugesRegisterSkin. TsgcGaugeDataLink shows a dataset field on any gauge and writes the changes of an input gauge back to the field. See the sgcGauges features and the input gauges help.

Live and Two Way Data Binding

The products follow a Delphi TDataSet, or a DataTable in .NET, while it changes, and the editing products write the changes of the user back:

sgcDiagram, sgcPivotGrid, sgcGauges and sgcDashboard have the same binding in .NET. The sgcUI feature matrix lists what each edition includes.

sgcPlanner: Outlook Series, Google Reminders and Capacity

TsgcPlannerGraphSync now brings Outlook recurring series in as one recurring item with its RRULE, changed occurrences as modified occurrences and cancelled ones as exceptions, and sends series made in the planner back to Outlook. TsgcPlannerGoogleSync sends reminders changed in the planner to Google Calendar when an event is updated, and reads back the ones changed in Google. A Capacity per resource (1 for one full time person, 0.5 for half time, 3 for a team of three) drives the capacity line of the load histogram, and it is read and written as MaxUnits in Microsoft Project XML. See the sgcPlanner features.

sgcDashboard: Publish to Web and the Map Tile Everywhere

SaveToHTML writes a dashboard as one self contained HTML page. Each tile is drawn as SVG by the same code that prints it, on a CSS grid that follows the breakpoints of the dashboard, and every tile has a heading and a text alternative for screen readers. Without a refresh URL the page has no script at all. In .NET the map tile now exists for WPF and Avalonia too, and maps appear in the dashboard print, PDF and HTML output. Read the publish to web help and the sgcDashboard features.

sgcMaps: Draw the Map on Any Canvas

DrawTo on TsgcVCLMap, TsgcFMXMap and the WinForms SgcMapControl draws the current view, with its tiles loaded, into a rectangle of any sgcUI canvas, and the WPF and Avalonia maps render on any sgcUI canvas too. That is how a map in a dashboard tile reaches the print, the PDF and the HTML page. See the sgcMaps features.

sgcWizard: Transitions and a Summary Page

Transition animates the change of page with a slide, a fade or both, mirrored in right to left layouts, and ReduceMotion follows the Windows animation setting. With ShowSummary the wizard adds a last page that lists the fields and the values the user entered on every visited page, with passwords masked and an Edit link that goes back to each page. See the sgcWizard features and the summary page help.

sgcReports: Scripting and the FireMonkey Preview on Every Platform

TsgcReport.Script holds procedures in a small Pascal like language, stored in the report definition and the JSON. The report runs a script when it starts and when it finishes, and each band and each item before and after it prints, so a script can hide a band or change the text, the font colour or the height of an item for the current print. The designers of VCL, FireMonkey, WinForms, WPF and Avalonia edit the script with a Check button that shows the line and column of an error. The FireMonkey preview runs on Windows, macOS, iOS and Android, with touch pan and pinch zoom, and on iOS and Android Print and Save PDF open the share sheet of the system. See the sgcReports features and the scripting help.

sgcPDF for .NET: Edit Annotations and Fill Forms in WPF and Avalonia

The WPF and Avalonia viewers now do what the WinForms viewer does: users create, move, resize, edit and delete annotations with the mouse (AnnotationEditing and AnnotationTool), and with FormFilling they fill text fields, check boxes, radio buttons, combo boxes and list boxes, with Tab moving through the fields in their tab order. See the sgcPDF features.

Accessibility Checked on Every Platform

The UI Automation tree of every product demo, the tree that screen readers such as Narrator and NVDA read, was checked with a UI Automation client on VCL, FireMonkey, WinForms, WPF and Avalonia, and the issues found were fixed. The VCL editors now announce the label of the field instead of its value, a flat navigation bar is a list rather than a tree, the WinForms and WPF status bars no longer take the keyboard focus, the cells of the Avalonia grid no longer repeat their column name, and the chart points and other drawn items of the Avalonia controls report their position on screen.

Visual Studio Smart Tags and XAML

The smart tags of all 69 WinForms toolbox components were tested on a design surface: every property, collection editor, data source list, action and verb. In WPF and Avalonia, the tiles of sgcDashboard and the skins of sgcGauges are declared in XAML under the same sgc prefix as the columns, fields and series of the other products.

sgcEditors: Layout Control and Data Forms

The new layout control, TsgcVCLLayoutControl and TsgcFMXLayoutControl (and the same names in WinForms, WPF and Avalonia), arranges the controls of a form in groups, tabbed groups and columns, with the captions aligned to one width, splitters the user can drag and right to left layouts. SaveLayout and LoadLayout keep the arrangement the user made as JSON. The layout control is in every edition, Community included. Delphi Community has no design time package for sgcEditors, so there it is created in code.

The data form builds on it. TsgcVCLDataForm and TsgcFMXDataForm generate a complete edit form from a TDataSet, or from the published properties of a class with BindObject, and the WinForms, WPF and Avalonia data forms take a DataTable, a list or an object. Each field gets an sgcEditors control, the rules of the sgcUICore validator and a place in a group or a tab, and a navigator browses, adds, edits, deletes and posts the records. Smart Paste fills the whole record from a pasted text through the AI layer the editors already use, and marks the fields it filled. The data form is in the Registered edition, on VCL, FireMonkey, C++Builder, WinForms, WPF and 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;

See the sgcEditors features and the data form help.

sgcUI HMI Pack: Tanks, P&ID, Alarms and a NumPad

The HMI pack brings process screens to sgcUI: operator panels, tank farms, pumping stations and other plant displays. It is not a new product. Each piece lives in the product it extends and follows its edition, on VCL and FireMonkey, C++Builder, and WinForms, WPF and Avalonia in .NET. Call sgcUIApplyISA101 once and every sgcUI control switches to the grey ISA-101 scheme, where colour is kept for abnormal states and alarms.

The application stays in charge of the plant: it brings the values from its own drivers, a database or the gauge bridge, and it decides when an alarm is raised. There is no OPC UA or Modbus driver. The tank and process symbol gauges, the alarm list and the NumPad are in every edition, Community included, while the P&ID stencils, the process states and animated pipes, the gauge feeds and the alarm acknowledge log are Registered. The HMI suite demo puts the pieces together on a small tank farm driven by a simulator. Read the sgcUI HMI Pack page and the HMI pack help.

sgcUI Realtime UI Pack: Presence, Notifications, Activity Feeds and Live Logs

The Realtime UI pack gives sgcUI the pieces of a live screen for Delphi, C++Builder and .NET. It is not a new product. Each piece lives in the product it extends. sgcUICore adds a presence model with avatars, an avatar group and a presence indicator. sgcNavigation adds a notification center with toasts, an inbox grouped by day and preferences per category and channel, while TsgcToolbarBadgeLink of sgcToolbar shows the unread count on a toolbar or ribbon item. sgcDashboard adds an activity feed and an audit trail, as standalone controls and as dashboard tiles, and sgcGrid adds a live log viewer with levels, filters, a follow tail, pause and export.

Every model takes one JSON message per change. In the Registered edition, the WebSocket, MQTT and SSE live sources of the sgcUICoreWS bridge feed them from sgcWebSockets with no code. Each control comes with the edition of its product. Without a server, or in a Community build, the application updates the models through their API. Read the sgcUI Realtime UI Pack page.

Getting Started Guides for Every Product

Every sgcUI product now ships five QuickStart demos for Delphi (VCL) and a Getting Started guide, in HTML next to the demos and as a PDF. The demos go from the first form to a small complete application, and the guide explains each step. Start with the sgcGrid guide, the sgcCharts guide or the sgcChat guide.

All 16 guides are listed in the guides section of the sgcUI quick start.

Try sgcChat and sgcUI 2026.11

One trial for Delphi and one for C++ Builder install all 16 sgcUI products.

Questions or feedback? Get in touch, you will get a reply from the people who wrote the code.