Delphi、C++ Builder & .NET sgcUI 的一部分

sgcDashboard,适用于 Delphi、C++ Builder & .NET 的仪表盘与 KPI 卡片

无需编写布局代码即可构建业务仪表盘。把磁贴放到 12 列网格上,在每个磁贴中放入 KPI 卡片、图表、地图或报表预览,只需一个属性即可把整个界面切换为深色主题,并让用户拖动、调整大小并保存自己的布局。

VCL、FireMonkey、WinForms、WPF、Avalonia12 列磁贴网格,自动流式排列KPI 卡片可输出为 PNG 或 SVG,Linux64 同样支持包含在 sgcUI Professional 中
Basic 演示:响应式网格中的仪表盘磁贴和 KPI 卡片

仪表盘所需的一切

四个分组,十一项功能,附带真实的组件和属性名称以及每个帮助主题的链接。标有“注册版”的功能不包含在免费的 .NET 社区版中。

布局与内容

自动为您放置磁贴的网格,以及展示数字的卡片。

sgcDashboard Basic 演示,12 列网格上有六个磁贴和四张 KPI 卡片

布局与内容

无需布局代码的响应式磁贴网格

仪表盘是一个磁贴网格,在任何窗口大小和任何 DPI 下都必须保持整齐。把仪表盘放到窗体上,添加磁贴,并为每个磁贴指定列、行和跨度。网格根据可用宽度计算列宽,按显示器 DPI 缩放间距和行高,当磁贴所需行数超出可显示范围时垂直滚动。重叠的磁贴每次下移一行,绝不会叠在一起。由于布局集中在一个引擎中,相同的磁贴单元格在 VCL、FireMonkey 和 .NET 视图上给出相同的排列。

  • TsgcVCLDashboard,带 Columns(默认 12)、RowHeight(120)、Gap 和 Padding(12)
  • TsgcVCLDashboardTile,带 Col、Row、ColSpan 和 RowSpan
  • 隐藏的磁贴(Visible 为 False)不占用单元格
  • 已放置的单元格和矩形可通过 Layout.PlacedCell 和 Layout.Rect 读取
阅读帮助主题
仪表盘包含四个带迷你图的 KPI 磁贴、一个事件日志和一个服务器列表

布局与内容

添加磁贴,由自动流式排列来放置

当仪表盘的内容取决于用户或数据时,您不会想去计算坐标。将磁贴的列和行保持为 -1,自动流式排列会把它放入第一个空闲位置,从上到下扫描行、从左到右扫描列。只固定列时,磁贴会落到该列的第一个空闲行。同一个仪表盘中可以混用固定磁贴和流式磁贴。

  • AutoFlow 默认开启;新磁贴的 Col 和 Row 为 -1,跨度为 3 乘 2
  • 显式指定的单元格先放置,流式磁贴填充剩余空间
  • 跨度会被限制,因此磁贴不会超出最后一列
  • 同一个布局引擎 TsgcDashboardLayout 驱动 VCL、FireMonkey 和 .NET
  • 支持阿拉伯语和希伯来语的从右到左:磁贴从右侧开始排列,磁贴标题和 KPI 卡片已镜像,而趋势箭头和迷你图保持原有方向
阅读帮助主题
承载地图、PDF 查看器和报表预览的仪表盘磁贴

布局与内容

在磁贴中放入任意控件

磁贴是带可选标题栏的容器,因此可以承载您界面需要的任何内容:图表、表格、地图、PDF 查看器、报表预览或普通备注框。把控件的父级设为该磁贴,并将其对齐到客户区。Suite 演示在一个仪表盘中承载了 sgcCharts、sgcMaps、sgcPDF 和 sgcReports,全部遵循仪表盘主题。磁贴可以去掉标题栏,呈现整洁的满铺图表,也可以保留标题栏作为标题。添加磁贴时,仪表盘按行增长并垂直滚动。

  • 每个磁贴上的 Title 和 ShowHeader
  • ParentTheme 让磁贴跟随仪表盘,或保留自己的 Theme
  • 磁贴内的 sgcUI 控件会采用浅色或深色主题
  • 在 FireMonkey 上使用 TsgcFMXDashboardTile 效果相同
阅读帮助主题
四张带数值、趋势箭头和迷你图的 KPI 卡片

布局与内容

带趋势和迷你图的 KPI 卡片

