sgcHTML Web アプリを、 Pascal で書く。 JavaScript は不要。

Delphi、C++ Builder、.NET から、モダンで完全な Web UI をそのまま構築できます。sgcHTML は、チャート、グリッド、フォーム、ダッシュボード、チャットなど 110 種類の既製ウィジェットを備えたサーバーサイドのコンポーネントフレームワークです。多くは TDataSet に直接バインドでき、Bootstrap 5 のマークアップを出力し、htmx によってインタラクティブな状態を保ちます。あなたは Object Pascal または C# を書くだけで、HTML、CSS、JavaScript は sgcHTML が書きます。

ご自身で構築したくない場合は、私たちが代わりに構築します →
  • Delphi
  • C++ Builder
  • .NET
  • Bootstrap 5 + htmx
  • データアウェア / TDataSet
  • JavaScript 不要
  • 11010 ファミリーの UI コンポーネント
  • 3対応言語: Delphi、C++ Builder、.NET
  • 17組み込み UI 言語(右から左の言語を含む)
  • 15オンラインで動作する実アプリケーション
  • 0手書きの JavaScript の行数
動作を見る

18 本の動画。スライドはありません。

どの動画も、実際に動作している本物のアプリケーションの画面録画で、ナレーションと字幕が付いています。一覧から選んでください。再生ボタンを押すまで、何もダウンロードされません。

sgcHTML を 2 分で

サーバーサイドコンポーネント、Bootstrap 5 のマークアップ、htmx を使って、Delphi から完全な Web UI を構築できます。JavaScript のビルド工程は必要ありません。

ライブデモ

15 の実アプリケーションが、今まさに動いています。

以下の画面はすべて、sgcHTML を通じて自らの HTML を配信する Delphi アプリケーションです。JavaScript のビルド工程も、別のフロントエンドプロジェクトも必要ありません。各ログインページにあらかじめ入力された認証情報でサインインしてください。

ERP: sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

ERP

顧客、商品、仕入先、請求の管理に加え、ダッシュボードのチャート、ロールベースの管理機能、passkey サインインを備えています。

ライブデモを開く →
レポート & BI: sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

レポート & BI

ダッシュボード、レポートカタログ、アドホックなピボットビルダー、27,000 件の受注明細を対象とした探索ビュー。すべてインプロセスで問い合わせます。

ライブデモを開く →
POS レジ: sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

POS レジ

カテゴリー、プロモーション、会計保留、シフト管理、リアルタイムのカスタマーディスプレイを備えたタッチ操作のレジです。

ライブデモを開く →
フィールドサービス: sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

フィールドサービス

技術者と作業を割り当てるためのディスパッチボード、Gantt プランナー、技術者のリアルタイム地図。

ライブデモを開く →
倉庫管理(WMS): sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

倉庫管理(WMS)

入庫、出庫、在庫、移動、循環棚卸に加え、スキャナー向けのハンディターミナル用レイアウトも備えています。

ライブデモを開く →
ライブモニター: sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

ライブモニター

サーバーのメトリクスを WebSocket で out-of-band な htmx フラグメントへ送り、KPI カードとチャートをリアルタイムに更新します。

ライブデモを開く →
管理コンソール: sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

管理コンソール

インクリメンタル検索、インラインでの追加・編集・削除。すべて htmx のフラグメントとして差し替えられ、ページの再読み込みはありません。

ライブデモを開く →
右から左(RTL): sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

右から左(RTL)

英語、アラビア語、ヘブライ語で表示できる 1 つのページです。アラビア語またはヘブライ語を選ぶと、サイドバーからグリッドまでレイアウト全体が右から左に切り替わります。コードの変更は不要で、言語を選ぶだけです。

ライブデモを開く →
顧客ポータル: sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

顧客ポータル

ログインの内側で、顧客が自分の注文、プロフィール、サポートチケットを確認できるセルフサービス領域です。

ライブデモを開く →
マルチテナント SaaS: sgcHTML で構築した Delphi の Web アプリケーションが、ブラウザーで動作している様子。 ライブ

マルチテナント SaaS

公開のマーケティングサイト、料金ページ、サインアップの流れの背後に、テナントごとに分離されたコントロールプレーンを備えています。

ライブデモを開く →

