sgcUI を 5 分で

sgcUI は Delphi、C++Builder、.NET 向けのネイティブ UI 製品 14 種で、1 つのインストーラーでまとめてインストールできます。このページでは、体験版をインストールし、リアルタイムに更新される行を持つグリッドをフォームに配置し、同じコードを C++Builder と C# で示したあと、それぞれ 1 回の呼び出しでアプリケーション全体をダークモードと右から左の表示に切り替えます。

1 つのインストーラーで 14 製品
VCL、FireMonkey、WinForms、WPF、Avalonia
ダークテーマと右から左の表示に標準対応

体験版をインストールする

製品ごとの個別のインストーラーはありません。Delphi 用の体験版 1 つと C++Builder 用の体験版 1 つで 14 製品すべてがインストールされ、.NET 版は NuGet から入手します。

1. インストーラーを実行する

Delphi 用または C++Builder 用の体験版をダウンロードして実行します。体験版では、すべての製品が体験版エディションでデモとヘルプ付きでインストールされ、ライセンスは不要です。

2. 対象の IDE を選ぶ

インストール先の Delphi または C++Builder のバージョンを、Delphi 7 と C++Builder 2007 から RAD Studio 13 までの中から選択します。インストーラーが各バージョン用にパッケージをコンパイルし、デザイン時パッケージを IDE に登録します。

3. 依存関係は自動で処理される

sgcGrid、sgcCharts、sgcDashboard などのコントロールは sgcUICore を基盤とし、sgcReports は sgcPDF を基盤としています。インストーラーがこの順序でコンパイルするため、手作業で追加するものはありません。

4. パレットを確認する

製品ごとに専用のツールパレットページが用意されます: 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 は NuGet から

使用する UI フレームワーク用のパッケージ、たとえば esegece.sgcGrid.WinForms、esegece.sgcGrid.Wpf、esegece.sgcGrid.Avalonia を追加します。esegece.sgcGrid と esegece.sgcUICore は自動的に取り込まれます。

6. Community 版または Registered 版

.NET の各製品には、.Community サフィックスが付いた無償の Community パッケージ(例: esegece.sgcGrid.Community)も用意されています。Registered パッケージには、すべての機能、完全なソースコード、商用ライセンスが含まれます。

最初の sgcUI フォーム

VCL アプリケーションを作成し、SGC Grid パレットページから TsgcVCLGrid をフォームにドロップします。フォームをダブルクリックして FormCreate を作成し、以下のコードを入力して F9 キーを押します。C++Builder と .NET WinForms アプリケーションでの同じグリッドは、ほかのタブにあります。

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 は値を列の順序で受け取ります。UpdateRow はフィールド名を受け取るため、価格だけを含むメッセージは価格だけを更新し、まだ存在しないキーは挿入されます。列はデザイン時に Columns エディターで追加することもでき、同じパレットページの TsgcGridSource_DataSet を使えば、任意の 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 では、C++Builder 用インストーラーがビルドするヘッダーとライブラリを通じて、同じコンポーネントを使用します。Delphi のオープン配列は OPENARRAY マクロで渡します。コードを書かずに、TsgcVCLGrid をフォームにドロップして、オブジェクトインスペクターで列を設定することもできます。

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

クラス名は Delphi 版に準じています。WinForms では TsgcWinFormsGrid、WPF では TsgcWpfGrid で、どちらにも同じ Columns と Data メンバーがあります。WinForms パッケージは .NET Framework 4.7.2 と、Windows 向けの .NET 8 および 9 を対象としています。

アプリケーション全体を 1 つのスイッチで切り替える

sgcUI のすべてのコントロールは、既定でアプリケーションのテーマと表示方向に従います。1 回の呼び出しですべてをダークモードで再描画でき、もう 1 回の呼び出しでアプリケーション全体をアラビア語やヘブライ語向けに左右反転できます。

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;

どちらの関数も sgcUICore_Theme にあります。True を渡す場合は、フォームの標準コントロールにもテーマが適用されるように、sgcUICore_Theme_VCL(または sgcUICore_Theme_FMX)を追加してください。sgcUISystemTheme は、オペレーティングシステムのライトまたはダークの設定を返します。C++Builder では sgcUICore_Theme.hpp をインクルードして、同じ呼び出しを行います。コントロール自身の Theme が utLight、utDark、utCustom の場合は、その設定が維持されます。

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 は esegece.sgcUICore にある静的クラスで、WinForms、WPF、Avalonia で共通に使用します。コントロールごとには、標準のプロパティも引き続き使用できます。WinForms では RightToLeft、WPF と Avalonia では FlowDirection です。

デモ、製品、ドキュメント

スイートのデモは、多数の製品を同時に使用する完全なアプリケーションです。デモのソースは体験版の Demos\Suite フォルダーに同梱されています。

スイートデモ ERP、Factory、Fleet、Markets、Portfolio。コンパイル済みですぐに実行できます。
14 製品 Standard は sgcGrid、sgcNavigation、sgcToolbar、sgcEditors です。Professional では sgcCharts、sgcDashboard、sgcGauges が加わります。Enterprise では sgcPivotGrid、sgcPlanner、sgcDiagram、sgcWizard、sgcMaps、sgcPDF、sgcReports が加わります。
機能比較 各製品の機能を、Delphi、C++Builder、.NET 向けに並べて比較できます。
オンラインヘルプ インストール、製品別およびフレームワーク別のクイックスタート、アプリケーションテーマ、右から左の表示について説明しています。
価格 Standard、Professional、Enterprise、または製品単体でご購入いただけます。
体験版をダウンロード Delphi と C++Builder のインストーラー、コンパイル済みデモ、NuGet パッケージの一覧です。

各製品にはそれぞれのクイックスタートがあり、はじめにのページに一覧があります。

sgcUI クイックスタートに関するよくある質問

いいえ。1 つのインストーラーで 14 製品すべてに対応します。体験版ではすべての製品がインストールされ、ライセンス版のインストーラーでは製品ごとにチェックボックスが表示され、お持ちのライセンスに含まれる製品が有効になります。sgcPDF を必要とする sgcReports のように、ほかの製品を必要とする製品では、その製品も自動的に一緒にインストールされます。
作ろうとしている画面に合うものです。多くのアプリケーションでは、まずデータ表示用に sgcGrid を使い、次にビジュアル表示用に sgcCharts や sgcDashboard、アプリケーションの枠組み用に sgcNavigation と sgcToolbar を追加します。すべて sgcUICore を共有しているため、テーマも表示方向も共通です。
モデルは同じで、変わるのはコントロールのクラスだけです。FireMonkey では TsgcFMXGrid、WPF では TsgcWpfGrid、Avalonia では TsgcAvaloniaGrid で、いずれも同じ Columns と Data を備えています。ヘルプには、製品別およびフレームワーク別のクイックスタートがあります。
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

最初の sgcUI フォームを作る準備はできましたか?

体験版をダウンロードし、スイートデモを実行してから、グリッドをフォームにドロップしましょう。