sgcUI em cinco minutos

O sgcUI reúne quatorze produtos de interface nativos para Delphi, C++Builder e .NET, instalados por um único instalador. Esta página instala a versão de avaliação, coloca em um form um grid com linhas ao vivo, mostra o mesmo código em C++Builder e C# e, em seguida, muda o aplicativo inteiro para o modo escuro e para a direção da direita para a esquerda, com uma chamada para cada.

Um instalador, 14 produtos
VCL, FireMonkey, WinForms, WPF e Avalonia
Tema escuro e direita para a esquerda integrados

Instale a versão de avaliação

Não há um instalador separado por produto. Uma avaliação para Delphi e outra para C++Builder instalam os quatorze produtos, e as versões .NET vêm do NuGet.

1. Execute o instalador

Baixe a versão de avaliação para Delphi ou para C++Builder e execute-a. A avaliação instala todos os produtos na edição de avaliação, com os demos e a ajuda, e não precisa de licença.

2. Escolha suas IDEs

Escolha as versões do Delphi ou do C++Builder em que instalar, do Delphi 7 e do C++Builder 2007 até o RAD Studio 13. O instalador compila os pacotes de cada uma e registra os pacotes de design-time na IDE.

3. As dependências são automáticas

O sgcGrid, o sgcCharts, o sgcDashboard e os demais controles se baseiam no sgcUICore, e o sgcReports se baseia no sgcPDF. O instalador os compila nessa ordem, então não há nada para adicionar manualmente.

4. Confira a paleta

Cada produto tem a sua própria página na Tool Palette: 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 e sgcReports.

5. .NET pelo NuGet

Adicione o pacote do seu framework de interface, por exemplo esegece.sgcGrid.WinForms, esegece.sgcGrid.Wpf ou esegece.sgcGrid.Avalonia. Ele traz esegece.sgcGrid e esegece.sgcUICore automaticamente.

6. Community ou Registered

Todo produto .NET também inclui um pacote Community gratuito, com o sufixo .Community, por exemplo esegece.sgcGrid.Community. Os pacotes Registered adicionam todos os recursos, o código-fonte completo e a licença comercial.

Seu primeiro form com sgcUI

Crie um aplicativo VCL, solte um TsgcVCLGrid da página SGC Grid da paleta no form, dê um clique duplo no form para obter o FormCreate e digite as linhas abaixo. Pressione F9. O mesmo grid no C++Builder e em um aplicativo .NET WinForms está nas outras abas.

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 recebe os valores na ordem das colunas. UpdateRow recebe nomes de campos, então uma mensagem que traz apenas um preço altera somente o preço, e uma chave que ainda não existe é inserida. As colunas também podem ser adicionadas em design-time com o editor Columns, e um TsgcGridSource_DataSet da mesma página da paleta preenche o grid a partir de qualquer 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))));
}

O C++Builder usa os mesmos componentes por meio dos headers e das bibliotecas que o instalador do C++Builder gera. Os open arrays do Delphi são passados com a macro OPENARRAY. Ou dispense o código, solte o TsgcVCLGrid no form e defina as colunas no 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);
    }
}

Os nomes das classes seguem os do Delphi: TsgcWinFormsGrid para WinForms, TsgcWpfGrid para WPF, com os mesmos membros Columns e Data em cada um. Os pacotes WinForms têm como alvo o .NET Framework 4.7.2 e o .NET 8, 9 e 10 para Windows.

Um único interruptor para o aplicativo inteiro

Todo controle sgcUI segue por padrão o tema e a direção do aplicativo. Uma chamada repinta todos eles no modo escuro, e outra espelha o aplicativo inteiro para árabe ou hebraico.

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;

As duas funções ficam em sgcUICore_Theme. Adicione sgcUICore_Theme_VCL (ou sgcUICore_Theme_FMX) quando passar True, para que os controles padrão dos seus forms também recebam o tema. sgcUISystemTheme retorna a escolha clara ou escura do sistema operacional. No C++Builder, inclua sgcUICore_Theme.hpp e faça as mesmas chamadas. Um controle cujo próprio Theme seja utLight, utDark ou utCustom o mantém.

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 é uma classe estática em esegece.sgcUICore, compartilhada por WinForms, WPF e Avalonia. Por controle, as propriedades padrão continuam funcionando: RightToLeft no WinForms e FlowDirection no WPF e no Avalonia.

Demos, produtos e documentação

Os demos da suíte são aplicativos completos que usam vários produtos ao mesmo tempo. O código-fonte dos demos acompanha a avaliação, em Demos\Suite.

Demos da suíte ERP, Factory, Fleet, Markets e Portfolio, compilados e prontos para executar.
Os 14 produtos Standard: sgcGrid, sgcNavigation, sgcToolbar e sgcEditors. A Professional adiciona sgcCharts, sgcDashboard e sgcGauges. A Enterprise adiciona sgcPivotGrid, sgcPlanner, sgcDiagram, sgcWizard, sgcMaps, sgcPDF e sgcReports.
Comparação de recursos O que cada produto faz, lado a lado, para Delphi, C++Builder e .NET.
Ajuda online Instalação, inícios rápidos por produto e por framework, tema do aplicativo e direita para a esquerda.
Preços Standard, Professional e Enterprise, ou qualquer produto avulso.
Baixe a versão de avaliação Instaladores para Delphi e C++Builder, os demos compilados e a lista de pacotes NuGet.

Cada produto tem o seu próprio início rápido, listado na página de primeiros passos.

Perguntas sobre o início rápido do sgcUI

Não. Um único instalador cobre os quatorze produtos. A avaliação instala todos os produtos, e o instalador licenciado mostra uma caixa de seleção por produto e habilita os que a sua licença inclui. Os produtos que dependem de outro, como o sgcReports do sgcPDF, o trazem automaticamente.
Aquele que corresponde à sua tela. A maioria dos aplicativos começa com o sgcGrid para os dados e depois adiciona o sgcCharts ou o sgcDashboard para a parte visual e o sgcNavigation e o sgcToolbar para o shell. Como compartilham o sgcUICore, compartilham um único tema e uma única direção.
O modelo é o mesmo, muda apenas a classe do controle: TsgcFMXGrid para FireMonkey, TsgcWpfGrid para WPF e TsgcAvaloniaGrid para Avalonia, cada uma com os mesmos Columns e Data. A ajuda tem um início rápido por produto e por framework.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Pronto para criar seu primeiro form com sgcUI?

Baixe a versão de avaliação, execute os demos da suíte e depois solte um grid em um form.