sgcUI を 5 分で
sgcUI は Delphi、C++Builder、.NET 向けのネイティブ UI 製品 14 種で、1 つのインストーラーでまとめてインストールできます。このページでは、体験版をインストールし、リアルタイムに更新される行を持つグリッドをフォームに配置し、同じコードを C++Builder と C# で示したあと、それぞれ 1 回の呼び出しでアプリケーション全体をダークモードと右から左の表示に切り替えます。
sgcUI は Delphi、C++Builder、.NET 向けのネイティブ UI 製品 14 種で、1 つのインストーラーでまとめてインストールできます。このページでは、体験版をインストールし、リアルタイムに更新される行を持つグリッドをフォームに配置し、同じコードを C++Builder と C# で示したあと、それぞれ 1 回の呼び出しでアプリケーション全体をダークモードと右から左の表示に切り替えます。
製品ごとの個別のインストーラーはありません。Delphi 用の体験版 1 つと C++Builder 用の体験版 1 つで 14 製品すべてがインストールされ、.NET 版は NuGet から入手します。
Delphi 用または C++Builder 用の体験版をダウンロードして実行します。体験版では、すべての製品が体験版エディションでデモとヘルプ付きでインストールされ、ライセンスは不要です。
インストール先の Delphi または C++Builder のバージョンを、Delphi 7 と C++Builder 2007 から RAD Studio 13 までの中から選択します。インストーラーが各バージョン用にパッケージをコンパイルし、デザイン時パッケージを IDE に登録します。
sgcGrid、sgcCharts、sgcDashboard などのコントロールは sgcUICore を基盤とし、sgcReports は sgcPDF を基盤としています。インストーラーがこの順序でコンパイルするため、手作業で追加するものはありません。
製品ごとに専用のツールパレットページが用意されます: 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.
使用する UI フレームワーク用のパッケージ、たとえば esegece.sgcGrid.WinForms、esegece.sgcGrid.Wpf、esegece.sgcGrid.Avalonia を追加します。esegece.sgcGrid と esegece.sgcUICore は自動的に取り込まれます。
.NET の各製品には、.Community サフィックスが付いた無償の Community パッケージ(例: esegece.sgcGrid.Community)も用意されています。Registered パッケージには、すべての機能、完全なソースコード、商用ライセンスが含まれます。
VCL アプリケーションを作成し、SGC Grid パレットページから TsgcVCLGrid をフォームにドロップします。フォームをダブルクリックして FormCreate を作成し、以下のコードを入力して F9 キーを押します。C++Builder と .NET WinForms アプリケーションでの同じグリッドは、ほかのタブにあります。
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 からグリッドにデータを取り込めます。
#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 をフォームにドロップして、オブジェクトインスペクターで列を設定することもできます。
// 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 を対象としています。
sgcUI のすべてのコントロールは、既定でアプリケーションのテーマと表示方向に従います。1 回の呼び出しですべてをダークモードで再描画でき、もう 1 回の呼び出しでアプリケーション全体をアラビア語やヘブライ語向けに左右反転できます。
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 の場合は、その設定が維持されます。
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 パッケージの一覧です。 | 開く |
各製品にはそれぞれのクイックスタートがあり、はじめにのページに一覧があります。
TsgcFMXGrid、WPF では TsgcWpfGrid、Avalonia では TsgcAvaloniaGrid で、いずれも同じ Columns と Data を備えています。ヘルプには、製品別およびフレームワーク別のクイックスタートがあります。