その他のオンラインデモ: AI、計器、SCADA

AI データパック

データグリッド、ピボットテーブル、フォームを自然言語で操作できます。26,000 件の注文明細に対するフィルター、並べ替え、グループ化、AI によるカラムアシスタント、スマート貼り付けを備えています。API キーなしで動作します。

ライブデモを開く →

ショップアシスタント

sgcHTML コンポーネントだけで構築したオンラインストアで、商品カタログに基づいて回答するフローティングのチャットアシスタントを備えています。オンライン版には LLM の API キーは不要です。

ライブデモを開く →

MCP アプリ

ChatGPT、Claude、VS Code の内部でレンダリングされる Delphi アプリケーションです。MCP ツールが sgcHTML のページを返し、ホストがそれを表示します。ページ内のボタンもそのまま動作します。

ライブデモを開く →

計器

シミュレートされたボイラーループの制御室です。ゲージ、ディスプレイ、操作パネル、ストリップチャート、オシロスコープをサーバーがリアルタイムに更新し、ポーリングは使いません。

ライブデモを開く →

SCADA / IoT

タンク、バルブ、ポンプ、アニメーション表示される流れを備えた冷却水プラントのミミック図に、ゲージ、ストリップチャート、アラームを加え、すべて MQTT で駆動します。オンライン版では模擬プラントが動作します。

ライブデモを開く →

すべてのオンラインデモを見る →

仕組み

あなたは Pascal または C# を書き、フロントエンドは sgcHTML が書きます。

HTTP サーバーを起動し、htmx エンジンを接続して、コンポーネントから組み立てたページでリクエストに応答します。Delphi、C++ Builder、.NET で同じ API です。

uses
  sgcWebSocket_Server, sgcHTMX_Engine_Server,
  sgcHTML_Template_Bootstrap, sgcHTML_Component_Chart;

// 1. Start a server and attach the htmx engine
FServer := TsgcWSHTTPServer.Create(nil);
FServer.Port := 8080;
FServer.OnCommandGet := HandleGet;

FHTMX := TsgcHTMX_Engine_Server.Create(nil);
FHTMX.Server := FServer;        // realtime htmx over WebSocket

FServer.Active := True;

// 2. Build the page from components
function TForm1.BuildDashboard: string;
var
  oChart: TsgcHTMLComponent_Chart;
  oPage: TsgcHTMLTemplate_Bootstrap;
begin
  oChart := TsgcHTMLComponent_Chart.Create(nil);
  oPage := TsgcHTMLTemplate_Bootstrap.Create(nil);
  try
    oChart.ChartType := ctBar;
    oChart.AddLabel('Q1'); oChart.AddLabel('Q2'); oChart.AddLabel('Q3');
    oChart.AddDataset('Revenue', [1200, 1900, 1500],
      '#7C3AED', 'rgba(124,58,237,.25)', True);

    oPage.Title := 'Dashboard';
    oPage.BodyContent := oChart.HTML;   // component -> HTML
    Result := oPage.GetHTML;            // full Bootstrap document
  finally
    oPage.Free;
    oChart.Free;
  end;
end;
// includes: sgcWebSocket_Server.hpp, sgcHTMX_Engine_Server.hpp,
//           sgcHTML_Template_Bootstrap.hpp, sgcHTML_Component_Chart.hpp

// 1. Start a server and attach the htmx engine
FServer = new TsgcWSHTTPServer(this);
FServer->Port = 8080;
FServer->OnCommandGet = HandleGet;

FHTMX = new TsgcHTMX_Engine_Server(this);
FHTMX->Server = FServer;          // realtime htmx over WebSocket

FServer->Active = true;

// 2. Build the page from components
String __fastcall TForm1::BuildDashboard()
{
  TsgcHTMLComponent_Chart *oChart = new TsgcHTMLComponent_Chart(NULL);
  TsgcHTMLTemplate_Bootstrap *oPage = new TsgcHTMLTemplate_Bootstrap(NULL);
  try
  {
    oChart->ChartType = ctBar;
    oChart->AddLabel("Q1"); oChart->AddLabel("Q2"); oChart->AddLabel("Q3");
    oChart->AddDataset("Revenue", OPENARRAY(double, (1200, 1900, 1500)),
      "#7C3AED", "rgba(124,58,237,.25)", true);

    oPage->Title = "Dashboard";
    oPage->BodyContent = oChart->HTML;   // component -> HTML
    return oPage->GetHTML();             // full Bootstrap document
  }
  __finally
  {
    delete oPage;
    delete oChart;
  }
}
using esegece.sgcWebSockets;

