sgcUI in five minutes

sgcUI is fourteen native UI products for Delphi, C++Builder and .NET, installed by one installer. This page installs the trial, puts a grid with live rows on a form, shows the same code in C++Builder and C#, and then switches the whole application to dark mode and right to left with one call each.

One installer, 14 products
VCL, FireMonkey, WinForms, WPF and Avalonia
Dark theme and right to left built in

Install the trial

There is no separate installer per product. One Delphi trial and one C++Builder trial install all fourteen products, and the .NET versions come from NuGet.

1. Run the installer

Download the trial for Delphi or for C++Builder and run it. The trial installs every product in its trial edition, with the demos and the help, and needs no licence.

2. Pick your IDEs

Choose the Delphi or C++Builder versions to install into, from Delphi 7 and C++Builder 2007 up to RAD Studio 13. The installer compiles the packages for each one and registers the design-time packages in the IDE.

3. Dependencies are automatic

sgcGrid, sgcCharts, sgcDashboard and the other controls build on sgcUICore, and sgcReports builds on sgcPDF. The installer compiles them in that order, so there is nothing to add by hand.

4. Check the palette

Each product gets its own Tool Palette page: SGC Grid, SGC Navigation, SGC Toolbar, SGC Editors, SGC Charts, SGC Dashboard, SGC Gauges, SGC PivotGrid, SGC Planner, SGC Diagram, SGC Wizard, SGC Maps, sgcPDF and sgcReports.

5. .NET from NuGet

Add the package for your UI framework, for example esegece.sgcGrid.WinForms, esegece.sgcGrid.Wpf or esegece.sgcGrid.Avalonia. It pulls in esegece.sgcGrid and esegece.sgcUICore for you.

6. Community or Registered

Every .NET product also ships a free Community package with the .Community suffix, for example esegece.sgcGrid.Community. The Registered packages add every feature, the full source code and the commercial licence.

Your first sgcUI form

Create a VCL application, drop a TsgcVCLGrid from the SGC Grid palette page on the form, double click the form to get FormCreate and type the lines below. Press F9. The same grid in C++Builder and in a .NET WinForms application is on the other tabs.

Unit1.pas
uses
  SysUtils, Classes, Controls, Forms,
  sgcGrid_Columns, sgcGrid_Data, sgcGrid_VCL;

type
  TForm1 = class(TForm)
    sgcVCLGrid1: TsgcVCLGrid;
    procedure FormCreate(Sender: TObject);
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  sgcVCLGrid1.Align := alClient;
  // the columns: field name, caption and data type
  sgcVCLGrid1.Columns.Add('Symbol', 'Symbol');
  sgcVCLGrid1.Columns.Add('Price', 'Price', gdtFloat).DisplayFormat := '0.00';
  sgcVCLGrid1.Columns.Add('Volume', 'Volume', gdtInteger);
  // one row per key, the values in column order
  sgcVCLGrid1.Data.AppendRow('MSFT', ['MSFT', 412.5, 1200]);
  sgcVCLGrid1.Data.AppendRow('AAPL', ['AAPL', 228.1, 3400]);
  // later, from any thread: update a row by key and field name
  sgcVCLGrid1.Data.UpdateRow('MSFT', ['Price', 'Volume'], [413.1, 1350]);
end;

AppendRow takes the values in column order. UpdateRow takes field names, so a message that only carries a price only touches the price, and a key that does not exist yet is inserted. The columns can also be added at design time with the Columns editor, and a TsgcGridSource_DataSet from the same palette page fills the grid from any TDataSet.

Unit1.cpp
#include <vcl.h>
#include "sgcGrid_Columns.hpp"
#include "sgcGrid_Data.hpp"
#include "sgcGrid_VCL.hpp"

void __fastcall CreateGrid(TForm *Form)
{
  TsgcVCLGrid *Grid = new TsgcVCLGrid(Form);
  Grid->Parent = Form;
  Grid->Align = alClient;
  // the columns: field name, caption and data type
  Grid->Columns->Add("Symbol", "Symbol", gdtText);
  Grid->Columns->Add("Price", "Price", gdtFloat)->DisplayFormat = "0.00";
  Grid->Columns->Add("Volume", "Volume", gdtInteger);
  // one row per key, the values in column order
  Grid->Data->AppendRow("MSFT", OPENARRAY(Variant,
    (Variant("MSFT"), Variant(412.5), Variant(1200))));
  Grid->Data->AppendRow("AAPL", OPENARRAY(Variant,
    (Variant("AAPL"), Variant(228.1), Variant(3400))));
}

C++Builder uses the same components through the headers and libraries the C++Builder installer builds. Delphi open arrays are passed with the OPENARRAY macro. Or skip the code, drop the TsgcVCLGrid on the form and set the columns in the Object Inspector.

Program.cs
// dotnet add package esegece.sgcGrid.WinForms
using System;
using System.Windows.Forms;
using esegece.sgcGrid;

