sgcUI 5분 시작 가이드
sgcUI는 Delphi, C++Builder, .NET용 네이티브 UI 제품 17종이며, 설치 프로그램 하나로 모두 설치해요. 이 페이지에서는 체험판을 설치하고, 폼에 실시간으로 갱신되는 행이 있는 그리드를 올리고, 같은 코드를 C++Builder와 C#으로도 보여 드린 다음, 호출 한 번씩으로 애플리케이션 전체를 다크 모드와 오른쪽에서 왼쪽 방향으로 전환해 봐요.
sgcUI는 Delphi, C++Builder, .NET용 네이티브 UI 제품 17종이며, 설치 프로그램 하나로 모두 설치해요. 이 페이지에서는 체험판을 설치하고, 폼에 실시간으로 갱신되는 행이 있는 그리드를 올리고, 같은 코드를 C++Builder와 C#으로도 보여 드린 다음, 호출 한 번씩으로 애플리케이션 전체를 다크 모드와 오른쪽에서 왼쪽 방향으로 전환해 봐요.
제품마다 설치 프로그램이 따로 있지 않아요. Delphi 체험판 하나와 C++Builder 체험판 하나로 제품 17종을 모두 설치하고, .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, sgcReports, SGC RichEdit, SGC Spreadsheet, SGC Chat.
사용하는 UI 프레임워크용 패키지를 추가하세요. 예를 들면 esegece.sgcGrid.WinForms, esegece.sgcGrid.Wpf, esegece.sgcGrid.Avalonia예요. esegece.sgcGrid와 esegece.sgcUICore가 자동으로 함께 설치돼요.
모든 .NET 제품은 .Community 접미사가 붙은 무료 Community 패키지도 함께 제공해요. 예를 들면 esegece.sgcGrid.Community예요. Registered 패키지는 모든 기능과 전체 소스 코드, 상용 라이선스를 포함해요. Delphi에서는 무료 Delphi Community 에디션이 sgcGrid만 설치해요.
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를 폼에 올리고 Object Inspector에서 열을 설정해도 돼요.
// 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, 10을 대상으로 해요.
모든 sgcUI 컨트롤은 기본적으로 애플리케이션의 테마와 방향을 따라요. 호출 한 번으로 모든 컨트롤을 다크 모드로 다시 그리고, 호출 한 번으로 아랍어나 히브리어에 맞게 애플리케이션 전체를 좌우 반전해요.
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가 컴파일되어 바로 실행할 수 있어요. | 열기 | |
| 제품 17종 Standard는 sgcGrid, sgcNavigation, sgcToolbar, sgcEditors예요. Professional은 sgcCharts, sgcDashboard, sgcGauges를 더하고, Enterprise는 sgcPivotGrid, sgcPlanner, sgcDiagram, sgcWizard, sgcMaps, sgcPDF, sgcReports, sgcRichEdit, sgcSpreadsheet, sgcChat를 더해요. | 열기 | |
| 기능 비교 Delphi, C++Builder, .NET용으로 각 제품이 하는 일을 나란히 비교해요. | 열기 | |
| 온라인 도움말 설치, 제품별 및 프레임워크별 빠른 시작, 애플리케이션 테마, 오른쪽에서 왼쪽 방향을 다뤄요. | 열기 | |
| 가격 Standard, Professional, Enterprise 에디션, 또는 원하는 제품만 따로 구매할 수 있어요. | 열기 | |
| 무료 체험판 다운로드 Delphi 및 C++Builder 설치 프로그램, 컴파일된 데모, NuGet 패키지 목록이에요. | 열기 |
모든 제품에는 각자의 빠른 시작이 있으며, 시작하기 페이지에 모아 두었어요.
모든 sgcUI 제품에는 첫 폼부터 작은 완성 애플리케이션까지 이어지는 Delphi(VCL)용 QuickStart 데모 다섯 개와, 이를 단계별로 안내하는 PDF 가이드가 포함됩니다.
| sgcCharts 첫 번째 꺾은선형 차트, 오브젝트 인스펙터에서 설정하는 제목, 축, 범례, 실시간 데이터 피드, 클릭, 크로스헤어, 확대/축소 이벤트, 데이터셋에 바인딩한 판매 애플리케이션. | 열기 | |
| sgcChat 첫 번째 대화, Markdown을 지원하는 말풍선, 답장과 반응, 채팅 패널 위의 에코 봇, 테마, AI 어시스턴트 애플리케이션. | 열기 | |
| sgcDashboard KPI 카드가 있는 첫 번째 대시보드, 12열 타일 그리드, 실시간 데이터, 테마, 차트 타일이 있는 판매 대시보드. | 열기 | |
| sgcDiagram 첫 번째 다이어그램, 순서도 도형, 실행 취소를 포함한 뷰 이벤트, 테마, JSON, PNG, SVG로 내보내는 순서도 편집기. | 열기 | |
| sgcEditors 폼 위의 첫 번째 에디터, 값 읽기와 쓰기, 테마, 유효성 검사, 데이터 폼으로 만든 연락처 애플리케이션. | 열기 | |
| sgcGauges 첫 번째 원형 게이지, 눈금과 색상 구간, 임계값 경보, 테마와 스킨, 펌프장 모니터. | 열기 | |
| sgcGrid 첫 번째 그리드, 형식 있는 열, 그 자리에서 편집, 데이터셋 연결, 필터, 그룹화, 합계가 있는 주문 애플리케이션. | 열기 | |
| sgcMaps 마커가 있는 첫 번째 지도, 코드로 추가하는 마커와 레이블, 도형, 지도 이벤트, 매장 찾기. | 열기 | |
| sgcNavigation 첫 번째 내비게이션 바, 코드로 만드는 메뉴, 문서 탭, 테마와 스타일, 작은 메일 클라이언트. | 열기 | |
| sgcPDF 한 페이지짜리 첫 번째 PDF, 글꼴, 도형, 이미지로 그리기, 여러 페이지에 걸친 표, PDF 뷰어, 송장 생성기. | 열기 | |
| sgcPivotGrid 첫 번째 피벗 그리드, 행, 열, 값, 합계와 서식 규칙, 데이터셋 연결, 판매 분석 애플리케이션. | 열기 | |
| sgcPlanner 첫 번째 스케줄러, 뷰와 리소스, 마우스와 키보드로 편집하는 일정, 같은 데이터를 보여 주는 간트 차트와 칸반 보드, 팀 플래너. | 열기 | |
| sgcReports 첫 번째 보고서, 데이터셋의 데이터 목록, 그룹과 합계, 내보내기와 인쇄, 송장 발행 애플리케이션. | 열기 | |
| sgcRichEdit 첫 번째 서식 있는 텍스트 문서, 서식 도구 모음, 스타일, 표와 그림, 파일 형식, 편지 병합 애플리케이션. | 열기 | |
| sgcToolbar 첫 번째 툴바, 모든 종류의 항목, 액션과 상태 표시줄, 테마, 작은 텍스트 편집기. | 열기 | |
| sgcWizard 첫 번째 3페이지 마법사, 단계와 버튼의 모양, 유효성 검사와 건너뛴 페이지, 테마와 전환 효과, 온보딩 애플리케이션. | 열기 |
TsgcFMXGrid, WPF는 TsgcWpfGrid, Avalonia는 TsgcAvaloniaGrid이고, 모두 같은 Columns와 Data를 가져요. 도움말에는 제품별, 프레임워크별 빠른 시작이 있어요.