YouTube でもご覧いただけます。

sgcUI 2026.11: Delphi と .NET 向け sgcChat、AIアシスタントとチームチャット | eSeGeCe ブログ

sgcUI 2026.11: Delphi、C++ Builder、.NET 向け sgcChat、AIアシスタントとチームチャット

· リリース
sgcUI 2026.11: Delphi と .NET 向け sgcChat、AIアシスタントとチームチャット | eSeGeCe ブログ
✦  新リリース · sgcUI 2026.11

sgcChat の登場。
アプリケーションの中にチャットを。

回答を整形済み Markdown でストリーミング表示する AIアシスタントと、プレゼンス、入力中表示、既読、リアクションを備えたチームチャット。Delphi、C++ Builder、.NET 向けのネイティブコントロールです。

  • VCL
  • FireMonkey
  • WinForms
  • WPF
  • Avalonia
  • ヘッドレス SVG と PNG
sgcChat が描画した、AIアシスタントの会話とチームチャットを並べた画面
16sgcUI 製品
4チャットコントロール
5UIフレームワーク
12言語

sgcUI 2026.11 をリリースしました。新製品 sgcChat は、AIアシスタントチャットとチームチャットをお客様のアプリケーションの中に組み込みます。あわせて、ユーザー入力を受け付けるゲージ、データセットに双方向で追従するデータバインディング、Web ページとして公開できるダッシュボード、プランナーでの Outlook 定期的な予定、レポートのスクリプトなど、スイート全体の細かな不足を埋めました。

sgcChat は 16 番目の sgcUI 製品です。Delphi と C++ Builder では VCL と FireMonkey、.NET では WinForms、WPF、Avalonia で動作し、sgcUI Enterprise と All-Access に含まれます。単独のパッケージとしては販売されません。

sgcChat: アプリケーションの中の AIアシスタント

AI の回答は少しずつ届き、ユーザーは書かれている途中から読み始めることを期待します。TsgcChatAI は会話をプロバイダーに結び付け、履歴とシステムプロンプトを送信し、届いた断片をすぐに整形済み Markdown として表示します。プロバイダーはワーカースレッドで動作するためウィンドウの応答性は保たれ、チャットパネルにはすべての回答に対して停止、再生成、編集して再送信の操作が用意されています。

sgcChat パネルでの AIアシスタントの会話
チャットパネルの AIアシスタント。

sgcChat は特定の AI ベンダーに縛られません。TsgcChatAIProvider_AIChat は sgcWebSockets の TsgcAIChat に接続し、OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral と通信します。TsgcChatAIProvider_UICore はすべての sgcUI 製品が共有する AI プロバイダー層を使い、TsgcChatAIEventProvider ではイベント内で独自のバックエンドからストリーミングできます。次は、TsgcChatAI のバインディングが 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;

Provider を変更すれば、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral も使えます。完全なクイックスタートは sgcChat ヘルプにあります。

Claude、OpenAI、Gemini などの LLM プロバイダーとの通信には、All-Access に含まれる sgcWebSockets が必要です。TsgcChatAIProvider_AIChat は sgcChatWS ブリッジパッケージ (.NET: esegece.sgcChat.sgcWebSockets) に含まれます。sgcWebSockets を使わない場合は、TsgcChatAIEventProvider により、独自のコードから任意の AI サービスを呼び出せます。

sgcChat: 自社サーバー上のチームチャット

サポートデスク、現場チーム、社内ツールには、ユーザーがすでに使い方を知っているチャットが必要です。チャットビューは、投稿者ごとのメッセージをアバターと名前でまとめ、オンライン、離席中、取り込み中の状態と入力中のユーザーを表示し、各メッセージを送信済み、配信済み、既読として示します。ユーザーはメッセージへの返信やリアクション、自分のメッセージの編集や削除、画像サムネイルとファイルチップ付きの添付ファイルの送信ができます。

