sgcChat Feature Matrix
Everything sgcChat does, grouped by task. sgcChat is part of sgcUI Enterprise and All-Access, every feature is in every license, and there is no Community edition.
Everything sgcChat does, grouped by task. sgcChat is part of sgcUI Enterprise and All-Access, every feature is in every license, and there is no Community edition.
4 controls
6 features
6 features
6 features
6 features
4 features
4 features
SVG and PNG
Delphi, C++ Builder and .NET
| Control | Details |
|---|---|
| Chat panel | TsgcVCLChatPanel and TsgcFMXChatPanel combine a header with the title, the avatar and the presence, the chat view and the chat input. Set AI for an assistant or Transport for a team chat, and the panel sends, stops, regenerates, edits, deletes and reacts through it. |
| Chat view | TsgcVCLChatView and TsgcFMXChatView show a TsgcChatConversation as message bubbles. |
| Chat input | TsgcVCLChatInput and TsgcFMXChatInput: a multi line input with an attach button and a send button that turns into a stop button while an answer streams. |
| Markdown viewer | TsgcVCLMarkdownViewer and TsgcFMXMarkdownViewer show Markdown on their own, without a conversation. |
| Feature | Details |
|---|---|
| Markdown | Headings, emphasis, code spans, quotes, nested lists, task lists, links, images and tables, read by the Markdown engine of sgcRichEdit. |
| Code blocks | Syntax highlight for Pascal, C#, C++, C, JavaScript, TypeScript, Python, JSON, SQL, XML and HTML, and Bash, with a copy button on every block. |
| Streaming | AppendMarkdown adds text as it arrives and Flush shows the pending text at once. A code block or a table that is not closed yet is shown as it grows. |
| Selection and clipboard | Select with the mouse or the keyboard, copy with Ctrl+C, and a context menu with Copy and Select all. |
| Links and images | The OnLinkClick event decides what a link opens; the OnGetImage event supplies the images. |
| Themes | Text, link, code block and quote colours come from the sgcUI theme. |
| Feature | Details |
|---|---|
| Message bubbles | Own messages on one side and the others on the other, with avatar, author name, time, status ticks and date separators. Consecutive messages of one author are grouped. |
| Options | ShowAvatars, ShowTimestamps, ShowStatus, GroupMessages, ShowDateSeparators and BubbleMaxWidthPercent. |
| Message actions | Copy, reply, edit, regenerate and delete, reported by the OnMessageAction event. |
| Large conversations | Only the visible messages are measured, and the layout of each message is cached, so long conversations scroll smoothly. |
| Scrolling | The view stays at the bottom while an answer streams, unless the user scrolled up; a pill then shows that new messages arrived. |
| Input | Enter sends and Shift+Enter starts a new line, configurable. Pending attachments are shown as chips, and a placeholder text is shown when the input is empty. |
| Feature | Details |
|---|---|
| AI binding | TsgcChatAI connects a conversation to a provider with SystemPrompt, Model, MaxHistory and the OnBeforeSend, OnAnswer, OnError and OnToolCall events. |
| Streaming | The provider runs on a worker thread; each piece of the answer is shown on the main thread as formatted Markdown. |
| Stop, regenerate, edit and resend | Stop ends a running answer, Regenerate asks again, and EditAndResend changes a question and asks again from that point. |
| Tool calls | Tool call cards with the tool name, the arguments, the result and a running, done or error state; users expand and collapse each card. |
| Providers | TsgcChatAIProvider_AIChat over TsgcAIChat of sgcWebSockets (OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok and Mistral), TsgcChatAIProvider_UICore over the sgcUI AI provider layer, and TsgcChatAIEventProvider for your own backend. |
| History | SaveToJSON, LoadFromJSON, SaveToFile and LoadFromFile keep the conversation between sessions. |
| Feature | Details |
|---|---|
| Users and avatars | Each user has a name, initials or an avatar image and a colour. |
| Presence | Online, away, busy and offline, shown as a dot on the avatar and in the panel header. |
| Typing | A typing indicator with the name of the user; a user who stops sending typing changes is cleared after TypingTimeout. |
| Read receipts | Sending, sent, delivered, read and failed states, and in group conversations how many users read a message. |
| Reactions and replies | Emoji reactions with a count per emoji, and replies that quote the original message. |
| Attachments, edit and delete | Image thumbnails and file chips, edited messages marked as edited, and deleted messages. |
| Feature | Details |
|---|---|
| Event transport | TsgcChatEventTransport hands messages, typing changes, receipts, reactions, presence, edits and deletes to your code, for any backend. |
| Wire format | A documented JSON frame per event, with acknowledgement, retry and duplicate detection; the changes are applied to the conversation on the main thread. |
| WebSocket client | TsgcChatTransport_WebSocket connects a conversation to a channel through a TsgcWebSocketClient of sgcWebSockets. |
| Relay server | TsgcChatServer_WebSocket relays messages between the clients of a channel through a TsgcWebSocketServer, keeps the presence of each user and sends the last messages to users who join later. |
| Feature | Details |
|---|---|
| Themes | The light, dark and Fluent themes of sgcUI, shared with the other sgcUI products. |
| Right to left | Conversations in Arabic and Hebrew are mirrored, with the own messages on the left. |
| Localization | The texts of the controls in 12 languages: English, Spanish, German, French, Italian, Portuguese (Brazil), Dutch, Polish, Turkish, Japanese, Korean and Chinese. |
| Accessibility | On Windows, UI Automation exposes the chat view as a list of messages with author and time, the Markdown viewer as a document with its text, and the input as an edit box. |
| Feature | Details |
|---|---|
| No window needed | TsgcChatMarkdownDocument and TsgcChatViewCore lay out and paint a Markdown document or a conversation without VCL or FireMonkey. |
| SVG and PNG | Paint on the sgcUI SVG canvas or on the raster canvas and save an SVG or a PNG file. The pictures on the sgcChat product page are made this way. |
| Linux64 | The framework neutral units compile for Linux64 from Delphi 10.2. |
| Target | Components | Versions |
|---|---|---|
| VCL | TsgcVCLChatPanel, TsgcVCLChatView, TsgcVCLChatInput, TsgcVCLMarkdownViewer | Delphi 7 to 13, C++ Builder 2007 to 13 |
| FireMonkey | TsgcFMXChatPanel, TsgcFMXChatView, TsgcFMXChatInput, TsgcFMXMarkdownViewer | Delphi and C++ Builder XE6 and later |
| Linux64 | Model, Markdown document, view, AI and transport cores, SVG and PNG output | Delphi 10.2 and later |
| sgcWebSockets bridge | TsgcChatAIProvider_AIChat, TsgcChatTransport_WebSocket, TsgcChatServer_WebSocket | Every Delphi version that sgcWebSockets supports |
| WinForms | TsgcWinFormsChatPanel and the other WinForms controls | .NET Framework 4.7.2, .NET 8, 9 and 10 on Windows |
| WPF | TsgcWpfChatPanel and the other WPF controls | .NET Framework 4.7.2, .NET 8, 9 and 10 on Windows |
| Avalonia | TsgcAvaloniaChatPanel and the other Avalonia controls | .NET 8, 9 and 10 |
A C# port with the same class and member names. The packages are Registered only and are not published on nuget.org.
| Package | Edition | Contents |
|---|---|---|
esegece.sgcChat | Registered | Conversation model, Markdown document, view and input cores, AI binding, transports and SVG output |
esegece.sgcChat.Rendering | Registered | The rendering layer of the controls and PNG output |
esegece.sgcChat.WinForms | Registered | Windows Forms controls |
esegece.sgcChat.Wpf | Registered | WPF controls |
esegece.sgcChat.Avalonia | Registered | Avalonia controls |
esegece.sgcChat.sgcWebSockets | Registered | AI provider, WebSocket transport and relay server over sgcWebSockets .NET |
sgcChat is documented in the sgcUI help, with one build for each development environment.
The complete sgcUI help as a PDF file, to read offline or print.
Delphi (PDF) →