sgcHTML Web 应用, 用 Pascal 编写。 无需 JavaScript。

直接用 Delphi、C++ Builder 和 .NET 构建完整、现代的 Web 界面。sgcHTML 是一个服务器端组件框架,提供 110 个现成控件:图表、表格、表单、仪表板、聊天等。许多控件可直接绑定到 TDataSet,渲染为 Bootstrap 5 标记,并通过 htmx 保持交互。您只需编写 Object Pascal 或 C#,HTML、CSS 和 JavaScript 由 sgcHTML 生成。

不想自己动手?我们为您构建 →
  • Delphi
  • C++ Builder
  • .NET
  • Bootstrap 5 + htmx
  • 数据感知 / TDataSet
  • 无需 JavaScript
  • 110十个系列的 UI 组件
  • 3支持语言:Delphi、C++ Builder 和 .NET
  • 17内置界面语言,含从右到左
  • 15在线运行的真实应用
  • 0手写 JavaScript 的行数
看它们运行

十八段视频,没有幻灯片。

每段视频都是真实应用实际运行时的屏幕录制,配有旁白和字幕。从列表中任选一段。点击播放之前不会下载任何内容。

两分钟了解 sgcHTML

用 Delphi 构建完整的 Web 界面,服务端组件搭配 Bootstrap 5 标记和 htmx,无需 JavaScript 构建步骤。

在线演示

十五个真实应用,此刻正在运行。

下面的每一个界面,都是通过 sgcHTML 输出自身 HTML 的 Delphi 应用程序。无需 JavaScript 构建步骤,也无需独立的前端项目。用各登录页上已预填的凭据登录即可。

ERP:在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

ERP

客户、产品、供应商与开票,配备仪表板图表、基于角色的后台管理和 passkey 登录。

打开在线演示 →
报表与 BI:在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

报表 & BI

仪表板、报表目录、即席透视表构建器,以及针对 27,000 条订单明细的探索视图,全部在进程内查询。

打开在线演示 →
销售终端:在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

销售终端

触摸式收银台,支持商品分类、促销、挂单、班次管理和实时顾客显示屏。

打开在线演示 →
现场服务:在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

现场服务

调度看板、Gantt 计划器和实时技师地图,用于安排工程师与工单。

打开在线演示 →
仓库管理(WMS):在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

仓库管理(WMS)

入库、出库、现有库存、移库与循环盘点,另有面向扫描枪的手持终端布局。

打开在线演示 →
实时监控:在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

实时监控

服务器指标通过 WebSocket 推送到带外 htmx 片段,实时更新 KPI 卡片和图表。

打开在线演示 →
管理控制台:在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

管理控制台

即输即搜、行内新增、编辑与删除,全部以 htmx 片段替换,无需刷新页面。

打开在线演示 →
从右到左(RTL):在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

从右到左 (RTL)

一个页面,三种语言:英语、阿拉伯语和希伯来语。选择阿拉伯语或希伯来语,整个布局便会变为从右到左,从侧边栏到网格无一例外。无需修改代码,只需切换语言。

打开在线演示 →
客户门户:在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

客户门户

登录后的自助区域,客户可查看自己的订单、资料和支持工单。

打开在线演示 →
多租户 SaaS:在浏览器中运行的、用 sgcHTML 构建的 Delphi Web 应用。 在线

多租户 SaaS

面向公众的营销网站、定价页面和注册流程,背后是按租户隔离的控制平面。

打开在线演示 →

更多在线演示:AI、仪表和 SCADA

查看全部在线演示 →

工作原理

您编写 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. 启动服务器,挂载 htmxTsgcWSHTTPServer 负责响应请求,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。

渲染 HTML 的组件

每个控件都是一个类: TsgcHTMLComponent_Chart, TsgcHTMLComponent_Grid, TsgcHTMLComponent_Form 等 86 个。设置其属性,然后读取其 HTML 属性,即可获得可直接提供服务的简洁 Bootstrap 5 标记。

由您自己的服务器提供服务

放置一个 TsgcHTMLEngine_Server (或将 HTML 接入现有的 TsgcWebSocketHTTPServer)。请求到达您的 OnCommandGet 处理程序中,您以组件构建的页面作答。无需外部 Web 技术栈。

WebBroker 和 DataSnap 托管

sgcHTML 并不绑定于 sgcWebSockets 服务器。通过 TsgcHTMX_Engine_Server_WebBroker,从任何 Embarcadero WebBroker 应用程序提供同一批由组件构建的页面,或者从 DataSnap 服务器提供,并在与您的 REST 端点相同的端口上实现实时 WebSocket 推送。

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。将组件指向一个查询,它便会渲染出这些行。

本地化 UI,17 种语言

内置界面文字(按钮、标签、验证消息)支持英语、西班牙语、法语、德语、葡萄牙语、意大利语、荷兰语、瑞典语、挪威语、波兰语、捷克语、土耳其语、俄语、中文、日语、韩语和阿拉伯语。可通过 sgcHTMLSetLanguage 选择语言。阿拉伯语和希伯来语会自动将整个页面翻转为从右到左: dir="rtl"、Bootstrap 的 RTL 样式表和镜像组件,无需修改任何代码。

默认安全输出

每个组件都会让其动态文本、属性、内联 JavaScript 和 URL 经过自动编码和 URL 清理(sgcHTMLEncode, sgcHTMLAttrEncode, sgcJSEncode, sgcHTMLSanitizeURL),因此用户数据无法逃出所在上下文去注入脚本。