sgcChat のアバター、プレゼンス、既読表示付きチームチャット
プレゼンス、入力中表示、既読を備えたチームチャット。

チャットは特定のサーバーに依存しません。TsgcChatEventTransport は、すべてのメッセージ、入力状態の変化、既読、リアクションを、仕様が公開された JSON フレームとしてお客様のコードに渡します。sgcWebSockets を使う場合は、TsgcChatTransport_WebSocket がクライアントを接続し、TsgcChatServer_WebSocket がチャンネル内のクライアント間でメッセージを中継し、各ユーザーのプレゼンスを保持して、後から参加したユーザーに直近のメッセージを送ります。中継はサービスまたはコンソールプログラムで動作します。

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;

上の 2 つの Delphi サンプルは、sgcChat ヘルプのサンプルをそのままコピーしたものです。これらは Delphi 13 (Win32) で、sgcUI と sgcWebSockets のソースに対してコンパイル済みです。

WebSocket によるチームチャットには、All-Access に含まれる sgcWebSockets が必要です。TsgcChatTransport_WebSocket と TsgcChatServer_WebSocket は sgcChatWS ブリッジパッケージ (.NET: esegece.sgcChat.sgcWebSockets) に含まれます。sgcWebSockets を使わない場合は、TsgcChatEventTransport で任意のバックエンドにチャットを接続できます。

sgcChat: ネイティブ Markdown ビューア

チャットの吹き出しの裏で動くエンジンは、独立したコントロールとしても使えます。TsgcVCLMarkdownViewer と TsgcFMXMarkdownViewer は、見出し、強調、引用、リスト、タスクリスト、表、リンク、画像を表示し、Pascal、C#、C++、JavaScript、Python、JSON、SQL などのコードブロックを構文ハイライトします。AppendMarkdown は届いたテキストを順に追加し、ユーザーはテキストの選択とコピー、またはコピーボタンによるコードブロック全体のコピーができます。リリースノート、ヘルプページ、Markdown で書かれたメッセージの表示に使ってください。

ライトテーマの sgcChat Markdown ビューア
Markdown ビューア、ライト
ダークテーマの sgcChat Markdown ビューア
Markdown ビューア、ダーク

sgcChat はスイートの他の製品と調和します

チャットは sgcUI のライト、ダーク、Fluent テーマに従います。アラビア語やヘブライ語の会話は左右反転で表示され、コントロールのテキストは sgcUI の 12 言語に翻訳されています。Windows では、チャットビューはスクリーンリーダー向けにメッセージの一覧として公開され、各メッセージの投稿者と時刻も読み上げられます。会話モデル、Markdown ドキュメント、ビューは VCL や FireMonkey に依存しないため、サービスはウィンドウなしで、Linux64 でも、会話や Markdown ドキュメントを SVG や PNG に描画できます。

コンポーネントは TsgcVCLChatPanel、TsgcVCLChatView、TsgcVCLChatInput、TsgcVCLMarkdownViewer で、FireMonkey 向けには TsgcFMX プレフィックスの同じセット、WinForms、WPF、Avalonia 向けには TsgcWinFormsChatPanel、TsgcWpfChatPanel、TsgcAvaloniaChatPanel などの同じコントロールがあります。デモは、VCL、FireMonkey、C++ Builder、WinForms、WPF、Avalonia 向けに、AIアシスタント、中継サーバー付きのチームチャットクライアント、Markdown ビューアを収録しています。

sgcChat は sgcUI Enterprise と All-Access バンドルの一部として販売されます。All-Access には、AI プロバイダーと WebSocket ブリッジに使う sgcWebSockets も含まれます。詳しくは sgcChat のページと機能比較表をご覧ください。

スイート全体: 入力、データ、出力

リリースの残りは、製品全体の細かな不足を埋めるものです。ユーザー入力を受け付けるコントロール、データセットに双方向で追従するデータバインディング、そしてアプリケーションから画面を取り出す方法の追加です。