// 1. Start a server and attach the htmx engine
var server = new TsgcWebSocketHTTPServer();
server.Port = 8080;
server.OnCommandGet += HandleGet;

var htmx = new TsgcHTMX_Engine_Server();
htmx.Server = server;            // realtime htmx over WebSocket

server.Active = true;

// 2. Build the page from components
string BuildDashboard()
{
    var chart = new TsgcHTMLComponent_Chart();
    chart.ChartType = TsgcHTMLChartType.ctBar;
    chart.AddLabel("Q1"); chart.AddLabel("Q2"); chart.AddLabel("Q3");
    chart.AddDataset("Revenue", new double[] { 1200, 1900, 1500 },
        "#7C3AED", "rgba(124,58,237,.25)", true);

    var page = new TsgcHTMLTemplate_Bootstrap();
    page.Title = "Dashboard";
    page.BodyContent = chart.HTML;   // component -> HTML
    return page.GetHTML();            // full Bootstrap document
}
  1. サーバーを起動し、htmx を接続TsgcWSHTTPServer がリクエストに応答し、TsgcHTMX_Engine_Server がページのインタラクティブ性と WebSocket 経由のリアルタイム性を保ちます。
  2. コンポーネントからページを組み立てるチャート、グリッド、フォームのプロパティを設定し、その HTML を読み取ります。TsgcHTMLTemplate_Bootstrap が、それを完全なレスポンシブ文書で包みます。
  3. 配信し、更新をプッシュクリックやフォーム送信はイベントハンドラーに往復し、サーバーが HTML フラグメントをその場で差し替えます。JavaScript のビルド環境は不要です。
Delphi 向け sgcHTML で構築した ERP ダッシュボードをブラウザーウィンドウに表示。KPI カード、売上の棒グラフ、最近の請求書のグリッド。
ERP デモのダッシュボード: KPI カード、売上チャート、最近の請求書グリッド。すべてコンポーネントで構築されています。

はじめにガイドを読む

内部の仕組み

あなたのバックエンドが、そのまま Web サーバーになります。

sgcHTML は、既存の Delphi、C++ Builder、.NET のバックエンドを Web アプリケーションサーバーに変えます。すべてのコンポーネントは Bootstrap 5 の HTML を出力するネイティブクラスで、htmx が、手書きの JavaScript を 1 行も使わずに、ページのインタラクティブ性とリアルタイム性を保ちます。

HTML をレンダリングするコンポーネント

すべてのウィジェットはクラスです: TsgcHTMLComponent_Chart、 TsgcHTMLComponent_Grid、 TsgcHTMLComponent_Form ほか 86 種類。プロパティを設定してから、 HTML プロパティを読み取ると、そのまま配信できるクリーンな Bootstrap 5 マークアップが得られます。

あなた自身のサーバーで配信

TsgcHTMLEngine_Server を配置する(または既存の TsgcWebSocketHTTPServerに HTML を接続する)だけです。リクエストは OnCommandGet ハンドラーに届き、コンポーネントから組み立てたページで応答します。外部の Web スタックは不要です。

WebBroker と DataSnap でのホスティング

sgcHTML は sgcWebSockets サーバーに縛られていません。コンポーネントで構築した同じページを、任意の Embarcadero WebBroker アプリケーションから TsgcHTMX_Engine_Server_WebBroker経由で、または REST エンドポイントと同じポートで WebSocket のライブプッシュに対応する DataSnap サーバーから配信できます。

WebBroker と DataSnap でのホスティング →

htmx によるインタラクティブ性

TsgcHTMX_Engine_Server を追加すると、クリック、フォーム送信、ライブ更新が Pascal または C# のイベントハンドラーに往復します。サーバーが HTML フラグメントをその場で差し替えます。SPA のような操作感を、JavaScript のビルド環境なしで実現します。

WebSocket によるリアルタイム