组件库

110 个组件,十个系列。

从导航框架到数据表格、图表、表单、浮层和 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 流程图)
  • 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 风格)
  • AIChat
  • Presence

AIChat 提供服务商选择器、令牌流式输出和 RAG 来源引用,Presence 显示实时在线状态。

身份验证

查看 →
  • Login
  • SocialLogin (OAuth)
  • OAuthCallback
  • WebAuthnLogin(通行密钥)
  • 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 工具以页面而非文本作答,页面由您用于任何网页的同一批组件构建,并由 ChatGPT、Claude 和 VS Code 渲染。需要 Enterprise 或 All-Access 版本,或 sgcAI 扩展包。

查看 MCPApp →

AI 页面生成器

描述一个页面,或者把截图交给设计器,它会用您自己的组件构建出该页面。它根据由您的注册表构建的 schema 作答,因此不会提到您没有提供的类,并且在您接受之前不会应用任何内容。它需要 Enterprise 或 All-Access 版本的 AI 单元,或者 sgcAI 包。

阅读指南 →

作为单个组件的 CRUD

一张表的列表、搜索、分页、表单、删除和写入路径整合为单个组件,基于数据集或您自己的 SQL。由 IDE 向导创建。

查看 CRUD →

向网格提问

用自然语言提出的问题会变成筛选、排序、分组和高亮,并在应用之前先对照您自己的列进行验证。通过内置解析器无需 API 密钥即可使用,当您的版本包含 AI 单元时,还支持七家服务商。

查看 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()下与之对应的流式写法,会在服务器端渲染 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 提交,保存成功后 this.SgcRedirect(url) 负责跳转。

在对话框中编辑

任何带有 sgc-dialog="name" 的元素都会把其 URL 加载到 <sgc-dialog>中。提交成功后, this.SgcCloseDialog("edit-order", refresh: "orders") 会关闭对话框并重新加载网格,这就是无需自己编写脚本的弹窗编辑模式。

实时推送图表,无需 SignalR

<sgc-chart> 可以渲染静态数据,可以用 refresh-every="5s"轮询某个 action,也可以设置 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是用 sgcHTML 在 EF Core 之上重写的 Telerik 订单示例。

两个 API 层

高层组件或底层节点。

当您想用一行代码实现一个控件时,使用现成的组件;当您需要完全控制标记时,则深入到节点层。

组件层

110 个 TsgcHTMLComponent_* 控件。配置属性,可选地绑定数据集,读取 HTML。许多组件还提供一个静态 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 管理整个应用的浅色与深色主题。

三种上手方式

从您当前所处的位置开始。

不想自己动手构建?

通过 sgcCustomization HTML,您描述所需的应用,eSeGeCe 团队即使用 sgcHTML + sgcWebSockets 组件为您构建。三个一次性套餐,价格自 €149起,您将收到一个可以使用已获许可的组件编译、扩展和重新设计样式的完整项目。

来自其他 Web 框架?

已经有一个用 IntraWeb、uniGUI、TMS WEB Core、Elevate Web Builder 或 D2Bridge 构建的 Web 应用?分步指南将引导您把它迁移到 sgcHTML,并为每个框架提供概念映射。如果您希望我们的团队帮助规划或执行迁移,还有一个迁移协助表单。

已在使用 WebBroker 或 DataSnap?

可从任何 Embarcadero WebBroker 应用,或从 DataSnap 服务器提供同样由组件构建的页面,并在与 REST 端点相同的端口上进行实时 WebSocket 推送。

用户评价

开发者怎么说

受到全球各地构建实时应用程序的 Delphi、C++ Builder、Lazarus 和 .NET 开发者的信赖。

你们的 sgcWebSockets 库非常实用,而且易于设置。请继续保持!
Simone Moretti Delphi 开发者
sgcWebSockets 非常出色,你们的支持也是最棒的!
Christian Meyer 创始人兼首席技术官
非常感谢你们的帮助和支持,我很喜欢你们的组件。
Mark Steinfeld 首席技术官

无需离开 IDE,即可交付 Web 界面。

为您的 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 客户端和服务器组件。通过 HTTP/3 提供 sgcHTML 渲染的界面,在不稳定网络上实现更低延迟的页面加载。

sgcWebRTC

面向 Delphi 和 C++ Builder 的完整 WebRTC 媒体引擎:音视频通话、数据通道和屏幕共享。sgcWebSockets Enterprise 的附加组件。

sgcSign

企业级数字签名 — XAdES、PAdES、CAdES 和 ASiC,支持 10 个密钥提供商和 21 个欧盟国家配置文件。

sgcOpenAPI

OpenAPI 3.x 解析器、Pascal SDK 生成器、OpenAPI 服务器,以及适用于 AWS、Azure、Google Cloud 和 Microsoft Graph 的 1,195 多个预构建 SDK。

sgcBiometrics

面向 Delphi 和 C++ Builder 的原生 Windows Hello、指纹和 Windows 生物识别框架组件。

sgcIndy

更新版 Indy TCP/IP 组件,为 Delphi 7 至 13 提供现代 TLS、IPv6 和 HTTP/2 支持。

sgcAI

面向 Delphi 和 C++ Builder 的 15 个 AI、LLM 和 MCP 组件。一个聊天组件即可接入 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 天内申请全额退款。 查看退款政策