sgcGauges: 入力ゲージとスキン

4 つの入力ゲージ TsgcVCLKnobGauge、TsgcVCLSliderGauge、TsgcVCLToggleSwitchGauge、TsgcVCLPushButtonGauge (FireMonkey では TsgcFMX、WinForms、WPF、Avalonia でも同じ名前) により、ユーザーはマウス、タッチ、ホイール、キーボードで値を設定できます。OnUserChange はユーザーによる変更のときだけ発生し、スクリーンリーダーにはスライダー、トグルスイッチ、ボタンとして認識されます。sgcGauges のゲージは、下で説明する HMI パックのタンクゲージとプロセスシンボルゲージを含めて 16 種類になりました。

Skin により、すべてのゲージの外観を変更できます。Classic、Modern、Industrial、ISA101、Dark のほか、sgcGaugesRegisterSkin で登録した独自のスキンも使えます。TsgcGaugeDataLink は、データセットのフィールドを任意のゲージに表示し、入力ゲージでの変更をフィールドに書き戻します。sgcGauges の機能と入力ゲージのヘルプをご覧ください。

ライブ更新と双方向データバインディング

各製品は、Delphi の TDataSet (.NET では DataTable) が変化する間それに追従し、編集機能を持つ製品はユーザーの変更を書き戻します。

sgcDiagram、sgcPivotGrid、sgcGauges、sgcDashboard には、.NET でも同じバインディングがあります。各エディションの内容は sgcUI 機能比較表に記載しています。

sgcPlanner: Outlook の定期的な予定、Google のリマインダー、キャパシティ

TsgcPlannerGraphSync は、Outlook の定期的な予定を RRULE 付きの 1 つの定期項目として取り込み、変更された回は変更済みの回として、キャンセルされた回は例外として取り込みます。また、プランナーで作成した定期的な予定を Outlook に送り返します。TsgcPlannerGoogleSync は、予定の更新時にプランナーで変更したリマインダーを Google カレンダーに送り、Google で変更されたものを読み戻します。リソースごとの Capacity (常勤 1 人なら 1、半日勤務なら 0.5、3 人のチームなら 3) は負荷ヒストグラムのキャパシティ線を決め、Microsoft Project XML では MaxUnits として読み書きされます。sgcPlanner の機能をご覧ください。

sgcDashboard: Web への公開と、すべてのプラットフォームでのマップタイル

SaveToHTML は、ダッシュボードを自己完結型の 1 つの HTML ページとして書き出します。各タイルは、印刷と同じコードで SVG として描画され、ダッシュボードのブレークポイントに従う CSS グリッドに配置されます。すべてのタイルに見出しとスクリーンリーダー向けの代替テキストが付きます。更新用 URL がない場合、ページにはスクリプトが一切含まれません。.NET では、マップタイルが WPF と Avalonia でも使えるようになり、ダッシュボードの印刷、PDF、HTML 出力にマップが表示されます。Web への公開のヘルプと sgcDashboard の機能をご覧ください。

sgcMaps: 任意のキャンバスにマップを描画

TsgcVCLMap、TsgcFMXMap、WinForms の SgcMapControl の DrawTo は、タイルを読み込んだ現在のビューを、任意の sgcUI キャンバスの矩形に描画します。WPF と Avalonia のマップも、任意の sgcUI キャンバスに描画できます。これにより、ダッシュボードのタイル内のマップが、印刷、PDF、HTML ページにも出力されます。sgcMaps の機能をご覧ください。

sgcWizard: トランジションとサマリーページ

Transition は、ページの切り替えをスライド、フェード、またはその両方でアニメーション表示し、右から左のレイアウトでは左右反転します。ReduceMotion は Windows のアニメーション設定に従います。ShowSummary を使うと、ウィザードの最後に、訪問したすべてのページでユーザーが入力したフィールドと値を一覧にしたページが追加されます。パスワードはマスクされ、各ページに戻る編集リンクが付きます。sgcWizard の機能とサマリーページのヘルプをご覧ください。