每个仪表盘开头都是一行重要的数字:收入、订单、流失率、响应时间。KPI 卡片在一个组件中以大字号显示数值、图标、带文字的趋势箭头、页脚行和近期数值的小型迷你图。新数据到达时调用 AddValue,迷你图随之滚动;MaxPoints 决定保留多少历史数据。AccentColor 可让您按所测量的内容为卡片着色,卡片会跟随所在仪表盘的浅色或深色主题。

  • TsgcVCLKPICard,带 Title、Value、Icon、FooterText 和 AccentColor
  • Trend:ktUp、ktDown 或 ktNeutral,带 TrendValue 文本
  • 用于迷你图的 AddValue、ClearValues 和 MaxPoints
  • AddValue 是线程安全的,因此可由工作线程提供数据
阅读帮助主题

用户布局与实时数据

让用户自行安排起始页并保存,再通过网络为其提供数据。

用户布局与实时数据 仅限注册版

用户拖动并调整磁贴大小

在共享的起始页上,每位用户都希望把不同的数字放在最前面。开启拖动后,用户可通过标题栏移动磁贴;开启调整大小后,角落的手柄可改变其跨度。鼠标移动时,目标单元格绘制在磁贴下方,磁贴会吸附到网格。按 Esc 取消。标记为锁定的磁贴永远不会移动。再结合下面的保存布局,每位用户都保留自己安排的起始页,而您仍可决定存在哪些磁贴。

  • 仪表盘上的 AllowDrag 和 AllowResize
  • 磁贴上的 Locked 使其固定不动
  • 每次拖动或调整大小后触发 OnLayoutChanged
  • FireMonkey 仪表盘的行为相同

社区版通过代码构建固定布局;运行时拖动和调整大小属于注册版。

阅读帮助主题

用户布局与实时数据 仅限注册版

保存每位用户的布局并恢复

用户安排好的布局必须在重启后恢复。一次调用即可将网格参数以及每个命名磁贴的单元格和可见性写成紧凑的 JSON,另一次调用则应用它。磁贴按名称匹配,未知名称会被忽略,文本中缺失的磁贴保留其单元格,因此在新版本中添加磁贴后,旧的已保存布局仍可加载。JSON 小巧易读,因此您可以随应用程序提供默认布局,并提供一个重置按钮来重新加载它。

  • SaveLayout 和 LoadLayout 返回并应用 JSON 字符串
  • SaveLayoutToFile、LoadLayoutFromFile、SaveLayoutToStream、LoadLayoutFromStream
  • 保存时为不带 BOM 的 UTF-8,加载时会跳过 BOM
  • 可按用户将该字符串存储在文件、注册表或数据库中
阅读帮助主题

用户布局与实时数据 仅限注册版

直接来自网络的实时 KPI

运营界面显示的数值每秒都在变化。sgcDashboardWS 桥接从 sgcWebSockets 客户端的每条 JSON 消息中读取一个数字,并推送到卡片中,迷你图也一并更新。趋势箭头会自动跟随前一个数值。在 Delphi 2010 及更高版本中,文本更新在主线程中运行,因此客户端可以使用任何线程模式。非有效 JSON 的消息,或其路径不是数字的消息会被忽略,因此嘈杂的数据流绝不会破坏界面。

  • TsgcDashboardSource_WebSocket、TsgcDashboardSource_MQTT(带 Topic)和 TsgcDashboardSource_SSE
  • ValuePath 例如 data.items[0].value,ValueFormat 默认为 %.2f
  • TitlePath 和 TrendValuePath 可将更多字段复制到卡片中
  • 每次更新后触发 OnValue 事件

该桥接需要 sgcWebSockets。在社区版中,请通过 Value 和 AddValue 用代码为卡片提供数据。

阅读帮助主题

主题、图像与平台

整个界面风格统一,同样的卡片可输出为图像,同样的设计适用于每个目标平台。

深色主题下的 sgcDashboard 磁贴,包含 KPI 迷你图、实时图表、地图、PDF 查看器和报表预览

主题、图像与平台

一个属性为整个仪表盘设置主题

深色的控制室和明亮的办公室需要同一个界面的两种外观。设置仪表盘主题后,它会作用于每个磁贴、每张 KPI 卡片以及其中的 sgcUI 控件,因此图表、仪表和表格一起切换。主题类型与每个 sgcUI 产品使用的相同,所以整个应用程序可以遵循同一个设置。需要突出显示的磁贴可以保留自己的主题,而仪表盘的其余部分则跟随全局主题。

  • 仪表盘上的 Theme := utDark 或 utLight
  • 磁贴通过 ParentTheme 跟随,或保留自己的 Theme
  • KPI 卡片和无界面 KPI 图像使用相同的调色板
  • 可在运行时更改,例如通过日夜切换开关