htmx は sgcWebSockets サーバー上で動作するため、接続しているすべてのブラウザーにライブの HTML をプッシュできます。ダッシュボード、モニター、チャットウィンドウは、データが変わった瞬間に、サーバー主導でポーリングなしに更新されます。プロキシが WebSocket を遮断する環境では、同じページが代わりにサーバー送信イベントで更新を受け取れます。

テーマ & テンプレート

TsgcHTMLTemplate_Bootstrap は、コンテンツを完全なレスポンシブ文書で包みます。 TsgcHTMLThemeController 、 TsgcHTMLThemeBuilder は、ライトテーマとダークテーマ、および共有スタイルシートを提供します。Bootstrap 5.3 と htmx は組み込み済みで、実行時に CDN は不要です。

データベースへの直接バインド

Grid、DataTable、Chart、Select、TreeView、Scheduler、Timeline、Form は TDataSet に直接バインドできます。バインドには LoadFromDataSet / DataSourceを使います。コンポーネントをクエリに向ければ、その行がレンダリングされます。

17 言語対応のローカライズ UI

組み込みの UI テキスト(ボタン、ラベル、検証メッセージ)は、英語、スペイン語、フランス語、ドイツ語、ポルトガル語、イタリア語、オランダ語、スウェーデン語、ノルウェー語、ポーランド語、チェコ語、トルコ語、ロシア語、中国語、日本語、韓国語、アラビア語に対応しています。言語は次で選びます: sgcHTMLSetLanguage。アラビア語とヘブライ語では、ページ全体が自動的に右から左へ反転します: dir="rtl"、Bootstrap の RTL スタイルシート、左右反転したコンポーネントが適用され、コードの変更は不要です。

デフォルトで安全な出力

すべてのコンポーネントは、動的なテキスト、属性、インライン JavaScript、URL を、自動エンコードと URL サニタイズ(sgcHTMLEncode、 sgcHTMLAttrEncode、 sgcJSEncode、 sgcHTMLSanitizeURL)に通すため、ユーザーデータがコンテキストを抜け出してスクリプトを挿入することはできません。

コンポーネントライブラリ

110 種類のコンポーネント、10 のファミリー。

ナビゲーションから、データグリッド、チャート、フォーム、オーバーレイ、AI チャットまで、Bootstrap 5 のあらゆる部品をネイティブコンポーネントとして提供します。各コンポーネントは、Delphi、C++ Builder、.NET のサンプル付きの専用ページにリンクしています。

ナビゲーション & 構造

見る →
  • NavBar
  • Sidebar
  • Breadcrumb
  • Tabs
  • Pagination
  • Toolbar
  • TreeView
  • Stepper
  • Dropdown
  • ButtonGroup
  • ListGroup
  • DashboardLayout
  • Splitter

データ & テーブル

見る →
  • Grid
  • DataTable
  • TreeGrid
  • PivotTable
  • Calendar
  • Scheduler
  • Timeline
  • ActivityFeed
  • KanbanBoard
  • Gantt

並べ替え、フィルター、エクスポートに対応し、データセットにバインドできます。

チャート & 可視化

見る →
  • Chart (Chart.js)
  • CandlestickChart
  • Gauge
  • Heatmap
  • Sparkline
  • TreeMap
  • Diagram (SVG flow)
  • Map (Leaflet)
  • QRCode
  • Barcode

ご自身のデータセットから描画するデータドリブンなビジュアル。

フォーム & 入力

見る →
  • Form
  • Edit
  • Memo
  • CheckBox
  • RadioGroup
  • Select
  • MultiSelect
  • InputGroup
  • AutoComplete
  • DatePicker
  • TimePicker
  • ColorPicker
  • Slider
  • FileUpload
  • RichEditor
  • Rating
  • SignaturePad
  • Transfer

コンテンツ & レイアウト

見る →
  • Panel
  • StatCard
  • Accordion
  • Carousel
  • Image
  • Avatar
  • Video
  • Badge
  • PDFViewer

ダッシュボード向けのカード、メディア、KPI タイル。

オーバーレイ & フィードバック

見る →
  • Modal
  • Offcanvas
  • Popover
  • Toast
  • Snackbar
  • Notification
  • Spinner
  • Placeholder
  • ContextMenu
  • ProgressBar
  • JobProgress
  • LogViewer

ダイアログとステータス表示。

チャット & AI

