Poznaj sgcChat.
Czat w Twojej aplikacji.
Asystent AI, który strumieniuje odpowiedzi jako sformatowany Markdown, oraz czat zespołowy z obecnością, wskaźnikiem pisania, potwierdzeniami odczytu i reakcjami. Natywne kontrolki dla Delphi, C++ Builder i .NET.
- VCL
- FireMonkey
- WinForms
- WPF
- Avalonia
- Headless SVG i PNG
Dziś wydajemy sgcUI 2026.11. Wersja dodaje nowy produkt, sgcChat, który umieszcza w Twojej aplikacji czat z asystentem AI i czat zespołowy, a ponadto uzupełnia szereg mniejszych braków w całym pakiecie: wskaźniki przyjmujące dane od użytkownika, wiązanie danych działające w obie strony, dashboard publikowany jako strona WWW, serie cykliczne Outlooka w planerze, skrypty w raportach i więcej.
sgcChat jest szesnastym produktem sgcUI. Działa w VCL i FireMonkey dla Delphi i C++ Builder oraz w WinForms, WPF i Avalonia dla .NET i wchodzi w skład sgcUI Enterprise oraz All-Access. Nie jest sprzedawany jako osobny pakiet.
sgcChat: asystent AI w Twojej aplikacji
Odpowiedź AI nadchodzi w małych porcjach, a użytkownicy chcą ją czytać w trakcie pisania. TsgcChatAI wiąże rozmowę z dostawcą, wysyła historię i prompt systemowy oraz pokazuje każdą porcję jako sformatowany Markdown, gdy tylko nadejdzie. Dostawca działa w wątku roboczym, więc okno pozostaje responsywne, a panel czatu oferuje zatrzymanie, ponowne wygenerowanie oraz edycję i ponowne wysłanie dla każdej odpowiedzi.
- Strumieniowany Markdown z kursorem w trakcie pisania odpowiedzi.
- Karty wywołań narzędzi z nazwą narzędzia, argumentami, wynikiem i stanem: w toku, gotowe lub błąd.
- Historia rozmowy zapisywana do JSON i wczytywana z JSON.
sgcChat nie wiąże Cię z jednym dostawcą AI. TsgcChatAIProvider_AIChat łączy się z TsgcAIChat z sgcWebSockets, który komunikuje się z OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok i Mistral. TsgcChatAIProvider_UICore korzysta z warstwy dostawców AI współdzielonej przez każdy produkt sgcUI, a TsgcChatAIEventProvider pozwala strumieniować z własnego backendu w zdarzeniu. Tak TsgcChatAI odpowiada przez 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;
Zmień Provider, aby użyć Anthropic, Gemini, DeepSeek, Ollama, Grok lub Mistral. Pomoc sgcChat zawiera pełny przewodnik szybkiego startu.
Rozmowa z Claude, OpenAI, Gemini i innymi dostawcami LLM wymaga sgcWebSockets, który jest zawarty w All-Access. TsgcChatAIProvider_AIChat znajduje się w pakiecie mostu sgcChatWS (.NET: esegece.sgcChat.sgcWebSockets). Bez sgcWebSockets TsgcChatAIEventProvider pozwala własnemu kodowi wywoływać dowolną usługę AI.
sgcChat: czat zespołowy na Twoim serwerze
Działy wsparcia, zespoły terenowe i narzędzia wewnętrzne potrzebują czatu, który ich użytkownicy już umieją obsługiwać. Widok czatu grupuje wiadomości każdego autora z awatarem i nazwą, pokazuje, kto jest online, nieobecny lub zajęty, pokazuje, kto pisze, i oznacza każdą wiadomość jako wysłaną, dostarczoną lub przeczytaną. Użytkownicy odpowiadają na wiadomość, reagują na nią, edytują lub usuwają własne wiadomości i wysyłają załączniki z miniaturami obrazów i znacznikami plików.
Czat nie zależy od jednego serwera. TsgcChatEventTransport przekazuje do Twojego kodu każdą wiadomość, zmianę stanu pisania, potwierdzenie i reakcję jako udokumentowaną ramkę JSON. W sgcWebSockets TsgcChatTransport_WebSocket łączy klienta, a TsgcChatServer_WebSocket przekazuje wiadomości między klientami kanału, śledzi obecność każdego użytkownika i wysyła ostatnie wiadomości użytkownikom, którzy dołączają później. Przekaźnik działa w usłudze lub w programie konsolowym:
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;
Oba powyższe przykłady w Delphi zostały skopiowane bez zmian z przykładów w pomocy sgcChat, które skompilowano w Delphi 13 (Win32) względem źródeł sgcUI i sgcWebSockets.
Czat zespołowy WebSocket wymaga sgcWebSockets, który jest zawarty w All-Access. TsgcChatTransport_WebSocket i TsgcChatServer_WebSocket znajdują się w pakiecie mostu sgcChatWS (.NET: esegece.sgcChat.sgcWebSockets). Bez sgcWebSockets TsgcChatEventTransport łączy czat z dowolnym backendem.
sgcChat: natywny podgląd Markdown
Silnik stojący za dymkami czatu jest także osobną kontrolką. TsgcVCLMarkdownViewer i TsgcFMXMarkdownViewer pokazują nagłówki, wyróżnienia, cytaty, listy, listy zadań, tabele, odnośniki i obrazy oraz podświetlają bloki kodu w Pascalu, C#, C++, JavaScript, Pythonie, JSON, SQL i innych językach. AppendMarkdown dodaje tekst w miarę nadchodzenia, a użytkownicy zaznaczają i kopiują tekst lub cały blok kodu przyciskiem kopiowania. Użyj go do informacji o wydaniach, stron pomocy i wiadomości pisanych w Markdown.
sgcChat pasuje do reszty pakietu
Czat stosuje jasny, ciemny i Fluent motyw sgcUI. Rozmowa po arabsku lub hebrajsku jest odbijana lustrzanie, a teksty kontrolek są przetłumaczone na 12 języków sgcUI. W Windows widok czatu jest dla czytników ekranu listą wiadomości, z autorem i czasem każdej wiadomości. Model rozmowy, dokument Markdown i widok nie zależą od VCL ani FireMonkey, więc usługa może wyrenderować rozmowę lub dokument Markdown do SVG albo PNG bez okna, także w Linux64.
Komponenty to TsgcVCLChatPanel, TsgcVCLChatView, TsgcVCLChatInput i TsgcVCLMarkdownViewer, ten sam zestaw z prefiksem TsgcFMX dla FireMonkey oraz te same kontrolki dla WinForms, WPF i Avalonia, takie jak TsgcWinFormsChatPanel, TsgcWpfChatPanel i TsgcAvaloniaChatPanel. Dema obejmują asystenta AI, klienta czatu zespołowego wraz z serwerem przekaźnikowym oraz podgląd Markdown, dla VCL, FireMonkey, C++ Builder, WinForms, WPF i Avalonia.
sgcChat jest sprzedawany w ramach sgcUI Enterprise i pakietu All-Access, który zawiera także sgcWebSockets dla dostawcy AI i mostka WebSocket. Zobacz stronę sgcChat i macierz funkcji.
W całym pakiecie: wejście, dane i wyjście
Reszta wydania uzupełnia mniejsze braki w produktach: kontrolki przyjmujące dane od użytkownika, wiązanie danych działające w obie strony oraz więcej sposobów na wyprowadzenie ekranu poza aplikację.
sgcGauges: wskaźniki wejściowe i skórki
Cztery wskaźniki wejściowe, TsgcVCLKnobGauge, TsgcVCLSliderGauge, TsgcVCLToggleSwitchGauge i TsgcVCLPushButtonGauge (TsgcFMX w FireMonkey oraz te same nazwy w WinForms, WPF i Avalonia), pozwalają użytkownikowi ustawić wartość myszą, dotykiem, kółkiem lub klawiaturą. OnUserChange zachodzi tylko dla zmian dokonanych przez użytkownika, a czytniki ekranu widzą je jako suwak, przełącznik i przycisk. sgcGauges ma teraz szesnaście typów wskaźników, wliczając wskaźniki zbiornika i symboli procesowych z pakietu HMI opisanego niżej.
Skin nadaje każdemu wskaźnikowi nowy wygląd: Classic, Modern, Industrial, ISA101, Dark lub własną skórkę zarejestrowaną przez sgcGaugesRegisterSkin. TsgcGaugeDataLink pokazuje pole zbioru danych na dowolnym wskaźniku i zapisuje zmiany wskaźnika wejściowego z powrotem do pola. Zobacz funkcje sgcGauges i pomoc o wskaźnikach wejściowych.
Wiązanie danych na żywo i w dwie strony
Produkty śledzą TDataSet w Delphi, lub DataTable w .NET, w trakcie jego zmian, a produkty edycyjne zapisują zmiany użytkownika z powrotem:
- sgcPlanner:
TsgcPlannerSource_DataSetzgłasza każdy zapis przezOnWriteBack, może go odrzucić wOnBeforeWriteBacki przywraca planer do stanu danych, gdy zapis zostanie odrzucony lub się nie powiedzie.Throttlegrupuje szybkie zmiany, aFollowCursorzaznacza element bieżącego rekordu. - sgcDiagram:
TsgcDiagramDataBindingśledzi zbiory danych węzłów i połączeń według Id, zapisuje położenie i rozmiar węzłów, a zWriteBackzapisuje z powrotem do danych węzły i połączenia, które użytkownicy dodają, przesuwają, edytują lub usuwają. - sgcPivotGrid i sgcDashboard: źródło DataSet tabeli przestawnej i źródło danych dashboardu śledzą zbiór danych z
Throttle, który grupuje szybkie zmiany w jedno odświeżenie.
sgcDiagram, sgcPivotGrid, sgcGauges i sgcDashboard mają to samo wiązanie w .NET. Macierz funkcji sgcUI pokazuje, co zawiera każda edycja.
sgcPlanner: serie Outlooka, przypomnienia Google i pojemność
TsgcPlannerGraphSync przenosi teraz serie cykliczne Outlooka jako jeden element cykliczny z jego RRULE, zmienione wystąpienia jako zmodyfikowane wystąpienia, a anulowane jako wyjątki, oraz odsyła do Outlooka serie utworzone w planerze. TsgcPlannerGoogleSync wysyła do Kalendarza Google przypomnienia zmienione w planerze podczas aktualizacji zdarzenia i odczytuje te zmienione w Google. Capacity na zasób (1 dla osoby na pełny etat, 0.5 dla pół etatu, 3 dla zespołu trzech osób) steruje linią pojemności histogramu obciążenia i jest odczytywane oraz zapisywane jako MaxUnits w Microsoft Project XML. Zobacz funkcje sgcPlanner.
sgcDashboard: publikacja w sieci i kafelek mapy wszędzie
SaveToHTML zapisuje dashboard jako jedną samodzielną stronę HTML. Każdy kafelek jest rysowany jako SVG tym samym kodem, który go drukuje, na siatce CSS zgodnej z punktami przełamania dashboardu, a każdy kafelek ma nagłówek i alternatywę tekstową dla czytników ekranu. Bez adresu odświeżania strona nie zawiera żadnego skryptu. W .NET kafelek mapy istnieje teraz także dla WPF i Avalonia, a mapy pojawiają się w wydruku, PDF i HTML dashboardu. Przeczytaj pomoc o publikacji w sieci i funkcje sgcDashboard.
sgcMaps: rysowanie mapy na dowolnym canvasie
DrawTo w TsgcVCLMap, TsgcFMXMap i WinForms SgcMapControl rysuje bieżący widok z załadowanymi kafelkami w prostokącie dowolnego canvasu sgcUI, a mapy WPF i Avalonia także renderują się na dowolnym canvasie sgcUI. Tak mapa w kafelku dashboardu trafia do wydruku, PDF i strony HTML. Zobacz funkcje sgcMaps.
sgcWizard: przejścia i strona podsumowania
Transition animuje zmianę strony przesunięciem, zanikaniem lub oboma naraz, z odbiciem lustrzanym w układach od prawej do lewej, a ReduceMotion stosuje się do ustawienia animacji w Windows. Z ShowSummary kreator dodaje ostatnią stronę, która wymienia pola i wartości wpisane przez użytkownika na każdej odwiedzonej stronie, z zamaskowanymi hasłami i odnośnikiem Edytuj wracającym do każdej strony. Zobacz funkcje sgcWizard i pomoc o stronie podsumowania.
sgcReports: skrypty i podgląd FireMonkey na każdej platformie
TsgcReport.Script zawiera procedury w małym języku podobnym do Pascala, przechowywane w definicji raportu i w JSON. Raport uruchamia skrypt na początku i na końcu, a także przed i po wydrukowaniu każdego pasma i każdego elementu, więc skrypt może ukryć pasmo albo zmienić tekst, kolor czcionki lub wysokość elementu w bieżącym wydruku. Projektanty VCL, FireMonkey, WinForms, WPF i Avalonia edytują skrypt z przyciskiem Check, który pokazuje wiersz i kolumnę błędu. Podgląd FireMonkey działa w Windows, macOS, iOS i Android, z przesuwaniem dotykiem i powiększaniem szczypnięciem, a w iOS i Android Drukuj i Zapisz PDF otwierają systemowy arkusz udostępniania. Zobacz funkcje sgcReports i pomoc o skryptach.
sgcPDF dla .NET: edycja adnotacji i wypełnianie formularzy w WPF i Avalonia
Przeglądarki WPF i Avalonia robią teraz to, co przeglądarka WinForms: użytkownicy tworzą, przesuwają, zmieniają rozmiar, edytują i usuwają adnotacje myszą (AnnotationEditing i AnnotationTool), a z FormFilling wypełniają pola tekstowe, pola wyboru, przyciski opcji, listy rozwijane i listy, przy czym Tab przechodzi po polach w ich kolejności tabulacji. Zobacz funkcje sgcPDF.
Dostępność sprawdzona na każdej platformie
Drzewo UI Automation każdego dema produktu, czyli drzewo odczytywane przez czytniki ekranu takie jak Narrator i NVDA, zostało sprawdzone klientem UI Automation w VCL, FireMonkey, WinForms, WPF i Avalonia, a znalezione problemy naprawiono. Edytory VCL ogłaszają teraz etykietę pola zamiast jego wartości, płaski pasek nawigacji jest listą, a nie drzewem, paski stanu WinForms i WPF nie przejmują już fokusu klawiatury, komórki siatki Avalonia nie powtarzają już nazwy kolumny, a punkty wykresów i inne rysowane elementy kontrolek Avalonia zgłaszają swoje położenie na ekranie.
Inteligentne znaczniki Visual Studio i XAML
Inteligentne znaczniki wszystkich 69 komponentów przybornika WinForms przetestowano na powierzchni projektowej: każdą właściwość, edytor kolekcji, listę źródeł danych, akcję i czynność. W WPF i Avalonia kafelki sgcDashboard i skórki sgcGauges są deklarowane w XAML pod tym samym prefiksem sgc co kolumny, pola i serie pozostałych produktów.
sgcEditors: kontrolka układu i formularze danych
Nowa kontrolka układu, TsgcVCLLayoutControl i TsgcFMXLayoutControl (oraz te same nazwy w WinForms, WPF i Avalonia), rozmieszcza kontrolki formularza w grupach, grupach z kartami i kolumnach, z etykietami wyrównanymi do jednej szerokości, rozdzielaczami, które użytkownik może przeciągać, i układami od prawej do lewej. SaveLayout i LoadLayout zachowują rozmieszczenie wykonane przez użytkownika jako JSON. Kontrolka układu jest we wszystkich edycjach, także w Community. Delphi Community nie ma pakietu czasu projektowania dla sgcEditors, więc tam tworzy się ją w kodzie.
Formularz danych jest zbudowany na niej. TsgcVCLDataForm i TsgcFMXDataForm generują kompletny formularz edycji ze zbioru TDataSet albo z published właściwości klasy przez BindObject, a formularze danych WinForms, WPF i Avalonia przyjmują DataTable, listę lub obiekt. Każde pole dostaje kontrolkę sgcEditors, reguły walidatora sgcUICore i miejsce w grupie lub na karcie, a nawigator przegląda, dodaje, edytuje, usuwa i zatwierdza rekordy. Smart Paste wypełnia cały rekord z wklejonego tekstu przez warstwę AI, której edytory już używają, i oznacza pola, które wypełnił. Formularz danych jest w edycji Zarejestrowanej, na VCL, FireMonkey, C++Builder, WinForms, WPF i 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;
Zobacz funkcje sgcEditors i pomoc formularza danych.
Pakiet sgcUI HMI: zbiorniki, P&ID, alarmy i NumPad
Pakiet HMI wnosi do sgcUI ekrany procesowe: panele operatorskie, zbiornikownie, przepompownie i inne wyświetlacze instalacji. To nie jest nowy produkt. Każdy element żyje w produkcie, który rozszerza, i podąża za jego edycją, w VCL i FireMonkey, C++Builder oraz w WinForms, WPF i Avalonia w .NET. Wywołaj raz sgcUIApplyISA101, a każda kontrolka sgcUI przełączy się na szary schemat ISA-101, w którym kolor jest zachowany dla stanów nietypowych i alarmów.
- sgcGauges: wskaźnik zbiornika i naczynia,
TsgcVCLTankGauge, w czterech kształtach z limitami HH, H, L i LL oraz histerezą, i wskaźnik symbolu procesowego,TsgcVCLSymbolGauge, który rysuje zawór, pompę, silnik, wentylator, wymiennik ciepła lub czujnik jako wyłączony, włączony, w awarii, otwarty, zamknięty lub w przejściu, z pompami i wentylatorami, które obracają się podczas pracy. Most sgcGaugesWS zasila oba z MQTT, WebSocket lub SSE, aValueMapzamienia kody instalacji, takie jakRUNNING, na stany symboli. - sgcDiagram: 56 szablonów P&ID w stylu ISA-5.1 dla pomp, zaworów, zbiorników, urządzeń wymiany ciepła, orurowania i przyrządów oraz stany procesu i animowane rury dzięki regułom
TsgcDiagramStatusBinding. - sgcGrid: lista alarmów ISA-18.2.
TsgcGridAlarmModelprzechowuje alarmy z priorytetami od 1 do 4 i sześcioma stanami, z potwierdzaniem, odkładaniem, filtrami oraz eksportem JSON i CSV.TsgcGridAlarmLinkpokazuje je w siatce z kolorami priorytetów i migającymi wierszami, a menu alarmów daje operatorowi polecenia. - sgcEditors:
TsgcVCLNumPad, NumPad dla paneli dotykowych, zadokowany na formularzu lub jako lista rozwijana, który wpisuje do pól liczbowych i walutowych, standardowego pola edycji oraz wskaźników pokrętła i suwaka.
Aplikacja nadal steruje instalacją: pobiera wartości z własnych sterowników, bazy danych lub mostu wskaźników i sama decyduje, kiedy alarm jest zgłaszany. Nie ma sterownika OPC UA ani Modbus. Wskaźniki zbiornika i symboli procesowych, lista alarmów i NumPad są w każdej edycji, także w Community, natomiast szablony P&ID, stany procesu i animowane rury, zasilanie wskaźników oraz dziennik potwierdzeń alarmów są w edycji Zarejestrowanej. Demo HMI w pakiecie łączy te elementy na małej zbiornikowni sterowanej symulatorem. Przeczytaj stronę pakietu sgcUI HMI oraz pomoc pakietu HMI.
Pakiet sgcUI Realtime UI: obecność, powiadomienia, kanały aktywności i dzienniki na żywo
Pakiet Realtime UI daje sgcUI elementy ekranu na żywo dla Delphi, C++Builder i .NET. To nie jest nowy produkt. Każdy element znajduje się w produkcie, który rozszerza. sgcUICore dodaje model obecności z awatarami, grupą awatarów i wskaźnikiem obecności. sgcNavigation dodaje centrum powiadomień z toastami, skrzynką pogrupowaną według dni i preferencjami dla kategorii i kanału, a TsgcToolbarBadgeLink z sgcToolbar pokazuje liczbę nieprzeczytanych na elemencie paska narzędzi lub wstążki. sgcDashboard dodaje kanał aktywności i ślad audytu, jako samodzielne kontrolki i jako kafelki pulpitu, a sgcGrid dodaje przeglądarkę dzienników na żywo z poziomami, filtrami, śledzeniem końca, pauzą i eksportem.
Każdy model przyjmuje jeden komunikat JSON na każdą zmianę. W edycji Zarejestrowanej źródła na żywo WebSocket, MQTT i SSE mostu sgcUICoreWS zasilają je z sgcWebSockets bez kodu. Każda kontrolka jest dostępna w edycji swojego produktu. Bez serwera lub w wersji Community aplikacja aktualizuje zamiast tego modele przez ich API. Przeczytaj stronę pakietu sgcUI Realtime UI.
Przewodniki Getting Started dla każdego produktu
Każdy produkt sgcUI zawiera teraz pięć dem QuickStart dla Delphi (VCL) oraz przewodnik Getting Started, w HTML obok dem i w formie PDF. Dema prowadzą od pierwszego formularza do małej kompletnej aplikacji, a przewodnik wyjaśnia każdy krok. Zacznij od przewodnika sgcGrid, przewodnika sgcCharts lub przewodnika sgcChat. Przewodniki są po angielsku.
Wszystkie 16 przewodników jest wymienionych w sekcji przewodników w szybkim starcie sgcUI.
Wypróbuj sgcChat i sgcUI 2026.11
Jedna wersja próbna dla Delphi i jedna dla C++ Builder instalują wszystkie 16 produktów sgcUI.
Pytania lub uwagi? Skontaktuj się z nami, odpowie Ci ktoś z ludzi, którzy napisali ten kod.