阅读帮助主题

主题、图像与平台

可用于邮件和网页的 KPI 卡片图像

仪表盘上的数字常常也需要用在别处:晨报邮件、内部网页面或 PDF。TsgcDashboardKPI 无需窗口,也无需 VCL 或 FireMonkey 即可渲染同一张卡片,因此控制台程序、Windows 服务或 Linux64 服务器都能生成。宽度和高度为逻辑像素,缩放系数可生成清晰的高 DPI 图像。可用于定时报表:用仪表盘所用的同样查询构建卡片,并把图像附加到邮件中。

  • SaveToPNG 保存到文件或流,例如 320 乘 160、缩放 2 得到 640 乘 320 的图像
  • SaveToSVG 输出清晰的矢量图
  • Card.KPI.SaveToPNG 保存屏幕上卡片所显示的内容
  • 可在所有平台构建,包括 Linux64
阅读帮助主题

主题、图像与平台

桌面、移动和 .NET 上的同一个仪表盘

只需编写一次仪表盘,即可复用设计。FireMonkey 仪表盘、磁贴和 KPI 卡片可在 Windows、macOS、iOS 和 Android 上运行,.NET 移植版则为 WinForms、WPF 和 Avalonia 提供相同的类。由于同一个布局引擎在所有平台上计算单元格,已保存的布局在每个目标平台上含义相同。每个目标平台的演示集也相同:Delphi 和 C++ Builder 提供 Basic、LiveKPI、SaveLayout 和 Suite,.NET 则提供 WinForms、WPF 和 Avalonia 版本。

  • TsgcFMXDashboard、TsgcFMXDashboardTile、TsgcFMXKPICard
  • TsgcWinFormsDashboard、TsgcWinFormsKPICard 及其 WPF 和 Avalonia 对应组件
  • Delphi 7 到 13 的 VCL,自 XE6 起的 FireMonkey,C++ Builder 2007 到 13
  • .NET Framework 4.7.2、.NET 8、.NET 9 和 .NET 10
阅读帮助主题

无障碍

面向屏幕阅读器的 UI Automation、键盘和高对比度,无需任何设置。

无障碍

无需鼠标即可在磁贴间移动并重新排列

sgcDashboard 将仪表板及其磁贴连同标题和位置、每个磁贴中承载的控件,以及带有标题、值、单位和趋势的 KPI 卡片向 Microsoft UI Automation 公开。

  • 方向键在磁贴之间移动,Home 和 End 转到第一个或最后一个磁贴,Enter 把焦点移入焦点磁贴
  • Ctrl+Shift+方向键移动磁贴(AllowDrag),Alt+Shift+方向键调整其大小(AllowResize),除非仪表板已锁定
  • 仪表板是 Tab 停靠点,并显示可见的焦点环
  • 在 Windows 高对比度主题下,磁贴外观使用系统颜色,KPI 卡片的强调色和趋势颜色被系统颜色取代

无障碍功能在每个版本中默认开启,包括免费的社区版,可用于 VCL(Delphi 和 C++Builder 从 Delphi 7 到 Delphi 13 的每个版本)、Windows 上的 FireMonkey,以及 WinForms、WPF 和 Avalonia。在 Delphi 和 C++Builder 中,AccessibleName 和 AccessibleDescription 设置向 UI Automation 公开的名称和说明,在 .NET 中,各框架标准的无障碍名称和帮助文本起同样的作用。请参见无障碍符合性报告。

阅读帮助主题

查看 sgcDashboard 的实际效果

sgcUI 套件演示中的 sgcDashboard:使用内置模拟数据、可离线运行的完整应用程序。

谁在用 sgcDashboard 构建应用

ERP 中的管理层和销售仪表盘

ERP 的起始页以带趋势箭头的 KPI 卡片显示收入、未结订单、逾期发票和流失率,下方磁贴中是销售图表和重点客户表格。每晚服务会将同样的卡片渲染为 PNG,用于管理层邮件,数字和颜色与屏幕上完全一致。

  • KPI 卡片
  • 磁贴中的任意控件
  • 无界面 KPI 图像
  • 主题