sgcReports: スクリプトと、すべてのプラットフォームでの FireMonkey プレビュー

TsgcReport.Script は、Pascal に似た小さな言語で書かれたプロシージャを保持し、レポート定義と JSON に保存されます。レポートの開始時と終了時、そして各バンドと各項目の印刷の前後にスクリプトが実行されるため、スクリプトで現在の印刷に限り、バンドを非表示にしたり、項目のテキスト、フォントの色、高さを変更したりできます。VCL、FireMonkey、WinForms、WPF、Avalonia のデザイナーでは、エラーの行と列を表示する Check ボタンでスクリプトを編集します。FireMonkey のプレビューは Windows、macOS、iOS、Android で動作し、タッチによるパンとピンチズームに対応します。iOS と Android では、印刷と PDF 保存でシステムの共有シートが開きます。sgcReports の機能とスクリプトのヘルプをご覧ください。

.NET 版 sgcPDF: WPF と Avalonia での注釈の編集とフォーム入力

WPF と Avalonia のビューアが、WinForms のビューアと同じ操作に対応しました。ユーザーはマウスで注釈の作成、移動、サイズ変更、編集、削除ができ (AnnotationEditing と AnnotationTool)、FormFilling を使うと、テキストフィールド、チェックボックス、ラジオボタン、コンボボックス、リストボックスに入力でき、Tab キーでタブ順にフィールド間を移動します。sgcPDF の機能をご覧ください。

すべてのプラットフォームで確認したアクセシビリティ

すべての製品デモの UI Automation ツリー (Narrator や NVDA などのスクリーンリーダーが読み取るツリー) を、VCL、FireMonkey、WinForms、WPF、Avalonia で UI Automation クライアントを使って確認し、見つかった問題を修正しました。VCL のエディターは値ではなくフィールドのラベルを読み上げるようになり、フラットなナビゲーションバーはツリーではなくリストになり、WinForms と WPF のステータスバーはキーボードフォーカスを受け取らなくなり、Avalonia のグリッドのセルは列名を繰り返さなくなり、Avalonia コントロールのチャートのポイントなどの描画項目は画面上の位置を報告するようになりました。

Visual Studio のスマートタグと XAML

WinForms のツールボックスにある 69 個すべてのコンポーネントのスマートタグを、デザイン画面上でテストしました。対象は、すべてのプロパティ、コレクションエディター、データソース一覧、アクション、動詞です。WPF と Avalonia では、sgcDashboard のタイルと sgcGauges のスキンを、他の製品の列、フィールド、系列と同じ sgc プレフィックスで XAML に宣言できます。

sgcEditors:レイアウトコントロールとデータフォーム

新しいレイアウトコントロール TsgcVCLLayoutControl と TsgcFMXLayoutControl(WinForms、WPF、Avalonia でも同じ名前)は、フォームのコントロールをグループ、タブ付きグループ、列に配置します。ラベルは 1 つの幅にそろい、ユーザーがドラッグできるスプリッターと右から左のレイアウトに対応します。SaveLayout と LoadLayout は、ユーザーが行った配置を JSON として保存します。レイアウトコントロールは Community 版を含むすべてのエディションに含まれます。Delphi の Community 版には sgcEditors のデザイン時パッケージがないため、そこではコードで作成します。

データフォームはその上に作られています。TsgcVCLDataForm と TsgcFMXDataForm は、TDataSet から、または BindObject でクラスの published プロパティから完全な編集フォームを生成し、WinForms、WPF、Avalonia のデータフォームは DataTable、リスト、またはオブジェクトを受け取ります。各フィールドには sgcEditors のコントロール、sgcUICore のバリデーターの規則、グループまたはタブ内の位置が与えられ、ナビゲーターがレコードの閲覧、追加、編集、削除、登録を行います。Smart Paste は、エディターがすでに使っている AI レイヤーを通じて、貼り付けたテキストでレコード全体を埋め、埋めたフィールドに印を付けます。データフォームは Registered 版に含まれ、VCL、FireMonkey、C++Builder、WinForms、WPF、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;

