sgcUI en cinq minutes

sgcUI regroupe quatorze produits d'interface natifs pour Delphi, C++Builder et .NET, installés par un seul installeur. Cette page installe l'essai, place sur une fiche une grille aux lignes mises à jour en direct, montre le même code en C++Builder et en C#, puis bascule toute l'application en mode sombre et de droite à gauche, avec un appel pour chacun.

Un installeur, 14 produits
VCL, FireMonkey, WinForms, WPF et Avalonia
Thème sombre et écriture de droite à gauche intégrés

Installer l'essai

Il n'y a pas d'installeur distinct par produit. Un essai Delphi et un essai C++Builder installent les quatorze produits, et les versions .NET viennent de NuGet.

1. Lance l'installeur

Télécharge l'essai pour Delphi ou pour C++Builder et lance-le. L'essai installe chaque produit dans son édition d'essai, avec les démos et l'aide, et ne demande aucune licence.

2. Choisis tes IDE

Choisis les versions de Delphi ou de C++Builder dans lesquelles installer, de Delphi 7 et C++Builder 2007 jusqu'à RAD Studio 13. L'installeur compile les packages pour chacune et enregistre les packages de conception dans l'IDE.

3. Les dépendances sont automatiques

sgcGrid, sgcCharts, sgcDashboard et les autres contrôles reposent sur sgcUICore, et sgcReports repose sur sgcPDF. L'installeur les compile dans cet ordre, il n'y a donc rien à ajouter à la main.

4. Vérifie la palette

Chaque produit a sa propre page dans la palette d'outils : 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 et sgcReports.

5. .NET depuis NuGet

Ajoute le package correspondant à ton framework d'interface, par exemple esegece.sgcGrid.WinForms, esegece.sgcGrid.Wpf or esegece.sgcGrid.Avalonia. Il installe pour toi esegece.sgcGrid et esegece.sgcUICore.

6. Community ou Registered

Chaque produit .NET est aussi livré avec un package Community gratuit portant le suffixe .Community, par exemple esegece.sgcGrid.Community. Les packages Registered ajoutent toutes les fonctionnalités, le code source complet et la licence commerciale.

Ta première fiche sgcUI

Crée une application VCL, dépose un TsgcVCLGrid de la page de palette SGC Grid sur la fiche, double-clique sur la fiche pour obtenir FormCreate et saisis les lignes ci-dessous. Appuie sur F9. La même grille en C++Builder et dans une application .NET WinForms se trouve dans les autres onglets.

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 prend les valeurs dans l'ordre des colonnes. UpdateRow prend des noms de champs, donc un message qui ne porte qu'un prix ne modifie que le prix, et une clé qui n'existe pas encore est insérée. Les colonnes peuvent aussi être ajoutées à la conception avec l'éditeur de colonnes, et un TsgcGridSource_DataSet de la même page de palette remplit la grille à partir de n'importe quel 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 utilise les mêmes composants via les en-têtes et les bibliothèques que construit l'installeur C++Builder. Les tableaux ouverts de Delphi se passent avec la macro OPENARRAY. Ou laisse le code de côté, dépose le TsgcVCLGrid sur la fiche et définis les colonnes dans l'inspecteur d'objets.

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);
    }
}

Les noms de classes suivent ceux de Delphi : TsgcWinFormsGrid pour WinForms, TsgcWpfGrid pour WPF, avec les mêmes membres Columns et Data sur chacune. Les packages WinForms ciblent .NET Framework 4.7.2 ainsi que .NET 8, 9 et 10 pour Windows.

Un seul interrupteur pour toute l'application

Chaque contrôle sgcUI suit par défaut le thème et la direction de l'application. Un appel les repeint tous en mode sombre, et un appel met toute l'application en miroir pour l'arabe ou l'hébreu.

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;

Les deux fonctions se trouvent dans sgcUICore_Theme. Ajoute sgcUICore_Theme_VCL (ou sgcUICore_Theme_FMX) quand tu passes True, afin que les contrôles standard de tes fiches soient eux aussi thémés. sgcUISystemTheme renvoie le choix clair ou sombre du système d'exploitation. Depuis C++Builder, inclus sgcUICore_Theme.hpp et fais les mêmes appels. Un contrôle dont le propre Theme vaut utLight, utDark ou utCustom le conserve.

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 est une classe statique de esegece.sgcUICore, partagée par WinForms, WPF et Avalonia. Par contrôle, les propriétés standard fonctionnent toujours : RightToLeft dans WinForms et FlowDirection dans WPF et Avalonia.

Démos, produits et documentation

Les démos de la suite sont des applications complètes qui utilisent plusieurs produits à la fois. Les sources des démos sont livrées avec l'essai, sous Demos\Suite.

Démos de la suite ERP, Factory, Fleet, Markets et Portfolio, compilées et prêtes à lancer.
Les 14 produits Standard : sgcGrid, sgcNavigation, sgcToolbar et sgcEditors. Professional ajoute sgcCharts, sgcDashboard et sgcGauges. Enterprise ajoute sgcPivotGrid, sgcPlanner, sgcDiagram, sgcWizard, sgcMaps, sgcPDF et sgcReports.
Comparaison des fonctionnalités Ce que fait chaque produit, côte à côte, pour Delphi, C++Builder et .NET.
Aide en ligne Installation, démarrages rapides par produit et par framework, thème de l'application et écriture de droite à gauche.
Tarifs Standard, Professional et Enterprise, ou n'importe quel produit seul.
Télécharger l'essai Installeurs Delphi et C++Builder, démos compilées et liste des packages NuGet.

Chaque produit a son propre démarrage rapide, listé sur la page de prise en main.

Questions sur le démarrage rapide de sgcUI

Non. Un seul installeur couvre les quatorze produits. L'essai installe chaque produit, et l'installeur sous licence affiche une case à cocher par produit et active ceux que couvre ta licence. Les produits qui en nécessitent un autre, comme sgcReports avec sgcPDF, l'embarquent automatiquement.
Celui qui correspond à ton écran. La plupart des applications commencent par sgcGrid pour les données, puis ajoutent sgcCharts ou sgcDashboard pour le visuel, et sgcNavigation et sgcToolbar pour l'ossature. Comme ils partagent sgcUICore, ils partagent un même thème et une même direction.
Le modèle est le même, seule la classe du contrôle change : TsgcFMXGrid pour FireMonkey, TsgcWpfGrid pour WPF et TsgcAvaloniaGrid pour Avalonia, chacune avec les mêmes Columns et Data. L'aide propose un démarrage rapide par produit et par framework.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Prêt à construire ta première fiche sgcUI ?

Télécharge l'essai, lance les démos de la suite, puis dépose une grille sur une fiche.