运行 Suite 演示

运营与 IoT 控制室

工厂中的墙面屏幕显示产线吞吐量、温度和报警数量。MQTT 数据源在读数到达时将其推送到各自的卡片中,迷你图显示最近几分钟的变化,深色主题让房间在夜间保持安静。相邻磁贴中的仪表和图表遵循同一个主题。

  • MQTT 数据源
  • 迷你图
  • 深色主题
  • 磁贴中的仪表
运行 LiveKPI 演示

桌面 SaaS 客户端中的个人起始页

在由多种角色使用的桌面客户端中,每位用户都把重要的磁贴拖到顶部,调整最常关注的图表大小,并隐藏其余内容。布局按用户保存为 JSON,并在下次登录时恢复,更新中新增的磁贴则会自动流入空闲空间。

  • 拖动与调整大小
  • SaveLayout 和 LoadLayout
  • 自动流式排列
运行 SaveLayout 演示

几行代码构建 KPI 仪表盘

Delphi、C++ Builder 和 C# 中使用相同的 API:网格上的磁贴、每个磁贴中带迷你图的 KPI 卡片、深色主题和已保存的布局。拖动和布局文件需要注册版。

12 列网格上的磁贴,每个磁贴中有一张 KPI 卡片,采用深色主题,布局保存到文件。拖动和布局文件需要注册版。

uses
  SysUtils, Controls, sgcUICore_Theme, sgcDashboard_KPI, sgcDashboard_VCL, sgcDashboard_KPI_VCL;
procedure AddKPI(aDash: TsgcVCLDashboard; const aName, aTitle, aValue,
  aChange: string; aCol: Integer; aTrend: TsgcDashboardKPITrend);
var
  oTile: TsgcVCLDashboardTile;
  oCard: TsgcVCLKPICard;
begin
  oTile := TsgcVCLDashboardTile.Create(aDash.Owner);
  oTile.Name := aName;
  oTile.Parent := aDash;
  oTile.Col := aCol;
  oTile.ColSpan := 4;
  oTile.Title := aTitle;
  oCard := TsgcVCLKPICard.Create(aDash.Owner);
  oCard.Parent := oTile;
  oCard.Align := alClient;
  oCard.Value := aValue;
  oCard.Trend := aTrend;
  oCard.TrendValue := aChange;
  oCard.AddValue(47);
  oCard.AddValue(52);
end;
procedure BuildDashboard(aOwner: TWinControl);
var
  oDash: TsgcVCLDashboard;
begin
  oDash := TsgcVCLDashboard.Create(aOwner);
  oDash.Parent := aOwner;
  oDash.Align := alClient;
  // drag, resize and layout files need the Registered edition
  oDash.AllowDrag := True;
  AddKPI(oDash, 'tileRevenue', 'Revenue', '12,480 USD', '+4.2 %', 0, ktUp);
  AddKPI(oDash, 'tileOrders', 'Orders', '1,284', '+8.1 %', 4, ktUp);
  oDash.Theme := utDark;
  if FileExists('layout.json') then
    oDash.LoadLayoutFromFile('layout.json');
  oDash.SaveLayoutToFile('layout.json');
end;

阅读帮助主题 →

C++ Builder 中的同一个仪表盘,使用生成的头文件。

#include <vcl.h>
#include "sgcUICore_Theme.hpp"
#include "sgcDashboard_KPI.hpp"
#include "sgcDashboard_VCL.hpp"
#include "sgcDashboard_KPI_VCL.hpp"

void AddKPI(TsgcVCLDashboard *aDash, const String aName, const String aTitle,
  const String aValue, const String aChange, int aCol,
  TsgcDashboardKPITrend aTrend)
{
  TsgcVCLDashboardTile *oTile = new TsgcVCLDashboardTile(aDash->Owner);
  oTile->Name = aName;
  oTile->Parent = aDash;
  oTile->Col = aCol;
  oTile->ColSpan = 4;
  oTile->Title = aTitle;
  TsgcVCLKPICard *oCard = new TsgcVCLKPICard(aDash->Owner);
  oCard->Parent = oTile;
  oCard->Align = alClient;
  oCard->Value = aValue;
  oCard->Trend = aTrend;
  oCard->TrendValue = aChange;
  oCard->AddValue(47);
  oCard->AddValue(52);
}

