Wykresy i wizualizacja
Chart (Chart.js: liniowy, słupkowy, kołowy, pierścieniowy, radarowy, polarny, bąbelkowy, punktowy), Gauge, Diagram jako wbudowany SVG oraz Map na Leaflet.
Zobacz rodzinę →
Zbuduj całą aplikację webową w Pascalu. Komponenty HTML po stronie serwera renderują znaczniki Bootstrap 5, htmx utrzymuje interaktywność każdego kliknięcia, a WebSockets wypychają aktualizacje na żywo do otwartej strony. Bez npm, bez kroku budowania JavaScript.
uses
sgcHTML_Component_StatCard, sgcHTML_Component_Chart,
sgcHTML_Component_Grid, sgcHTMX_Engine_Server;
// 1. KPI row, three stat cards
FBody :=
TsgcHTMLComponent_StatCard.Build('Monthly Revenue', '$48,200',
scSuccess, stUp, '12.5%', 'kpiRevenue', sgBlueViolet) +
TsgcHTMLComponent_StatCard.Build('Orders Today', '1,284',
scSuccess, stUp, '4.1%', 'kpiOrders', sgBlueViolet) +
TsgcHTMLComponent_StatCard.Build('Live Users', '312',
scSuccess, stNeutral, 'live', 'kpiUsers', sgBlueViolet);
// 2. Chart
oChart.ChartType := ctBar;
oChart.AddLabel('Mon'); oChart.AddLabel('Tue'); oChart.AddLabel('Wed');
oChart.AddLabel('Thu'); oChart.AddLabel('Fri');
oChart.AddDataset('Orders', [42, 58, 51, 73, 66],
'#7C3AED', 'rgba(124,58,237,.25)', True);
FBody := FBody + oChart.HTML;
// 3. Grid, straight from a dataset
oGrid.ShowSort := True;
oGrid.ShowFilter := True;
oGrid.LoadFromDataSet(qryOrders);
FBody := FBody + oGrid.HTML;
oPage.BodyContent := FBody;
Response := oPage.GetHTML; // full Bootstrap page
// 4. Later, from any thread, push a live KPI
oHTMX.BroadcastFragment(
'<div id="kpiRevenue" hx-swap-oob="true">' +
CurrToStr(FRevenue) + '</div>');
Po lewej: Object Pascal. Po prawej: strona, którą serwuje, na żywo w przeglądarce. Te same komponenty w C++ Builder i C#.
Komponenty HTML po stronie serwera dla Delphi, C++ Builder i .NET. Wykresy, siatki, formularze, pulpity i czat, renderowane jako znaczniki Bootstrap 5 i utrzymywane na żywo przez htmx nad WebSocket.
Przegląd produktu CennikKażdy widżet to natywna klasa. Ustaw jego właściwości, opcjonalnie powiąż go z TDataSet, a potem odczytaj właściwość HTML. Grid, DataTable, Chart, Select, TreeView, Scheduler, Timeline i Form ładują się prosto z zestawu danych.
Chart (Chart.js: liniowy, słupkowy, kołowy, pierścieniowy, radarowy, polarny, bąbelkowy, punktowy), Gauge, Diagram jako wbudowany SVG oraz Map na Leaflet.
Zobacz rodzinę →Grid z sortowaniem, filtrowaniem, eksportem CSV i PDF, edycją inline, grupowaniem i wirtualnym przewijaniem. Plus DataTable, Calendar, Scheduler, Timeline, KanbanBoard i Gantt.
Zobacz rodzinę →Form z walidacją, Edit, Memo, CheckBox, RadioGroup, Select, InputGroup, AutoComplete, DatePicker, FileUpload, RichEditor i Rating.
Zobacz rodzinę →NavBar, Sidebar, Breadcrumb, Tabs, Pagination, Toolbar, TreeView, Stepper, Dropdown, ButtonGroup, ListGroup, DashboardLayout i Site.
Zobacz rodzinę →Panel, kafelki KPI StatCard ze strzałkami trendu i gradientami, Accordion, Carousel, Image, Avatar i Video.
Zobacz rodzinę →Modal, Offcanvas, Popover, Toast, Snackbar, centrum powiadomień z plakietką nieprzeczytanych, Spinner i szkielety Placeholder.
Zobacz rodzinę →ChatBox, Chat z wiadomościami tekstowymi, obrazkowymi, plikowymi, audio i wideo oraz AIChat z wyborem dostawcy, strumieniowaniem tokenów i cytowaniem źródeł RAG.
Zobacz rodzinę →Login, przyciski OAuth SocialLogin dla Google, Facebook, Apple, GitHub i Microsoft, OAuthCallback oraz passkeys WebAuthnLogin.
Zobacz rodzinę →TsgcHTMLEngine_Server serwuje wyrenderowane strony, TsgcHTMX_Engine_Server obsługuje żądania htmx i wypycha fragmenty, a PageBuilder, TemplateBootstrap, ThemeController i ThemeBuilder zarządzają dokumentem oraz motywami jasnym i ciemnym.
Bootstrap 5.3 i htmx są dostarczane jako wbudowane, więc w czasie działania nie ma żadnego wywołania do CDN. Wbudowany tekst interfejsu dostępny jest w 17 językach, a każdy komponent domyślnie koduje swoją dynamiczną treść w HTML, atrybutach, JavaScript i URL.
Nie ma stanu po stronie klienta do synchronizacji, bo nie ma aplikacji klienckiej. Twój kod w Pascalu lub C# jest właścicielem strony: odpowiada na pierwsze żądanie HTML-em, na każdą interakcję fragmentem i wypycha nowe fragmenty do każdej otwartej przeglądarki w momencie zmiany danych.
Zbuduj stronę z klas TsgcHTMLComponent_* w Pascalu lub C#, albo powiąż je z zestawem danych i pozwól im wyrenderować wiersze.
TsgcHTMLEngine_Server odpowiada na żądanie z twojego własnego serwera HTTP kompletnym dokumentem Bootstrap 5 wraz z osadzonymi zasobami.
htmx odsyła interakcję do OnHTMXRequest. Twoja procedura obsługi zwraca tylko ten fragment, który się zmienił, a htmx podmienia go w miejscu.
BroadcastFragment wysyła fragment out-of-band przez WebSocket do każdej podłączonej przeglądarki. Jest thread-safe, więc może go wywołać bezpośrednio timer w tle.
Nagłówek, menu nawigacji, obszar treści i stopka, opakowane w wymienny szablon układu. Ustaw układ, motyw i markę, dodaj menu i treść, a potem odczytaj właściwość HTML i podaj gotową stronę.
uses
sgcHTML_Enums, sgcHTML_Component_Site;
oSite := TsgcHTMLComponent_Site.Create(nil);
try
oSite.Layout := slTopNavSidebarLeft;
oSite.Theme.Preset := stpViolet;
oSite.Theme.Mode := stmLight;
oSite.Brand.Text := 'Acme';
oSite.AddMenu('Dashboard', '/', '📊').Active := True;
oSite.AddMenu('Reports', '/reports', '📈');
oSite.AddSection('Overview', '<p>Welcome back.</p>', 'overview');
oSite.AddContent('<div class="alert alert-info">All systems normal</div>');
oSite.Footer.Text := '© 2026 Acme';
Response := oSite.HTML; // the whole site, one component
finally
oSite.Free;
end;
using esegece.sgcWebSockets;
var site = new TsgcHTMLComponent_Site();
site.Layout = TsgcHTMLSiteLayout.slTopNavSidebarLeft;
site.Theme.Preset = TsgcHTMLSiteThemePreset.stpViolet;
site.Theme.Mode = TsgcHTMLSiteThemeMode.stmLight;
site.Brand.Text = "Acme";
site.AddMenu("Dashboard", "/", "📊").Active = true;
site.AddMenu("Reports", "/reports", "📈");
site.AddSection("Overview", "<p>Welcome back.</p>", "overview");
site.AddContent("<div class=\"alert alert-info\">All systems normal</div>");
site.Footer.Text = "© 2026 Acme";
string html = site.GetHTML(); // the whole site, one component
sgcHTML wymaga sgcWebSockets w edycji Professional lub Enterprise i jest zawarty w pakiecie All-Access.
Twoje strony sgcHTML potrzebują danych, a te zwykle pochodzą z API. sgcOpenAPI to jeden zintegrowany produkt dla Delphi i C++ Builder: parser OpenAPI 3.x, natywny generator SDK w Pascalu, komponent serwera OpenAPI oraz biblioteka gotowych SDK chmurowych do natychmiastowego użycia.
Wczytaj dowolny dokument OpenAPI 3.x, w JSON lub YAML, do silnie typowanego modelu obiektowego, po którym możesz poruszać się z kodu.
Parser →Zamień tę specyfikację w natywnego klienta Delphi lub C++ Builder, z typowanymi klasami żądań i odpowiedzi, gotowego do kompilacji.
Funkcje generatora →Publikuj własne endpointy jako żywy openapi.json lub openapi.yaml, buduj endpointy ze specyfikacji i waliduj wobec niej żądania i odpowiedzi.
Serwer →Amazon AWS 280+, Microsoft Azure 650+, Google Cloud 250+ i Microsoft Graph 15+ usług, już wygenerowanych za ciebie.
Przejrzyj API →sgcHTML to warstwa interfejsu. Reszta stosu leży pod nią, od gniazda po podpis.
WebSocket, HTTP/2, HTTP/3, MQTT, AMQP, WebRTC, AI oraz ponad 30 integracji API. Serwery HTTP i WebSocket, na których działa sgcHTML.
Dowiedz się więcej →Komponenty HTML i UI po stronie serwera dla Delphi, C++ Builder i .NET. Znaczniki Bootstrap 5, interaktywność htmx, aktualizacje w czasie rzeczywistym.
Dowiedz się więcej →Parser OpenAPI 3.x, generator SDK w Pascalu, komponent serwera OpenAPI oraz ponad 1 195 gotowych SDK chmurowych.
Dowiedz się więcej →Podpisy dokumentów (XAdES, PAdES, CAdES, ASiC) i podpisywanie kodu (Authenticode, ClickOnce, NuGet, VSIX), z 10 dostawcami kluczy i 21 profilami krajowymi UE.
Dowiedz się więcej →Windows Hello, czytniki linii papilarnych i rozpoznawanie twarzy przez Windows Biometric Framework, dla Delphi i C++ Builder.
Dowiedz się więcej →Ulepszony zestaw komponentów Indy TCP/IP z rozszerzoną obsługą protokołów i optymalizacjami wydajności dla aplikacji klasy enterprise.
Dowiedz się więcej →Zaufali nam programiści Delphi, C++ Builder, Lazarus i .NET budujący aplikacje czasu rzeczywistego na całym świecie.
Wasza biblioteka sgcWebSockets jest bardzo przydatna i łatwa w konfiguracji. Tak trzymać!
sgcWebSockets jest niesamowity, a wasze wsparcie jest najlepsze!
Bardzo dziękuję za pomoc i wsparcie, uwielbiam wasze komponenty.