見る →
  • ChatBox
  • Chat (WhatsApp-style)
  • AIChat
  • Presence

プロバイダー選択、トークンストリーミング、RAG ソース引用に対応した AIChat、ライブのオンラインステータスを示す Presence。

認証

見る →
  • Login
  • SocialLogin (OAuth)
  • OAuthCallback
  • WebAuthnLogin (passkeys)
  • UserManagement
  • RolesPermissions

既製のサインインフローと管理画面。

計器 & SCADA

見る →
  • Gauge
  • LinearGauge
  • LED
  • LEDBar
  • SegmentDisplay
  • Odometer
  • AnalogClock
  • Compass
  • VUMeter
  • Knob
  • ToggleSwitch
  • PushButton
  • NumericStepper
  • StripChart
  • Oscilloscope
  • Annunciator
  • SCADAPanel

サーバーがリアルタイムに更新する制御室パネル。MQTT バインドに対応します。

インフラ & エンジン

見る →
  • EngineServer
  • HTMXEngine
  • PageBuilder
  • TemplateBootstrap
  • ThemeController
  • ThemeBuilder
  • HTMXFragment
  • HTMXRouter

ページを配信し、リアルタイム性を保つ非ビジュアルの部品。

完全な機能マトリックスを見る

最新の追加機能

sgcHTML の新機能。

追加された機能はすべて、使用するまでオフになっているため、使用しないページは以前とまったく同じようにレンダリングされます。完全な一覧は 機能マトリックスにあります。

ChatGPT と Claude の中に表示されるページ

MCP ツールがテキストの代わりにページで応答します。ページは通常の Web ページと同じコンポーネントで構築され、ChatGPT、Claude、VS Code がレンダリングします。Enterprise または All-Access エディション、もしくは sgcAI パックが必要です。

MCPApp を見る →

AI ページジェネレーター

ページを説明するか、スクリーンショットをデザイナーに渡すと、独自のコンポーネントでページが構築されます。レジストリから構築したスキーマに基づいて応答するため、提示していないクラスを指定することはできず、承認するまで何も適用されません。Enterprise または All-Access エディション、あるいは sgcAI パックの AI ユニットが必要です。

ガイドを読む →

1 つのコンポーネントとしての CRUD

1 つのテーブルの一覧、検索、ページング、フォーム、削除、書き込み処理を、データセットまたは独自の SQL に対して 1 つのコンポーネントで提供します。IDE のウィザードで作成できます。

CRUD を見る →

グリッドに質問する

自然言語の質問が、フィルター、並べ替え、グループ化、ハイライトに変換され、適用される前に、ご自身のカラムに対して検証されます。内蔵パーサーにより API キーなしで動作し、エディションに AI ユニットが含まれる場合は 7 つのプロバイダーにも対応します。

AIAssistant を見る →

閉じたブラウザーにも届ける

WebSocket を遮断するネットワーク向けのサーバー送信イベント、起動していないブラウザーへの Web Push、通知の受信トレイ、設定テーブルを備えています。Web Push には Enterprise または All-Access エディションが必要です。

WebPush を見る →

セッション、ルーティング、テスト

Cookie セッション、CSRF トークン、ログインのスロットリング、ロールによるルート保護。ルートのパスパラメーターとメソッドフィルター、ページテンプレートからのシングルページナビゲーション、生成したマークアップをテストするためのヘルパーを備えています。

Auth を見る →
.NET 開発者向け

ASP.NET Core の Razor Tag Helper。

TelerikやDevExpressのやり方でASP.NET Core MVCやRazor Pagesアプリケーションを構築している場合、sgcHTMLが同じ言葉で話せるようになりました。 <sgc-grid>、 <sgc-form>、 <sgc-dialog> 、 <sgc-chart>などのTag Helperと、 Html.Sgc()配下のそれに対応するfluent APIは、サーバー側でBootstrap 5のHTMLを描画し、htmxでコントローラーと通信します。学ぶべきJavaScriptフレームワークも、書くべきJSONデータソースもありません。Razorレイヤーは esegece.sgcHTML.AspNetCore NuGet パッケージで提供され、Community エディションにも含まれ、次のリリースで利用できるようになります。

@* Views/Orders/Index.cshtml, page 1 renders inline from the model *@
@model IQueryable<OrderRow>