void BuildDashboard(TWinControl *aOwner)
{
  TsgcVCLDashboard *oDash = new TsgcVCLDashboard(aOwner);
  oDash->Parent = aOwner;
  oDash->Align = alClient;
  // drag, resize and layout files need the Registered edition
  oDash->AllowDrag = true;
  AddKPI(oDash, "tileRevenue", "Revenue", "12,480 USD", "+4.2 %", 0, ktUp);
  AddKPI(oDash, "tileOrders", "Orders", "1,284", "+8.1 %", 4, ktUp);
  oDash->Theme = utDark;
  if (FileExists("layout.json"))
    oDash->LoadLayoutFromFile("layout.json");
  oDash->SaveLayoutToFile("layout.json");
}

阅读帮助主题 →

C# 中的 WinForms 版本,类名与 Delphi 相同。

using System.Windows.Forms;
using esegece.sgcDashboard;
using esegece.sgcUICore;

public static class KpiDashboard
{
    // One KPI tile with a sparkline, placed on the dashboard grid.
    static void AddKPI(TsgcWinFormsDashboard aDash, string aName, string aTitle,
        string aValue, string aChange, int aCol, TsgcDashboardKPITrend aTrend)
    {
        var oTile = new TsgcWinFormsDashboardTile();
        oTile.Name = aName;
        oTile.Title = aTitle;
        oTile.Col = aCol;
        oTile.ColSpan = 4;
        var oCard = new TsgcWinFormsKPICard();
        oCard.Dock = DockStyle.Fill;
        oCard.Value = aValue;
        oCard.Trend = aTrend;
        oCard.TrendValue = aChange;
        oCard.AddValue(47);
        oCard.AddValue(52);
        oTile.Controls.Add(oCard);
        aDash.Controls.Add(oTile);
    }

    public static void Build(Form aForm)
    {
        var oDash = new TsgcWinFormsDashboard();
        oDash.Dock = DockStyle.Fill;
        oDash.Theme = TsgcUITheme.utDark;
        oDash.AllowDrag = true; // drag and layout files: Registered edition
        AddKPI(oDash, "tileRevenue", "Revenue", "12,480 USD", "+4.2 %", 0, TsgcDashboardKPITrend.ktUp);
        AddKPI(oDash, "tileOrders", "Orders", "1,284", "+8.1 %", 4, TsgcDashboardKPITrend.ktUp);
        AddKPI(oDash, "tileChurn", "Churn", "2.4 %", "-0.3 %", 8, TsgcDashboardKPITrend.ktDown);
        aForm.Controls.Add(oDash);
        if (System.IO.File.Exists("layout.json"))
            oDash.LoadLayoutFromFile("layout.json");
        oDash.SaveLayoutToFile("layout.json");
    }
}
dotnet add package esegece.sgcDashboard.WinForms

阅读帮助主题 →

运行 sgcDashboard 演示

Delphi 和 C++ Builder 各四个演示,.NET 六个,全部包含在预编译演示下载中。

Basic

Basic

12 列网格上的六个磁贴和四张 KPI 卡片,其他磁贴中有日志和列表。这是了解布局引擎和主题切换的最快方式。

仅限注册版 LiveKPI

由 sgcDashboardWS 桥接提供数据的 KPI 卡片,消息到达时数值跳动、迷你图增长。需要 sgcWebSockets。

仅限注册版 SaveLayout

通过标题栏拖动磁贴,通过手柄调整大小,将布局保存为 JSON,重启演示后即可看到布局已恢复。

Suite

在一个带主题的仪表盘中,集合了来自其他 sgcUI 产品的图表、地图、PDF 查看器、报表预览和 KPI 卡片。

.NET 演示

适用于 WinForms、WPF 和 Avalonia 的 Basic、BasicWpf、BasicAvalonia、LiveKPI、SaveLayout 和 Suite。

预编译演示

每款 sgcUI 产品的可直接运行的可执行文件,无需安装。

下载 sgcUI_bin.zip →

sgcDashboard 包含在哪些版本中

sgcDashboard 包含在 sgcUI Professional 和 Enterprise 中,也可单独购买。sgcDashboard 还包含在 All-Access 套餐中。

sgcDashboard 单品包

€199 / 开发者,含完整源代码,1 年更新。

购买 sgcDashboard → 查看价格 →

sgcUI Professional

Standard 加 sgcDashboard、sgcCharts和sgcGauges,起价 €529。

查看 Professional →

sgcUI Enterprise

全部 14 款 sgcUI 产品,起价 €699。