sgcEditors の機能とデータフォームのヘルプもご覧ください。

sgcUI HMI パック:タンク、P&ID、アラーム、NumPad

HMI パックは、sgcUI にプロセス画面をもたらします。オペレーターパネル、タンクファーム、ポンプ場、その他のプラント表示です。新しい製品ではありません。各要素は、それが拡張する製品の中にあり、その製品のエディションに従い、VCL と FireMonkey、C++Builder、.NET の WinForms、WPF、Avalonia に対応します。sgcUIApplyISA101 を 1 回呼び出すと、すべての sgcUI コントロールがグレーの ISA-101 スキームに切り替わり、色は異常な状態とアラームのために残ります。

プラントの主導権はアプリケーションにあります。アプリケーションは、自身のドライバー、データベース、またはゲージのブリッジから値を取得し、アラームを発生させるタイミングを決めます。OPC UA や Modbus のドライバーはありません。タンクとプロセスシンボルのゲージ、アラームリスト、NumPad は、Community 版を含むすべてのエディションにあり、P&ID ステンシル、プロセス状態とアニメーションパイプ、ゲージのフィード、アラームの確認応答ログは登録版です。HMI スイートデモは、シミュレーターで動く小さなタンクファームに、これらの要素をまとめています。sgcUI HMI パックのページと HMI パックのヘルプをお読みください。

sgcUI リアルタイム UI パック:プレゼンス、通知、アクティビティフィード、ライブログ

リアルタイム UI パックは、Delphi、C++Builder、.NET 向けのライブ画面に必要な部品を sgcUI に加えます。新しい製品ではありません。各部品は、それが拡張する製品の中にあります。sgcUICore は、アバター、アバターグループ、プレゼンスインジケーターを備えたプレゼンスモデルを追加します。sgcNavigation は、トースト、日ごとにまとめた受信トレイ、カテゴリとチャネルごとの設定を備えた通知センターを追加し、sgcToolbar の TsgcToolbarBadgeLink はツールバーまたはリボンの項目に未読数を表示します。sgcDashboard はアクティビティフィードと監査証跡を、単独のコントロールとダッシュボードタイルとして追加し、sgcGrid はレベル、フィルター、末尾の追従、一時停止、エクスポートを備えたライブログビューアーを追加します。

各モデルは、変更ごとに 1 つの JSON メッセージを受け取ります。登録版では、sgcUICoreWS ブリッジの WebSocket、MQTT、SSE のライブソースが、コードなしで sgcWebSockets からそれらにデータを供給します。各コントロールは、それが属する製品のエディションに含まれます。サーバーがない場合や Community のビルドでは、アプリケーションが各モデルの API でモデルを更新します。sgcUI リアルタイム UI パックのページをお読みください。

すべての製品に Getting Started ガイド

sgcUI の各製品には、Delphi (VCL) 向けの QuickStart デモ 5 つと Getting Started ガイドが付属するようになりました。ガイドはデモの隣に HTML で、また PDF(英語)でも用意されています。デモは最初のフォームから小さな完成アプリケーションまで進み、ガイドが各ステップを解説します。まずは sgcGrid のガイド、sgcCharts のガイド、sgcChat のガイドからどうぞ。

16 本すべてのガイドは、sgcUI クイックスタートのガイドのセクションに一覧があります。

sgcChat と sgcUI 2026.11 を試す

Delphi 用と C++ Builder 用それぞれ 1 つのトライアル版で、16 の sgcUI 製品すべてをインストールできます。

ご質問やご意見はありますか。お問い合わせください。コードを書いた担当者が返信します。