<sgc-grid name="orders" key="Id" items="Model"
          asp-action="Read" asp-export-action="Export" export="xlsx,pdf"
          page-size="15" sortable="true" filterable="true"
          searchable="true" push-url="true">
    <sgc-column field="Reference" searchable="true" />
    <sgc-column field="Customer" searchable="true" />
    <sgc-column field="OrderDate" title="Date" format="{0:yyyy-MM-dd}" filter="range" />
    <sgc-column field="Total" format="{0:N2}" align="right" filter="range" />
    <sgc-column field="Paid" />
</sgc-grid>
// Program.cs
builder.Services.AddControllersWithViews();
builder.Services.AddSgcHtml(o => o.ServeRootPage = false);  // the MVC app owns "/"
builder.Services.AddSgcHtmlRazor();   // SgcDataRequest binder, grid state, /sgcHTML.css
// ...
app.UseWebSockets();   // before UseSgcHtml, needed by live charts
app.UseSgcHtml();
app.MapDefaultControllerRoute();

// Controllers/OrdersController.cs
public class OrdersController : Controller
{
    private readonly ShopDb FDb;

    public OrdersController(ShopDb db) { FDb = db; }

    // An IQueryable projection: EF Core turns paging, sort and filters into SQL.
    private IQueryable<OrderRow> Rows() =>
        FDb.Orders.AsNoTracking().Select(o => new OrderRow
        {
            Id = o.Id, Reference = o.Reference, Customer = o.Customer.Name,
            OrderDate = o.OrderDate, Total = o.Total, Paid = o.Paid
        });

    public IActionResult Index() => View(Rows());

    // Every page, sort, filter and search click of the grid lands here.
    public IActionResult Read(SgcDataRequest request) => this.SgcGrid(request, Rows());

    // The toolbar export links: the filtered and sorted rows as XLSX or PDF.
    public IActionResult Export(SgcDataRequest request) =>
        this.SgcGridExport(request, Rows(), "orders");
}
@* The same grid with the fluent builder, the twin of Html.Kendo().Grid<T>() *@
@(Html.Sgc().Grid<OrderRow>("orders")
    .Key(o => o.Id)
    .Columns(c =>
    {
        c.Bound(o => o.Reference).Searchable();
        c.Bound(o => o.Customer).Searchable();
        c.Bound(o => o.OrderDate).Title("Date").Format("{0:yyyy-MM-dd}").Filter(SgcGridFilterKind.Range);
        c.Bound(o => o.Total).Format("{0:N2}").Align("right").Filter(SgcGridFilterKind.Range);
        c.Bound(o => o.Paid);
    })
    .Items(Model)
    .Read("Read")
    .Export(SgcExportFormat.Xlsx, SgcExportFormat.Pdf)
    .ExportAction("Export")
    .Pageable(15)
    .Sortable().Filterable().Searchable().PushUrl())
@* _Layout.cshtml: live="ws" opens the WebSocket that live charts listen to *@
<sgc-scripts live="ws" />

@* The view *@
<sgc-chart name="live-orders" type="line" height="260" live="true">
    <sgc-series name="Orders / s" data="new double[] { 0 }" color="#dc3545" />
</sgc-chart>
// builder.Services.AddHostedService<LiveSalesFeed>();
public sealed class LiveSalesFeed : BackgroundService
{
    private readonly ISgcHtmlHub FHub;
    private readonly Queue<string> FLabels = new Queue<string>();
    private readonly Queue<double> FValues = new Queue<double>();

    public LiveSalesFeed(ISgcHtmlHub hub) { FHub = hub; }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        var oRandom = new Random();
        while (!stoppingToken.IsCancellationRequested)
        {
            await Task.Delay(1000, stoppingToken);
            FLabels.Enqueue(DateTime.Now.ToString("HH:mm:ss"));
            FValues.Enqueue(oRandom.Next(0, 20));
            if (FValues.Count > 20) { FLabels.Dequeue(); FValues.Dequeue(); }

            // One WebSocket message redraws the chart in every open browser.
            await FHub.BroadcastChartAsync("live-orders", FLabels.ToArray(),
                new SgcChartSeries("Orders / s", FValues.ToArray(), "#dc3545"));
        }
    }
}