查看 Enterprise →

免费的社区版(NuGet 上的 esegece.sgcDashboard.Community)包含网格、磁贴、带迷你图的 KPI 卡片、无界面 PNG 和 SVG 以及主题。它不包含运行时拖动与调整大小、SaveLayout 和 LoadLayout,以及 sgcDashboardWS 桥接。

功能社区版(免费)注册版
带跨度和自动流式排列的磁贴网格✓✓
带趋势和迷你图的 KPI 卡片✓✓
浅色和深色主题✓✓
输出为 PNG 和 SVG 的无界面 KPI 卡片✓✓
运行时拖动并调整磁贴大小−✓
SaveLayout 和 LoadLayout−✓
sgcDashboardWS 实时数据源(WebSocket、MQTT、SSE)−✓

支持的框架与平台

sgcDashboard 中的组件

组件说明
TsgcVCLDashboard、TsgcFMXDashboard适用于 VCL 和 FireMonkey 的网格容器。
TsgcVCLDashboardTile、TsgcFMXDashboardTile带标题、可承载任意控件的磁贴。
TsgcVCLKPICard、TsgcFMXKPICard带趋势、页脚和迷你图的 KPI 卡片。
TsgcDashboardKPI框架无关的无界面 KPI 卡片,支持 PNG 和 SVG 导出。
TsgcDashboardLayout布局引擎,在 Linux64 上同样可用。
TsgcDashboardSource_WebSocket、_MQTT、_SSEsgcDashboardWS 桥接的实时 KPI 数据源(仅注册版)。
目标组件平台
Delphi 7 到 13,VCLTsgcVCLDashboardWin32 与 Win64
Delphi XE6 到 13,FireMonkeyTsgcFMXDashboardWindows、macOS、iOS 和 Android
C++ Builder 2007 到 13TsgcVCLDashboard、TsgcFMXDashboard生成的 .hpp 头文件和静态库
Delphi 10.2 到 13,框架无关TsgcDashboardLayout、TsgcDashboardKPILinux64,布局引擎和无界面 KPI 卡片
.NET Framework 4.7.2、.NET 8、9 和 10TsgcWinFormsDashboard,以及 WPF 和 Avalonia 对应组件WinForms、WPF 和 Avalonia

常见问题解答

可以,在注册版中。AllowDrag 和 AllowResize 让用户通过标题栏移动磁贴并通过手柄调整大小,SaveLayoutToFile 或 SaveLayout 将结果存储为 JSON。LoadLayout 按磁贴名称恢复,因此布局在您的应用程序升级后依然有效。

任何控件。磁贴是一个容器:把控件的父级设为该磁贴,并将其对齐到客户区。Suite 演示承载了图表、地图、PDF 查看器和报表预览,磁贴中的 sgcUI 控件会遵循仪表盘主题。

通过代码设置 Value 并调用线程安全的 AddValue。使用注册版和 sgcWebSockets 时,sgcDashboardWS 数据源会按 ValuePath 从每条 WebSocket、MQTT 或 SSE 消息中读取一个数字,并为您更新卡片及其趋势。

仪表盘和磁贴、带自动流式排列的网格布局、带迷你图的 KPI 卡片、无界面 PNG 和 SVG 以及主题。它不包含运行时拖动与调整大小、SaveLayout 和 LoadLayout,以及 sgcDashboardWS 桥接。请参阅版本。

可以。TsgcFMXDashboard、其磁贴和 KPI 卡片自 Delphi XE6 起可在 Windows、macOS、iOS 和 Android 的 FireMonkey 上运行,使用与 VCL 仪表盘相同的布局引擎。尺寸与设备无关,并跟随窗体缩放。

可以。TsgcDashboardKPI 无需窗口,也无需 VCL 或 FireMonkey 即可绘制卡片,并将 PNG 或 SVG 写入文件或流。它可在所有平台构建,包括 Linux64,因此服务或 Web 服务器都可以生成这些图像。

支持。所有尺寸均为与设备无关的像素。VCL 仪表盘按显示器 PPI 除以 96 进行缩放,FireMonkey 仪表盘按窗体缩放比例缩放,因此磁贴、间距和行高在任何显示器上都保持比例。

sgcDashboard 帮助

3,000+开发者
20+年
761+组件
30+API 集成
5平台
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策

立即试用 sgcDashboard

sgcUI 试用版包含 sgcDashboard 和所有其他 sgcUI 产品。