sgcChat の登場。
アプリケーションの中にチャットを。
回答を整形済み Markdown でストリーミング表示する AIアシスタントと、プレゼンス、入力中表示、既読、リアクションを備えたチームチャット。Delphi、C++ Builder、.NET 向けのネイティブコントロールです。
- VCL
- FireMonkey
- WinForms
- WPF
- Avalonia
- ヘッドレス SVG と PNG
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 として表示します。プロバイダーはワーカースレッドで動作するためウィンドウの応答性は保たれ、チャットパネルにはすべての回答に対して停止、再生成、編集して再送信の操作が用意されています。
- 回答の生成中はキャレット付きで Markdown をストリーミング表示します。
- ツール名、引数、結果、および実行中、完了、エラーの状態を表示するツール呼び出しカード。
- 会話履歴の JSON への保存と読み込み。
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: 自社サーバー上のチームチャット
サポートデスク、現場チーム、社内ツールには、ユーザーがすでに使い方を知っているチャットが必要です。チャットビューは、投稿者ごとのメッセージをアバターと名前でまとめ、オンライン、離席中、取り込み中の状態と入力中のユーザーを表示し、各メッセージを送信済み、配信済み、既読として示します。ユーザーはメッセージへの返信やリアクション、自分のメッセージの編集や削除、画像サムネイルとファイルチップ付きの添付ファイルの送信ができます。
チャットは特定のサーバーに依存しません。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 はスイートの他の製品と調和します
チャットは 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) が変化する間それに追従し、編集機能を持つ製品はユーザーの変更を書き戻します。
- sgcPlanner:
TsgcPlannerSource_DataSetは書き込みのたびにOnWriteBackで通知し、OnBeforeWriteBackで書き込みを拒否でき、書き込みが拒否または失敗した場合はプランナーをデータの状態に戻します。Throttleは短時間の連続した変更をまとめ、FollowCursorは現在のレコードの項目を選択します。 - sgcDiagram:
TsgcDiagramDataBindingは、ノードとリンクのデータセットを Id で追従し、ノードの位置とサイズを保存します。WriteBackを使うと、ユーザーが追加、移動、編集、削除したノードとリンクがデータに書き戻されます。 - sgcPivotGrid と sgcDashboard: ピボットの DataSet ソースとダッシュボードのデータソースは、データセットに追従し、
Throttleが短時間の連続した変更を 1 回の更新にまとめます。
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 スキームに切り替わり、色は異常な状態とアラームのために残ります。
- sgcGauges:タンクと容器のゲージ
TsgcVCLTankGaugeは 4 つの形状で、HH、H、L、LL の限界値とヒステリシスを持ちます。プロセスシンボルゲージTsgcVCLSymbolGaugeは、バルブ、ポンプ、モーター、ファン、熱交換器、センサーを、オフ、オン、故障、開、閉、移動中のいずれかで描画し、ポンプとファンは稼働中に回転します。sgcGaugesWS ブリッジは、MQTT、WebSocket、SSE から両方にデータを供給し、ValueMapはRUNNINGなどのプラントコードをシンボルの状態に変換します。 - sgcDiagram:ポンプ、バルブ、容器、熱伝達機器、配管、計器のための、ISA-5.1 スタイルの 56 個の P&ID ステンシルと、
TsgcDiagramStatusBindingのルールによるプロセス状態とアニメーションパイプ。 - sgcGrid:ISA-18.2 アラームリスト。
TsgcGridAlarmModelは、優先度 1 から 4 と 6 つの状態でアラームを保持し、Acknowledge、Shelve、フィルター、JSON と CSV のエクスポートに対応します。TsgcGridAlarmLinkは、優先度の色と点滅する行でグリッドに表示し、アラームメニューがオペレーターにコマンドを提供します。 - sgcEditors:
TsgcVCLNumPad、タッチパネル用の NumPad です。フォームにドッキングするか、ドロップダウンとして使い、スピンエディットと通貨エディット、標準のエディット、ノブとスライダーのゲージに入力します。
プラントの主導権はアプリケーションにあります。アプリケーションは、自身のドライバー、データベース、またはゲージのブリッジから値を取得し、アラームを発生させるタイミングを決めます。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 製品すべてをインストールできます。
ご質問やご意見はありますか。お問い合わせください。コードを書いた担当者が返信します。
