sgcUI en cinco minutos

sgcUI son catorce productos de interfaz nativa para Delphi, C++Builder y .NET, instalados con un único instalador. Esta página instala la prueba, coloca en un formulario una rejilla con filas en vivo, muestra el mismo código en C++Builder y C#, y después cambia toda la aplicación a modo oscuro y de derecha a izquierda con una llamada para cada uno.

Un instalador, 14 productos
VCL, FireMonkey, WinForms, WPF y Avalonia
Tema oscuro y derecha a izquierda integrados

Instala la prueba

No hay un instalador distinto por producto. Una prueba de Delphi y una de C++Builder instalan los catorce productos, y las versiones .NET vienen de NuGet.

1. Ejecuta el instalador

Descarga la prueba para Delphi o para C++Builder y ejecútala. La prueba instala todos los productos en su edición de prueba, con las demos y la ayuda, y no necesita licencia.

2. Elige tus IDE

Elige las versiones de Delphi o C++Builder en las que instalar, desde Delphi 7 y C++Builder 2007 hasta RAD Studio 13. El instalador compila los paquetes de cada una y registra los paquetes de tiempo de diseño en el IDE.

3. Las dependencias son automáticas

sgcGrid, sgcCharts, sgcDashboard y los demás controles se apoyan en sgcUICore, y sgcReports se apoya en sgcPDF. El instalador los compila en ese orden, así que no hay nada que añadir a mano.

4. Comprueba la paleta

Cada producto tiene su propia página en la Paleta de componentes: 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 y sgcReports.

5. .NET desde NuGet

Añade el paquete de tu framework de interfaz, por ejemplo esegece.sgcGrid.WinForms, esegece.sgcGrid.Wpf o esegece.sgcGrid.Avalonia. Incorpora automáticamente esegece.sgcGrid y esegece.sgcUICore.

6. Community o Registered

Cada producto .NET incluye además un paquete Community gratuito con el sufijo .Community, por ejemplo esegece.sgcGrid.Community. Los paquetes Registered añaden todas las características, el código fuente completo y la licencia comercial.

Tu primer formulario sgcUI

Crea una aplicación VCL, suelta un TsgcVCLGrid de la página SGC Grid de la paleta sobre el formulario, haz doble clic en el formulario para obtener FormCreate y escribe las líneas siguientes. Pulsa F9. La misma rejilla en C++Builder y en una aplicación .NET WinForms está en las otras pestañas.

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 recibe los valores en el orden de las columnas. UpdateRow recibe nombres de campo, de modo que un mensaje que solo trae un precio solo modifica el precio, y una clave que todavía no existe se inserta. Las columnas también se pueden añadir en tiempo de diseño con el editor de Columns, y un TsgcGridSource_DataSet de la misma página de la paleta llena la rejilla desde cualquier 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 usa los mismos componentes mediante las cabeceras y bibliotecas que genera el instalador de C++Builder. Los arrays abiertos de Delphi se pasan con la macro OPENARRAY. O prescinde del código, suelta el TsgcVCLGrid en el formulario y define las columnas en el Inspector de objetos.

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

Los nombres de clase siguen a los de Delphi: TsgcWinFormsGrid para WinForms, TsgcWpfGrid para WPF, y los mismos miembros Columns y Data en cada uno. Los paquetes WinForms apuntan a .NET Framework 4.7.2 y a .NET 8, 9 y 10 para Windows.

Un solo interruptor para toda la aplicación

Todos los controles sgcUI siguen por defecto el tema y la dirección de la aplicación. Una llamada los repinta todos en modo oscuro, y otra llamada refleja toda la aplicación para árabe o hebreo.

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;

Ambas funciones están en sgcUICore_Theme. Añade sgcUICore_Theme_VCL (o sgcUICore_Theme_FMX) cuando pases True, para que también se aplique el tema a los controles estándar de tus formularios. sgcUISystemTheme devuelve la elección clara u oscura del sistema operativo. Desde C++Builder, incluye sgcUICore_Theme.hpp y haz las mismas llamadas. Un control cuyo propio Theme sea utLight, utDark o utCustom lo conserva.

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 es una clase estática de esegece.sgcUICore, compartida por WinForms, WPF y Avalonia. Por control, las propiedades estándar siguen funcionando: RightToLeft en WinForms y FlowDirection en WPF y Avalonia.

Demos, productos y documentación

Las demos de la suite son aplicaciones completas que usan muchos productos a la vez. Los fuentes de las demos se incluyen en la prueba, en Demos\Suite.

Demos de la suite ERP, Factory, Fleet, Markets y Portfolio, compiladas y listas para ejecutar.
Los 14 productos Standard: sgcGrid, sgcNavigation, sgcToolbar y sgcEditors. Professional añade sgcCharts, sgcDashboard y sgcGauges. Enterprise añade sgcPivotGrid, sgcPlanner, sgcDiagram, sgcWizard, sgcMaps, sgcPDF y sgcReports.
Comparativa de características Qué hace cada producto, lado a lado, para Delphi, C++Builder y .NET.
Ayuda en línea Instalación, inicios rápidos por producto y framework, tema de la aplicación y derecha a izquierda.
Precios Standard, Professional y Enterprise, o cualquier producto por separado.
Descargar la prueba Instaladores de Delphi y C++Builder, las demos compiladas y la lista de paquetes NuGet.

Cada producto tiene su propio inicio rápido, listado en la página de primeros pasos.

Preguntas sobre el inicio rápido de sgcUI

No. Un instalador cubre los catorce productos. La prueba instala todos los productos, y el instalador con licencia muestra una casilla por producto y habilita los que tu licencia incluye. Los productos que necesitan otro, como sgcReports con sgcPDF, lo traen automáticamente.
El que encaje con tu pantalla. La mayoría de aplicaciones empiezan con sgcGrid para los datos, y luego añaden sgcCharts o sgcDashboard para lo visual y sgcNavigation y sgcToolbar para el armazón. Como comparten sgcUICore, comparten un único tema y una única dirección.
El modelo es el mismo, solo cambia la clase del control: TsgcFMXGrid para FireMonkey, TsgcWpfGrid para WPF y TsgcAvaloniaGrid para Avalonia, cada una con los mismos Columns y Data. La ayuda tiene un inicio rápido por producto y por framework.
La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

¿Listo para crear tu primer formulario sgcUI?

Descarga la prueba, ejecuta las demos de la suite y suelta una rejilla en un formulario.