internal static class Program
{
    [STAThread]
    private static void Main()
    {
        Application.EnableVisualStyles();
        Form oForm = new Form { Text = "My first sgcUI form", Width = 640, Height = 360 };

        TsgcWinFormsGrid oGrid = new TsgcWinFormsGrid { Dock = DockStyle.Fill };
        oGrid.Columns.Add("symbol", "Symbol");
        oGrid.Columns.Add("price", "Price", TsgcGridDataType.gdtFloat).DisplayFormat = "0.00";
        oGrid.Columns.Add("volume", "Volume", TsgcGridDataType.gdtInteger);
        oGrid.Data.AppendRow("MSFT", "MSFT", 412.5, 1200);
        oGrid.Data.AppendRow("AAPL", "AAPL", 228.1, 3400);
        oGrid.Data.UpdateRow("MSFT", new[] { "price", "volume" }, new object[] { 413.1, 1350 });
        oForm.Controls.Add(oGrid);

        Application.Run(oForm);
    }
}

The class names follow the Delphi ones: TsgcWinFormsGrid for WinForms, TsgcWpfGrid for WPF, and the same Columns and Data members on each. The WinForms packages target .NET Framework 4.7.2 and .NET 8, 9 and 10 for Windows.

One switch for the whole application

Every sgcUI control follows the application theme and direction by default. One call repaints all of them in dark mode, and one call mirrors the whole application for Arabic or Hebrew.

Theme.pas
uses
  Classes,
  sgcUICore_Theme, sgcUICore_Theme_VCL;

procedure ApplyAppSettings(aDark, aRightToLeft: Boolean);
begin
  // every sgcUI control whose Theme is utDefault repaints in the new theme;
  // True also themes the standard controls of every open form
  if aDark then
    sgcUISetApplicationTheme(utDark, True)
  else
    sgcUISetApplicationTheme(sgcUISystemTheme, True);
  // mirrors every open form and the sgcUI controls that follow it
  if aRightToLeft then
    sgcUISetApplicationBiDiMode(bdRightToLeft)
  else
    sgcUISetApplicationBiDiMode(bdLeftToRight);
end;

Both functions live in sgcUICore_Theme. Add sgcUICore_Theme_VCL (or sgcUICore_Theme_FMX) when you pass True, so the standard controls of your forms are themed too. sgcUISystemTheme returns the light or dark choice of the operating system. From C++Builder, include sgcUICore_Theme.hpp and make the same calls. A control whose own Theme is utLight, utDark or utCustom keeps it.

Program.cs
using esegece.sgcUICore;

// follow the light or dark choice of Windows, and theme the forms too
sgcUIApplication.SetTheme(sgcUIApplication.SystemTheme(), true);

// or force dark mode
sgcUIApplication.SetTheme(TsgcUITheme.utDark);

// mirror every open form and the sgcUI controls that follow it
sgcUIApplication.SetRightToLeft(true);

sgcUIApplication is a static class in esegece.sgcUICore, shared by WinForms, WPF and Avalonia. Per control, the standard properties still work: RightToLeft in WinForms and FlowDirection in WPF and Avalonia.

Demos, products and documentation

The suite demos are complete applications that use many products at once. The demo sources ship in the trial, under Demos\Suite.

Suite demos ERP, Factory, Fleet, Markets and Portfolio, compiled and ready to run.
The 14 products Standard: sgcGrid, sgcNavigation, sgcToolbar and sgcEditors. Professional adds sgcCharts, sgcDashboard and sgcGauges. Enterprise adds sgcPivotGrid, sgcPlanner, sgcDiagram, sgcWizard, sgcMaps, sgcPDF and sgcReports.
Feature comparison What each product does, side by side, for Delphi, C++Builder and .NET.
Online help Installation, quick starts per product and framework, application theme and right to left.
Pricing Standard, Professional and Enterprise, or any product on its own.
Download the trial Delphi and C++Builder installers, the compiled demos and the NuGet package list.

Every product has its own quick start, listed on the getting started page.

sgcUI quick start questions

No. One installer covers all fourteen products. The trial installs every product, and the licensed installer shows one checkbox per product and enables the ones your licence owns. Products that need another one, such as sgcReports on sgcPDF, bring it along automatically.
The one that matches your screen. Most applications start with sgcGrid for data, then add sgcCharts or sgcDashboard for visuals and sgcNavigation and sgcToolbar for the shell. Because they share sgcUICore, they share one theme and one direction.
The model is the same, only the control class changes: TsgcFMXGrid for FireMonkey, TsgcWpfGrid for WPF and TsgcAvaloniaGrid for Avalonia, each with the same Columns and Data. The help has a quick start per product and per framework.
Best value: All-AccessEvery eSeGeCe product, Premium Support included, from €1,059/year.
See All-Access pricing

Ready to build your first sgcUI form?

Download the trial, run the suite demos, then drop a grid on a form.