sgcUI in vijf minuten

sgcUI bestaat uit veertien native UI-producten voor Delphi, C++Builder en .NET, geïnstalleerd met één installer. Deze pagina installeert de proefversie, plaatst een grid met live rijen op een formulier, toont dezelfde code in C++Builder en C# en schakelt daarna de hele applicatie met telkens één aanroep over op de donkere modus en van rechts naar links.

Eén installer, 14 producten
VCL, FireMonkey, WinForms, WPF en Avalonia
Donker thema en rechts naar links ingebouwd

De proefversie installeren

Er is geen aparte installer per product. Eén Delphi-proefversie en één C++Builder-proefversie installeren alle veertien producten, en de .NET-versies komen van NuGet.

1. Start de installer

Download de proefversie voor Delphi of voor C++Builder en start die. De proefversie installeert elk product in de proefeditie, met de demo's en de help, en heeft geen licentie nodig.

2. Kies je IDE's

Kies de Delphi- of C++Builder-versies waarin je wilt installeren, van Delphi 7 en C++Builder 2007 tot en met RAD Studio 13. De installer compileert de packages voor elke versie en registreert de designtime-packages in de IDE.

3. Afhankelijkheden gaan automatisch

sgcGrid, sgcCharts, sgcDashboard en de andere controls bouwen voort op sgcUICore, en sgcReports bouwt voort op sgcPDF. De installer compileert ze in die volgorde, dus je hoeft niets handmatig toe te voegen.

4. Controleer de palette

Elk product krijgt een eigen pagina in de 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 en sgcReports.

5. .NET via NuGet

Voeg het package voor je UI-framework toe, bijvoorbeeld esegece.sgcGrid.WinForms, esegece.sgcGrid.Wpf of esegece.sgcGrid.Avalonia. Het haalt esegece.sgcGrid en esegece.sgcUICore automatisch binnen.

6. Community of Registered

Elk .NET-product levert ook een gratis Community-package met het achtervoegsel .Community, bijvoorbeeld esegece.sgcGrid.Community. De Registered-packages voegen alle functies, de volledige broncode en de commerciële licentie toe.

Je eerste sgcUI-formulier

Maak een VCL-applicatie, plaats een TsgcVCLGrid van de palettepagina SGC Grid op het formulier, dubbelklik op het formulier om FormCreate te krijgen en typ de onderstaande regels. Druk op F9. Hetzelfde grid in C++Builder en in een .NET WinForms-applicatie staat op de andere tabbladen.

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 neemt de waarden in kolomvolgorde. UpdateRow neemt veldnamen, dus een bericht dat alleen een prijs bevat wijzigt alleen de prijs, en een sleutel die nog niet bestaat wordt toegevoegd. De kolommen kunnen ook tijdens het ontwerpen worden toegevoegd met de Columns-editor, en een TsgcGridSource_DataSet van dezelfde palettepagina vult het grid vanuit elke 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 gebruikt dezelfde componenten via de headers en bibliotheken die de C++Builder-installer bouwt. Delphi open arrays worden doorgegeven met de macro OPENARRAY. Of sla de code over, plaats de TsgcVCLGrid op het formulier en stel de kolommen in de Object Inspector in.

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

De klassenamen volgen die van Delphi: TsgcWinFormsGrid voor WinForms, TsgcWpfGrid voor WPF, met op elk dezelfde members Columns en Data. De WinForms-packages richten zich op .NET Framework 4.7.2 en .NET 8, 9 en 10 voor Windows.

Eén schakelaar voor de hele applicatie

Elk sgcUI-control volgt standaard het thema en de richting van de applicatie. Eén aanroep tekent ze allemaal opnieuw in de donkere modus, en één aanroep spiegelt de hele applicatie voor Arabisch of Hebreeuws.

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;

Beide functies staan in sgcUICore_Theme. Voeg sgcUICore_Theme_VCL (of sgcUICore_Theme_FMX) toe wanneer je True doorgeeft, zodat ook de standaardcontrols van je formulieren dit thema krijgen. sgcUISystemTheme geeft de lichte of donkere keuze van het besturingssysteem terug. Neem in C++Builder sgcUICore_Theme.hpp op en doe dezelfde aanroepen. Een control waarvan de eigen Theme utLight, utDark of utCustom is, behoudt die.

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 een statische klasse in esegece.sgcUICore, gedeeld door WinForms, WPF en Avalonia. Per control werken de standaardproperties nog steeds: RightToLeft in WinForms en FlowDirection in WPF en Avalonia.

Demo's, producten en documentatie

De suite-demo's zijn complete applicaties die veel producten tegelijk gebruiken. De demobronnen worden meegeleverd in de proefversie, onder Demos\Suite.

Suite-demo's ERP, Factory, Fleet, Markets en Portfolio, gecompileerd en klaar om te draaien.
De 14 producten Standard: sgcGrid, sgcNavigation, sgcToolbar en sgcEditors. Professional voegt sgcCharts, sgcDashboard en sgcGauges toe. Enterprise voegt sgcPivotGrid, sgcPlanner, sgcDiagram, sgcWizard, sgcMaps, sgcPDF en sgcReports toe.
Functievergelijking Wat elk product doet, naast elkaar, voor Delphi, C++Builder en .NET.
Online help Installatie, snelstarts per product en framework, applicatiethema en rechts naar links.
Prijzen Standard, Professional en Enterprise, of elk product afzonderlijk.
De proefversie downloaden Installers voor Delphi en C++Builder, de gecompileerde demo's en de lijst met NuGet-packages.

Elk product heeft een eigen snelstart, vermeld op de pagina Aan de slag.

Vragen over de sgcUI-snelstart

Nee. Eén installer dekt alle veertien producten. De proefversie installeert elk product, en de installer met licentie toont per product één selectievakje en activeert de producten waarvoor je een licentie hebt. Producten die een ander product nodig hebben, zoals sgcReports met sgcPDF, nemen dat automatisch mee.
Het product dat bij je scherm past. De meeste applicaties beginnen met sgcGrid voor data en voegen daarna sgcCharts of sgcDashboard toe voor visualisaties en sgcNavigation en sgcToolbar voor het frame. Doordat ze sgcUICore delen, delen ze één thema en één richting.
Het model is hetzelfde, alleen de controlklasse verandert: TsgcFMXGrid voor FireMonkey, TsgcWpfGrid voor WPF en TsgcAvaloniaGrid voor Avalonia, elk met dezelfde Columns en Data. De help heeft een snelstart per product en per framework.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Klaar om je eerste sgcUI-formulier te bouwen?

Download de proefversie, draai de suite-demo's en plaats daarna een grid op een formulier.