IQueryable上のグリッド

<sgc-grid> は、ページング、並べ替え、フィルター(テキストと範囲)、検索、XLSXとPDFへのエクスポートをサーバー側で行います。コントローラーは this.SgcGrid(request, query)を返すだけで、EF Coreがすべての操作をパラメーター化されたSQLに変換します。 push-url はページ、並べ替え、フィルターをアドレスバーに保持するため、再読み込みや戻るボタンも正しく動作します。

asp-forでバインドするフォーム

<sgc-textbox>、 <sgc-select>、 <sgc-datepicker>、 <sgc-checkbox> 、 <sgc-autocomplete> は asp-for でモデルにバインドされ、各入力欄の下に ModelState のエラーを表示します。 <sgc-form hx="true"> はhtmxでPOSTし、 this.SgcRedirect(url) は保存が成功した後に画面遷移します。

ダイアログで編集

sgc-dialog="name" を持つ要素は、そのURLを <sgc-dialog>に読み込みます。POSTが成功した後、 this.SgcCloseDialog("edit-order", refresh: "orders") がダイアログを閉じてグリッドを再読み込みします。自前のスクリプトなしで実現できるポップアップ編集のパターンです。

SignalRなしでライブ更新されるチャート

<sgc-chart> は静的データの描画、 refresh-every="5s"によるアクションのポーリング、または live="true"に対応します。バックグラウンドサービスが hub.BroadcastChartAsync(...) を呼び出すと、開いているすべてのブラウザーがsgcHTMLのWebSocket経由でチャートを再描画します。TelerikやDevExpressのチャートでサーバープッシュを行うにはSignalRの配線が必要ですが、sgcHTMLには標準で組み込まれています。

Telerik UI for ASP.NET CoreやDevExpressからの移行ですか? [DataSourceRequest] は SgcDataRequest、 ToDataSourceResult は this.SgcGrid(request, query) (データだけが必要な場合は query.ToSgcDataResult(request) )に、 Html.Kendo().TextBoxFor(m => m.X) は Html.Sgc().TextBoxFor(m => m.X)になります。実行可能なMVCデモ 22.RazorMvcは、Telerikの注文サンプルをEF Core上でsgcHTMLを使って書き直したものです。

2 つの API レイヤー

高レベルのコンポーネント、または低レベルのノード。

ウィジェットを 1 行で配置したいときは既製のコンポーネントを使い、マークアップを完全に制御したいときはノードレイヤーまで降りて使います。

コンポーネントレイヤー

110 種類の TsgcHTMLComponent_* ウィジェット。プロパティを設定し、必要に応じてデータセットをバインドし、 HTMLを読み取ります。多くのコンポーネントは、1 行のインライン利用向けに静的な Build(...) ヘルパーも公開しています。

ノード / コンポジションレイヤー

TsgcHTMLContainer (自己終了タグ用の Void フラグ付き)、 TsgcHTMLCard、 TsgcHTMLForm、 TsgcHTMLField、 TsgcHTMLButton 、 TsgcHTMLTable といったプリミティブを組み合わせて任意のレイアウトを構成し、 TsgcHTMLTemplate_Bootstrapでレンダリングします。ノードセットには、次のような Bootstrap 部品も含まれます: TsgcHTMLModal、 TsgcHTMLOffcanvas、 TsgcHTMLAccordion、 TsgcHTMLCarousel、 TsgcHTMLToast、 TsgcHTMLProgress、 TsgcHTMLSpinner、 TsgcHTMLListGroupNode、 TsgcHTMLInputGroup、 TsgcHTMLButtonGroupNode、 TsgcHTMLRadio、 TsgcHTMLBreadcrumb、 TsgcHTMLNavbarNode 、 TsgcHTMLImage。

ビジュアルページビルダー

TsgcHTMLPageBuilder はデザイン時エディターを備え、IDE 上でページを組み立てられます。一方、 TsgcHTMLThemeController は、アプリ全体のライトテーマとダークテーマを管理します。

3 つの入口

今いる場所から始められます。

ご自身で構築したくないですか?

sgcCustomization HTML では、必要なアプリケーションを説明していただくと、eSeGeCe チームが sgcHTML + sgcWebSockets のコンポーネントでそれを構築します。 €149からの 3 つの一回限りのパッケージがあり、ライセンスされたコンポーネントでコンパイル、拡張、再スタイルできる完全なプロジェクトを受け取れます。

別の Web フレームワークからの移行ですか?

IntraWeb、uniGUI、TMS WEB Core、Elevate Web Builder、D2Bridge で構築した Web アプリケーションをすでにお持ちですか?ステップバイステップのガイドが、各フレームワークのコンセプトマッピングとともに、sgcHTML への移行を案内します。私たちのチームに移行の計画や実施を手伝ってほしい場合のための、移行支援フォームもあります。

すでに WebBroker または DataSnap をお使いですか?

コンポーネントで構築した同じページを、任意の Embarcadero WebBroker アプリケーションから、または REST エンドポイントと同じポートで WebSocket のライブプッシュに対応する DataSnap サーバーから配信できます。

お客様の声

開発者の声

世界中でリアルタイムアプリケーションを構築する Delphi、C++ Builder、Lazarus、.NET 開発者から信頼されています。

sgcWebSockets ライブラリはとても便利でセットアップも簡単です。これからも頑張ってください!
Simone Moretti Delphi Developer
sgcWebSockets は素晴らしく、サポートも最高です!
Christian Meyer Founder & CTO
ご支援とサポートに本当に感謝しています。コンポーネントが大好きです。
Mark Steinfeld CTO

IDE から離れずに Web UI を出荷。

使い慣れた言語のまま、Delphi、C++ Builder、.NET アプリケーションにチャート、グリッド、フォーム、ダッシュボード、リアルタイムページを追加できます。

eSeGeCe の製品をもっと

eSeGeCe のその他の製品

sgcHTML を、Delphi、C++ Builder、.NET 向けの他のコンポーネントライブラリと組み合わせましょう。

sgcWebSockets

エンタープライズ向けの WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI/LLM コンポーネント。sgcHTML アプリケーションにリアルタイムメッセージングと完全なネットワークスタックを追加できます。

sgcQUIC

Delphi、C++ Builder、.NET 向けの QUIC および HTTP/3 クライアント・サーバーコンポーネント。sgcHTML がレンダリングした UI を HTTP/3 で配信し、パケットロスのあるネットワークでもページの読み込み遅延を抑えます。

sgcWebRTC

Delphi と C++ Builder 向けの完全な WebRTC メディアエンジン。音声/ビデオ通話、データチャネル、画面共有に対応します。sgcWebSockets Enterprise のアドオンです。

sgcSign

エンタープライズ向けデジタル署名。XAdES、PAdES、CAdES、ASiC に対応し、10 種類のキープロバイダーと 21 の EU 各国プロファイルを備えます。

sgcOpenAPI

OpenAPI 3.0 パーサーと SDK ジェネレーター。任意の OpenAPI 仕様を、数秒で厳密に型付けされた Delphi クライアントに変換します。

sgcBiometrics

Delphi と C++ Builder 向けの、ネイティブな Windows Hello、指紋認証、Windows Biometric Framework コンポーネント。

sgcIndy

モダンな TLS、IPv6、HTTP/2 に対応した更新版 Indy TCP/IP コンポーネント。Delphi 7 から 13 まで対応します。

sgcAI

Delphi と C++ Builder 向けの 15 種類の AI / LLM / MCP コンポーネント。1 つのチャットコンポーネントから OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral を利用できます。単体で動作し、sgcWebSockets Core のランタイムを同梱しています。

sgcMQ

Delphi と C++ Builder 向けの MQTT 3.1.1 / 5.0、AMQP 0.9.1、AMQP 1.0、Apache Kafka、STOMP クライアントコンポーネント。単体で動作し、sgcWebSockets Core のランタイムを同梱しています。

sgcCrypto

Delphi と C++ Builder 向けの汎用暗号ライブラリです。対称・非対称暗号、ハッシュ、鍵管理に対応します。sgcWebSockets Standard 以上に無料で同梱、または単体でも利用できます。

sgcSocial

WhatsApp Business Cloud API と Telegram TDLib のクライアント。単体で動作し、sgcWebSockets Core のランタイムを同梱しています。

ブログの最新記事

すべての記事を見る →

現在は eSeGeCe の sgcHTML ビューを表示しています。

別の切り口を見る →
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る