Delphi, C++ Builder & .NET sgcUI에 포함

sgcGauges, Delphi, C++ Builder & .NET용 계기판

방사형 다이얼부터 경보 패널까지 대시보드와 HMI 패널을 위한 열 가지 게이지 유형입니다. 녹색, 주황색, 빨간색 구간을 그리고, 값이 한계를 넘으면 경보를 발생시키며, 새 측정값마다 바늘이 부드럽게 움직이게 하고, 같은 게이지를 서버에서 PNG 또는 SVG로 렌더링하세요.

VCL, FireMonkey, WinForms, WPF, Avalonia열 가지 게이지 유형, Community는 여섯 가지창 없이 PNG와 SVGsgcUI Professional에 포함
탱크, 펌프, LED 막대, 경보 패널이 있는 HMIPanel 데모

계기판에 필요한 모든 것

네 개 그룹의 열한 가지 기능이며, 실제 클래스와 속성 이름, 각 도움말 항목 링크를 담았습니다. Registered로 표시된 기능은 무료 .NET Community 빌드에 포함되지 않습니다.

계기와 스케일

하나의 모델에 열 가지 유형, 범위, 스타일, 여러 포인터.

방사형, 링, 나침반, 시계, VU 미터, 선형, 디지털, LED 게이지가 있는 sgcGauges 갤러리

계기와 스케일

하나의 라이브러리에 열 가지 계기 유형

대시보드, HMI 패널, 테스트 벤치에는 서로 다른 계기가 필요합니다. 속도는 다이얼, 수위는 막대, 주파수는 디지털 판독, 펌프는 램프, 경보는 타일 패널이 어울립니다. sgcGauges는 같은 스케일, 포인터, 범위, 임계값, 테마를 공유하는 하나의 모델을 사용하는 열 가지 유형을 제공합니다. API 하나만 익히면 모든 계기가 같은 방식으로 동작합니다.

  • TsgcVCLRadialGauge, TsgcVCLLinearGauge, TsgcVCLDigitalGauge, TsgcVCLLEDGauge, TsgcVCLLEDBarGauge, TsgcVCLProgressRingGauge
  • TsgcVCLVUMeterGauge, TsgcVCLClockGauge, TsgcVCLCompassGauge, TsgcVCLAnnunciatorGauge
  • 각 유형은 FireMonkey용도 있으며, .NET에서는 WinForms, WPF, Avalonia용도 있습니다
  • 헤드리스 사용을 위한 유형별 프레임워크 중립 모델, 예를 들어 TsgcRadialGauge

Community에는 방사형, 선형, 7세그먼트 디지털, LED, LED 막대, 진행률 링 게이지가 있습니다. VU 미터, 시계, 나침반, 경보 패널은 Registered 에디션 기능입니다.

도움말 항목 읽기
녹색, 주황색, 빨간색 범위가 있는 0에서 260 km/h의 속도계

계기와 스케일

모든 스케일에 색상 범위

운영자는 녹색, 주황색, 빨간색이 값이 어디에 있어야 하는지 알려 줄 때만 게이지를 한눈에 읽을 수 있습니다. 스케일에 원하는 최솟값과 최댓값을 주고, 주 간격과 보조 눈금을 설정한 다음 중요한 구간에 색상 범위를 추가하세요. 범위에는 고유한 두께와 캡션이 있고, 스케일은 반대로 진행하거나 눈금을 안쪽이나 바깥쪽에 둘 수 있습니다. 범위는 스케일 자체에 그려지므로 추가 작업 없이 PNG 및 SVG 출력과 두 테마 모두에 나타납니다.

  • StartValue, EndValue, Color, Thickness, Caption을 갖춘 Scales[0].Ranges.Add
  • TsgcGaugeScale: Minimum, Maximum, MajorInterval, MinorCount, Reversed
  • 스케일 레이블을 위한 LabelFormat과 ShowLabels
  • StartAngle과 SweepAngle이 방사형 게이지의 호 모양을 정합니다
도움말 항목 읽기
세로 선형 게이지 세 개: 불릿 그래프, 온도계, 막대

계기와 스케일

하나의 컨트롤에 불릿 그래프, 온도계, 막대

수위, 온도, 목표 대비 진행률은 본질적으로 선형입니다. 선형 게이지 하나가 일반 막대, 구근이 있는 온도계, 값을 목표 마커와 비교하는 불릿 그래프의 세 가지 스타일을 그립니다. 탱크, 사이드바, 표의 행에 맞춰 가로 또는 세로로 돌릴 수 있습니다. 불릿 목표는 추가 포인터가 아닌 속성이므로 불릿 그래프는 무료 Community 에디션에서도 동작합니다. 작은 게이지는 그리드 셀이나 대시보드 타일에 들어갑니다.

  • LinearStyle: glsBar, glsThermometer, glsBullet
  • Target은 모든 에디션에서 불릿 목표 마커를 그립니다
  • Orientation과 BulbSize
  • 범위와 임계값은 방사형 게이지와 똑같이 동작합니다
도움말 항목 읽기
실제값은 바늘로, 목표는 마커로 표시한 방사형 게이지

계기와 스케일 Registered 에디션 전용

하나의 게이지에 여러 스케일과 포인터

어떤 측정값은 나란히 놓아야 의미가 있습니다. 실제값과 목표, 입구와 출구, 시와 분이 그렇습니다. 게이지는 둘 이상의 스케일과 포인터를 가질 수 있으며 각 포인터가 자신의 스케일과 스타일(바늘, 마커, 막대)을 선택합니다. 임계값은 어느 포인터든 감시할 수 있습니다. 이중 포인터 다이얼은 복잡한 패널에서 공간을 절약하고 목표와 실제값의 차이를 한눈에 보여 줍니다.

  • Kind, NeedleStyle, MarkerShape, ScaleIndex를 가진 TsgcGaugePointer의 Pointers 컬렉션
  • 스케일마다 Radius와 Offset을 가진 Scales 컬렉션
  • 임계값과 피드 바인딩의 PointerIndex
  • 여러 포인터로 만든 폼도 Community에서 불러와지며, 이 경우 첫 번째 포인터만 그립니다

Community는 게이지당 스케일 하나와 포인터 하나를 그리며, Registered 에디션은 모두 그립니다.

도움말 항목 읽기

경보, 움직임, 실시간 데이터

반응하는 게이지: 임계값, 애니메이션, 산업용 디스플레이, 실시간 피드.

경보, 움직임, 실시간 데이터

메인 스레드에서 발생하는 히스테리시스 경보

한계 부근에서 오르내리는 압력이 분당 백 번의 경보를 발생시켜서는 안 됩니다. 임계값에는 값, 방향, 히스테리시스 구간이 있어서 값이 넘어설 때 한 번 발생하고, 값이 그 구간만큼 되돌아간 뒤에야 다시 준비됩니다. OnThreshold는 어느 스레드가 값을 썼든 항상 메인 스레드에서 실행되므로 LED를 켜거나 메시지를 바로 표시할 수 있습니다. 각 임계값이 서로 다른 포인터를 감시할 수 있어서 게이지 하나에서 실제값에 대한 상한 경보와 두 번째 측정값에 대한 하한 경보를 발생시킬 수 있습니다.

  • Value, Hysteresis, Direction을 가진 TsgcGaugeThreshold의 Thresholds
  • gtdRising, gtdFalling, gtdBoth
  • ValueColor는 임계값이 활성인 동안 값 텍스트의 색을 바꿉니다
  • Gallery 데모는 200 km/h에서 경보 LED를 켭니다
도움말 항목 읽기

경보, 움직임, 실시간 데이터

이징이 있는 부드러운 바늘 애니메이션

튀듯이 움직이는 바늘은 고장 난 것처럼 보이고, 미끄러지듯 움직이는 바늘은 계기처럼 보입니다. 새 값은 선택한 지속 시간 동안 이전 값에서 다섯 가지 이징 곡선 중 하나로 움직이므로 갑작스러운 변화도 따라가기 쉽고 실시간 피드가 깜박이지 않습니다. 원시 값을 즉시 보여야 하는 테스트 벤치에서는 애니메이션을 끄세요. OnChange는 화면의 애니메이션과 관계없이 값이 바뀐 시점을 알려 줍니다.

  • Enabled와 Duration(기본값 300 ms)을 가진 Animation(TsgcGaugeAnimation)
  • Easing: geLinear, geQuadOut, geCubicOut, geCubicInOut, geBackOut
  • 모든 게이지 유형과 모든 에디션에서 동작합니다
  • IsAnimating은 포인터가 아직 움직이는 중인지 알려 줍니다
도움말 항목 읽기
산업용 디스플레이: 세그먼트, LED, 경보 패널

경보, 움직임, 실시간 데이터

산업용 디스플레이: 세그먼트, LED, 경보 패널

제어 패널에는 고유한 시각 언어가 있습니다. 디지털 게이지는 7세그먼트, 14세그먼트, 도트 매트릭스 숫자를 선택 사항인 고스트 세그먼트와 기울기와 함께 그립니다. LED는 깜박이고, LED 막대는 최고값을 유지하며, 경보 패널은 운영자가 확인할 때까지 깜박이는 경보 타일 패널을 보여 줍니다. 이 모든 디스플레이는 다른 게이지와 같은 스케일, 임계값, 테마를 사용하므로 경보가 어디서나 같은 방식으로 동작합니다.

  • TsgcVCLDigitalGauge: DisplayType, Digits, ShowGhost, Skew
  • Blink와 BlinkInterval을 가진 TsgcVCLLEDGauge, PeakHold를 가진 TsgcVCLLEDBarGauge
  • TsgcVCLAnnunciatorGauge: Tiles, FlashInterval, Acknowledge, AcknowledgeAll
  • HMIPanel 데모는 이들을 탱크, 펌프, 압력과 결합합니다

Community에는 7세그먼트 숫자, LED, LED 막대가 있습니다. 14세그먼트와 도트 매트릭스 디스플레이, 경보 패널은 Registered 에디션 기능입니다.

도움말 항목 읽기

경보, 움직임, 실시간 데이터 Registered 에디션 전용

MQTT 토픽을 포인터에 바로 바인딩

IoT 콘솔에서는 구독, 파싱, 게이지 찾기, 값 설정 같은 연결 작업이 코드의 대부분입니다. sgcGaugesWS 브리지가 이를 없애 줍니다. 피드 소스를 sgcWebSockets 클라이언트에 연결하고, 각 바인딩이 토픽과 JSON 경로를 게이지 포인터에 매핑합니다. + 및 # 를 사용하는 MQTT 토픽 필터를 지원하며, 필터 경로로 공유 스트림에서 장치 하나를 골라냅니다. 여러 바인딩이 하나의 소스를 공유할 수 있으므로 브로커 연결 하나로 패널 전체를 구동합니다.

  • TsgcGaugeFeedSource_MQTT, TsgcGaugeFeedSource_WebSocket, TsgcGaugeFeedSource_SSE
  • TsgcGaugeFeedBinding의 Bindings: Gauge, PointerIndex, Topic, ValuePath
  • FilterPath와 FilterValue가 메시지를 선택합니다
  • 소스의 OnValue와 OnError 이벤트

브리지에는 sgcWebSockets가 필요합니다. Community에서는 직접 작성한 코드에서 Value를 설정하세요. 백그라운드 스레드에서도 안전합니다.

도움말 항목 읽기

출력과 외관

서버에서도, 어떤 테마에서도 같은 게이지.

출력과 외관

창 없이 PNG 또는 SVG로 출력하는 게이지

게이지는 화면 밖에서도 필요합니다. 교대 근무 보고서, 상태 이메일, 백엔드가 제공하는 웹 페이지가 그렇습니다. 모든 게이지 모델과 컨트롤은 폼 없이 스스로 PNG 또는 SVG로 저장하므로 콘솔 프로그램, Windows 서비스, Linux64 서버도 운영자가 보는 것과 같은 계기를 렌더링할 수 있습니다. 너비, 높이, 배율이 매개변수이므로 호출 한 번으로 목록용 썸네일을, 다른 호출로 보고서용 선명한 2배 이미지를 만듭니다.

  • 모든 모델과 컨트롤의 SaveToPNG와 SaveToSVG
  • TsgcRadialGauge, TsgcLinearGauge 같은 프레임워크 중립 모델
  • Delphi 10.2부터 Linux64 헤드리스, Headless 데모는 Win32, Win64, Linux64에서 PNG와 SVG를 씁니다
  • .NET에서는 ConsoleRender 데모가 같은 일을 합니다
도움말 항목 읽기
주간 및 야간 교대를 위한 테마

출력과 외관

주간 및 야간 교대를 위한 테마

관제실은 밤에 화면을 어둡게 하고 사무실은 밝은 룩을 선호합니다. 속성 하나로 게이지를 라이트와 다크 테마 사이에서 전환하면 면, 스케일, 레이블, 값의 색상이 따라옵니다. 게이지는 모든 sgcUI 제품과 같은 테마 유형을 사용하므로 대시보드, 차트, 그리드와 함께 전환됩니다. 범위는 두 테마에서 자신의 색을 유지하므로 밤에도 녹색은 여전히 정상을 뜻합니다. FormatSettings 속성은 사용자 로케일과 관계없이 판독값의 소수점 구분 기호를 고정합니다.

  • Theme := utDark 또는 utLight
  • FaceColor, BackgroundColor, 글꼴은 게이지마다 설정할 수 있습니다
  • 판독값을 위한 Title, Units, ValueFormat
  • 값 텍스트를 직접 서식 지정하는 OnFormatValue
  • 아랍어와 히브리어를 위한 오른쪽에서 왼쪽 지원: 캡션과 단위 텍스트가 방향을 따르고, 다이얼, 시계, 나침반, 진행 막대는 방향을 유지합니다
도움말 항목 읽기

접근성

UI Automation을 통한 화면 읽기 프로그램과 고대비 지원, 별도 설정이 필요 없습니다.

접근성

값을 UI Automation에 노출하는 게이지

모든 게이지 유형은 캡션, 값, 범위를 Microsoft UI Automation에 노출하며, 임계값은 알림으로 전달됩니다. 게이지는 접근 가능한 PDF에 기록하는 것과 같은 대체 텍스트로 자신을 설명합니다.

  • 게이지는 값만 표시하므로 기본적으로 탭 정지 지점이 아니며, 그래도 UI Automation에는 노출됩니다
  • 키보드 사용자가 게이지에 도달해야 하면 TabStop을 True로 설정하세요
  • 디지털, LED, 시계, 나침반 게이지는 값을 텍스트로 노출하고, 나머지 유형은 범위 값으로 노출합니다
  • Windows 고대비 테마에서는 게이지가 시스템 색으로 그려집니다

접근성은 무료 Community 에디션을 포함한 모든 에디션에서 기본으로 켜져 있으며, Delphi 7부터 Delphi 13까지 모든 Delphi 및 C++Builder 버전의 VCL, Windows의 FireMonkey, 그리고 WinForms, WPF, Avalonia에서 지원됩니다. Delphi와 C++Builder에서는 AccessibleName과 AccessibleDescription이 UI Automation에 노출되는 이름과 설명을 설정하고, .NET에서는 각 프레임워크의 표준 접근성 이름과 도움말 텍스트가 같은 역할을 합니다. 접근성 적합성 보고서를 참조하세요.

도움말 항목 읽기

sgcGauges 동작 보기

sgcUI 제품군 데모 속의 sgcGauges: 내장 시뮬레이션 데이터로 오프라인에서 실행되는 완전한 애플리케이션입니다.

sgcGauges로 개발하는 사람들

SCADA 및 HMI 화면

공장 HMI는 수위 게이지가 있는 탱크 두 개, 펌프 LED, 빨간 구간이 있는 압력 다이얼, 경보용 경보 패널을 보여 줍니다. 히스테리시스가 있는 임계값은 각 경보를 한 번만 발생시키고, 경보 패널은 운영자가 확인할 때까지 깜박이며, 야간 교대에는 다크 테마로 전환됩니다.

  • 범위와 임계값
  • 경보 패널
  • LED
  • 다크 테마
HMIPanel 데모 실행

IoT 및 텔레메트리 콘솔

텔레메트리 콘솔은 브로커를 구독하여 현장 장치의 실시간 측정값 여섯 개를 보여 줍니다. 바인딩이 각 토픽과 JSON 필드를 포인터에 매핑하고, 바늘이 새 값마다 부드럽게 움직이며, 메시지 처리 코드를 직접 작성할 필요가 없습니다. 같은 게이지가 일일 상태 메일용 PNG로도 렌더링됩니다.

  • MQTT 바인딩
  • 애니메이션
  • 헤드리스 PNG
MQTTLive 데모 실행

계기가 있는 KPI 대시보드

경영 대시보드는 게이지를 KPI 카드와 차트 옆의 타일에 배치합니다. 가동률은 진행률 링, 배송 시간은 목표와 비교하는 불릿 그래프, 서비스 수준은 색상 구간이 있는 다이얼로 표시합니다. 모든 것이 하나의 테마 속성을 따르며 게이지는 타일에 맞춰 크기가 조정됩니다.

  • 진행률 링
  • 불릿 그래프
  • sgcDashboard 타일
Gallery 데모 실행

A Pressure and Level Panel in a Few Lines

The same API in Delphi, C++ Builder and C#: a radial pressure gauge with a red band and an alarm threshold, a bullet level gauge and a blinking alarm LED.

A radial pressure gauge with a red band and an alarm threshold, a bullet level gauge and a blinking alarm LED on a VCL form.

uses
  SysUtils, Classes, Controls, Forms, sgcUICore_Theme,
  sgcGauges_Types, sgcGauges_Model, sgcGauges_VCL;

type
  TTankPanel = class(TComponent)
  public
    Pressure: TsgcVCLRadialGauge;
    Level: TsgcVCLLinearGauge;
    Alarm: TsgcVCLLEDGauge;
    procedure PressureThreshold(Sender: TObject; aThreshold: TsgcGaugeThreshold;
      aValue: Double; aRising: Boolean);
  end;

procedure TTankPanel.PressureThreshold(Sender: TObject;
  aThreshold: TsgcGaugeThreshold; aValue: Double; aRising: Boolean);
begin
  // runs in the main thread, whatever thread wrote the value
  Alarm.Active := aRising;
end;

function CreateTankPanel(aForm: TForm): TTankPanel;
begin
  Result := TTankPanel.Create(aForm);
  Result.Pressure := TsgcVCLRadialGauge.Create(aForm);
  Result.Pressure.Parent := aForm;
  Result.Pressure.SetBounds(16, 16, 240, 240);
  Result.Pressure.Title := 'Pressure';
  Result.Pressure.Units := 'bar';
  Result.Pressure.Theme := utDark;
  Result.Pressure.Scales[0].Maximum := 10;
  Result.Pressure.Scales[0].MajorInterval := 2;
  with Result.Pressure.Scales[0].Ranges.Add do
  begin
    StartValue := 8;
    EndValue := 10;
    Color := $FFE34948;
  end;
  with Result.Pressure.Thresholds.Add do
  begin
    Value := 8;
    Hysteresis := 0.5;
    Direction := gtdBoth;
  end;
  Result.Pressure.Animation.Easing := geCubicOut;
  Result.Pressure.OnThreshold := Result.PressureThreshold;
  Result.Level := TsgcVCLLinearGauge.Create(aForm);
  Result.Level.Parent := aForm;
  Result.Level.SetBounds(272, 16, 320, 110);
  Result.Level.Title := 'Tank level';
  Result.Level.Units := '%';
  Result.Level.LinearStyle := glsBullet;
  Result.Level.Target := 80;
  Result.Alarm := TsgcVCLLEDGauge.Create(aForm);
  Result.Alarm.Parent := aForm;
  Result.Alarm.SetBounds(272, 140, 64, 64);
  Result.Alarm.OnColor := $FFE34948;
  Result.Alarm.Blink := True;
  Result.Level.Value := 62;
  Result.Pressure.Value := 6.5;
  // the same drawing code exports the gauge to PNG at twice its size
  Result.Pressure.SaveToPNG(ExtractFilePath(ParamStr(0)) + 'pressure.png', 2);
end;

도움말 항목 읽기 →

The same panel in C++ Builder with the generated headers.

#include <vcl.h>
#include "sgcUICore_Theme.hpp"
#include "sgcGauges_Types.hpp"
#include "sgcGauges_Model.hpp"
#include "sgcGauges_VCL.hpp"

class TTankPanel : public TObject
{
public:
  TsgcVCLRadialGauge *Pressure;
  TsgcVCLLinearGauge *Level;
  TsgcVCLLEDGauge *Alarm;
  void __fastcall PressureThreshold(TObject *Sender,
    TsgcGaugeThreshold *aThreshold, double aValue, bool aRising);
};

void __fastcall TTankPanel::PressureThreshold(TObject *Sender,
  TsgcGaugeThreshold *aThreshold, double aValue, bool aRising)
{
  // runs in the main thread, whatever thread wrote the value
  Alarm->Active = aRising;
}

TTankPanel * __fastcall CreateTankPanel(TForm *Form)
{
  TTankPanel *P = new TTankPanel();
  P->Pressure = new TsgcVCLRadialGauge(Form);
  P->Pressure->Parent = Form;
  P->Pressure->SetBounds(16, 16, 240, 240);
  P->Pressure->Title = "Pressure";
  P->Pressure->Units = "bar";
  P->Pressure->Theme = utDark;
  P->Pressure->Scales->Items[0]->Maximum = 10;
  P->Pressure->Scales->Items[0]->MajorInterval = 2;
  TsgcGaugeRange *R = P->Pressure->Scales->Items[0]->Ranges->Add();
  R->StartValue = 8;
  R->EndValue = 10;
  R->Color = 0xFFE34948;
  TsgcGaugeThreshold *T = P->Pressure->Thresholds->Add();
  T->Value = 8;
  T->Hysteresis = 0.5;
  T->Direction = gtdBoth;
  P->Pressure->Animation->Easing = geCubicOut;
  P->Pressure->OnThreshold = P->PressureThreshold;
  P->Level = new TsgcVCLLinearGauge(Form);
  P->Level->Parent = Form;
  P->Level->SetBounds(272, 16, 320, 110);
  P->Level->Title = "Tank level";
  P->Level->Units = "%";
  P->Level->LinearStyle = glsBullet;
  P->Level->Target = 80;
  P->Alarm = new TsgcVCLLEDGauge(Form);
  P->Alarm->Parent = Form;
  P->Alarm->SetBounds(272, 140, 64, 64);
  P->Alarm->OnColor = 0xFFE34948;
  P->Alarm->Blink = true;
  P->Level->Value = 62;
  P->Pressure->Value = 6.5;
  // the same drawing code exports the gauge to PNG at twice its size
  P->Pressure->SaveToPNG(ExtractFilePath(ParamStr(0)) + "pressure.png", 2);
  return P;
}

도움말 항목 읽기 →

The WinForms version in C#, with the same class names as Delphi.

using System;
using System.Drawing;
using System.Windows.Forms;
using esegece.sgcGauges;
using esegece.sgcUICore;

public class TankForm : Form
{
    private readonly TsgcWinFormsRadialGauge pressure;
    private readonly TsgcWinFormsLinearGauge level;
    private readonly TsgcWinFormsLEDGauge alarm;

    public TankForm()
    {
        ClientSize = new Size(610, 270);
        pressure = new TsgcWinFormsRadialGauge { Bounds = new Rectangle(10, 10, 240, 240) };
        pressure.Title = "Pressure";
        pressure.Units = "bar";
        pressure.Theme = TsgcUITheme.utDark;
        pressure.Scales[0].Maximum = 10;
        pressure.Scales[0].MajorInterval = 2;
        TsgcGaugeRange red = pressure.Scales[0].Ranges.Add();
        red.StartValue = 8;
        red.EndValue = 10;
        red.Color = 0xFFE34948;
        TsgcGaugeThreshold limit = pressure.Thresholds.Add();
        limit.Value = 8;
        limit.Hysteresis = 0.5;
        limit.Direction = TsgcGaugeThresholdDirection.gtdBoth;
        pressure.Animation.Easing = TsgcGaugeEasing.geCubicOut;

        level = new TsgcWinFormsLinearGauge { Bounds = new Rectangle(260, 10, 340, 110) };
        level.Title = "Tank level";
        level.Units = "%";
        level.LinearStyle = TsgcGaugeLinearStyle.glsBullet;
        level.Target = 80;

        alarm = new TsgcWinFormsLEDGauge { Bounds = new Rectangle(260, 130, 64, 64) };
        alarm.OnColor = 0xFFE34948;
        alarm.Blink = true;

        // OnThreshold runs in the UI thread, whatever thread wrote the value
        pressure.OnThreshold = (sender, threshold, value, rising) => alarm.Active = rising;
        Controls.AddRange(new Control[] { pressure, level, alarm });
        level.Value = 62;
        pressure.Value = 6.5;
    }
}
dotnet add package esegece.sgcGauges.WinForms

도움말 항목 읽기 →

sgcGauges 데모 실행하기

Delphi와 C++ Builder용 Gallery, GalleryFMX, Headless, HMIPanel, DashboardGauges, MQTTLive. .NET 데모는 Gallery(WinForms), GalleryWpf, GalleryAvalonia, ConsoleRender, HMIPanel, MQTTLive입니다.

HMIPanel

HMIPanel

펌프, 수위, 압력, 경보 패널 경보가 있는 두 개의 탱크로, 일반적인 공정 화면의 레이아웃입니다.

DashboardGauges

sgcDashboard 타일 안에서 대시보드 테마를 따르는 여섯 개의 게이지. Community 에디션으로 빌드됩니다.

Headless

Win32, Win64, Linux64에서 PNG와 SVG를 쓰는 콘솔 프로그램.

GalleryFMX

Windows와 Android용 FireMonkey 갤러리.

Registered 에디션 전용 MQTTLive

sgcGaugesWS 브리지를 통해 MQTT로 공급되는 여섯 개의 게이지. sgcWebSockets와 브로커가 필요합니다.

컴파일된 데모

sgcUI 제품 전체의 실행 파일을 제공하며, 설치가 필요 없습니다.

sgcUI_bin.zip 다운로드 →

sgcGauges가 포함된 곳

sgcGauges는 sgcUI Professional과 Enterprise 에디션에 포함되며 단독으로도 판매됩니다. 또한 All-Access 번들에도 포함되어 있습니다.

sgcGauges 단일 패키지

€199 / 개발자, 전체 소스 코드, 1년 업데이트.

sgcGauges 구매 → 가격 보기 →

sgcUI Professional

Standard에 sgcGauges, sgcCharts 및 sgcDashboard 추가, €529부터.

Professional 보기 →

sgcUI Enterprise

sgcUI 제품 14개 전체, €699부터.

Enterprise 보기 →

무료 Community 에디션(NuGet의 esegece.sgcGauges.Community)에는 범위, 임계값, 애니메이션, 테마, 헤드리스 출력을 갖춘 방사형, 선형, 7세그먼트 디지털, LED, LED 막대, 진행률 링 게이지가 있습니다. VU 미터, 시계, 나침반, 경보 패널, 추가 스케일과 포인터, sgcGaugesWS 브리지는 없습니다.

기능Community (무료)Registered 에디션
방사형, 선형, 7세그먼트 디지털, LED, LED 막대, 진행률 링✓✓
범위, 임계값, 애니메이션, 테마✓✓
헤드리스 PNG 및 SVG 출력✓✓
VU 미터, 시계, 나침반, 경보 패널−✓
게이지당 여러 스케일과 포인터−✓
14세그먼트 및 도트 매트릭스 디스플레이−✓
sgcGaugesWS 브리지(MQTT, WebSocket, SSE)−✓

지원 프레임워크 및 플랫폼

sgcGauges의 컴포넌트

모든 게이지에는 헤드리스 렌더링용 프레임워크 중립 모델, VCL 컨트롤(C++ Builder에서도 사용), FireMonkey 컨트롤, WinForms, WPF, Avalonia 컨트롤이 있습니다.

게이지VCL 및 C++ BuilderFireMonkey.NET
방사형TsgcVCLRadialGaugeTsgcFMXRadialGaugeTsgcWinFormsRadialGauge
선형(막대, 온도계, 불릿)TsgcVCLLinearGaugeTsgcFMXLinearGaugeTsgcWpfLinearGauge
디지털(7세그먼트, 14세그먼트, 도트 매트릭스)TsgcVCLDigitalGaugeTsgcFMXDigitalGaugeTsgcWinFormsDigitalGauge
LEDTsgcVCLLEDGaugeTsgcFMXLEDGaugeTsgcWinFormsLEDGauge
LED 막대TsgcVCLLEDBarGaugeTsgcFMXLEDBarGaugeTsgcWinFormsLEDBarGauge
진행률 링TsgcVCLProgressRingGaugeTsgcFMXProgressRingGaugeTsgcWinFormsProgressRingGauge
VU 미터TsgcVCLVUMeterGaugeTsgcFMXVUMeterGaugeTsgcWinFormsVUMeterGauge
시계TsgcVCLClockGaugeTsgcFMXClockGaugeTsgcWinFormsClockGauge
나침반TsgcVCLCompassGaugeTsgcFMXCompassGaugeTsgcWpfCompassGauge
경보 패널TsgcVCLAnnunciatorGaugeTsgcFMXAnnunciatorGaugeTsgcAvaloniaAnnunciatorGauge

.NET 열에는 게이지마다 예시를 하나씩 표시했으며, 모든 게이지는 TsgcWinForms, TsgcWpf, TsgcAvalonia로 제공됩니다. 모든 게이지는 Scales, Pointers, Thresholds, Ranges 컬렉션을 가진 기본 클래스 TsgcCustomGauge를 공유합니다. 프레임워크 중립 모델(TsgcRadialGauge, TsgcLinearGauge 등)은 창 없이 렌더링합니다.

대상컴포넌트플랫폼
Delphi 7부터 13, VCLTsgcVCL 게이지Win32, XE2부터 Win64
Delphi XE6부터 13, FireMonkeyTsgcFMX 게이지Windows, macOS, iOS, Android
C++ Builder 2007부터 13TsgcVCL 게이지생성된 .hpp 헤더와 정적 라이브러리
Delphi 10.2부터 13, 프레임워크 중립게이지 모델과 헤드리스 PNG 및 SVG 출력Linux64(Linux 컨트롤 없음)
.NET Framework 4.7.2, .NET 8, 9, 10WinForms, WPF, Avalonia 게이지Windows 데스크톱, Avalonia 대상, 헤드리스 렌더링

자주 묻는 질문

예. 데이터를 받는 스레드에서 Value를 설정하세요. 임계값은 자동으로 평가되고 OnThreshold는 항상 메인 스레드에서 발생하므로 핸들러가 추가 동기화 없이 컨트롤을 업데이트할 수 있습니다. sgcGaugesWS 브리지도 MQTT, WebSocket, SSE에서 포인터에 데이터를 공급할 때 같은 방식으로 동작합니다.

범위, 임계값, 애니메이션, 테마, 헤드리스 출력을 갖춘 방사형, 선형, 7세그먼트 디지털, LED, LED 막대, 진행률 링 게이지입니다. VU 미터, 시계, 나침반, 경보 패널, 추가 스케일과 포인터, 14세그먼트 및 도트 매트릭스 숫자, 브리지는 Registered 에디션 기능입니다. 에디션을 참조하세요.

예, Registered 에디션과 sgcWebSockets가 있으면 가능합니다. TsgcGaugeFeedSource_MQTT를 올려 놓고 MQTT 클라이언트를 연결한 다음 게이지마다 Topic과 JSON ValuePath를 가진 바인딩을 추가하세요. + 및 # 토픽 필터가 동작하며 FilterPath로 공유 토픽에서 장치 하나를 고릅니다.

FireMonkey 컨트롤은 Delphi XE6부터 동작하며 GalleryFMX 데모는 Windows와 Android에서 실행됩니다. Linux64에서 sgcGauges는 헤드리스만 지원합니다. Delphi 10.2부터 모델이 컴파일되어 PNG와 SVG를 렌더링하지만 Linux 컨트롤은 없습니다.

예. 모든 스케일에는 고유한 Minimum, Maximum, MajorInterval, 보조 눈금이 있으며, 시작, 끝, 색상, 두께, 캡션을 가진 색상 범위를 원하는 만큼 추가할 수 있습니다. 방사형 게이지에서는 호의 시작 각도와 스윕 각도도 선택할 수 있습니다.

예. SaveToPNG와 SaveToSVG는 모든 컨트롤과 모델에서 창 없이 동작하므로 서비스나 Linux64 서버가 현재 측정값을 PDF나 이메일에 넣을 수 있습니다. Gallery 데모는 2배 PNG도 내보냅니다.

디지털 게이지는 스케일에서 크기를 정합니다. Digits가 0이면 스케일 최댓값에 필요한 만큼의 자릿수를 확보하며, 기본 스케일은 0에서 100까지입니다. Scales[0].Maximum을 예상되는 가장 큰 값으로 설정하거나 Digits를 직접 지정하세요.

sgcGauges 도움말

3,000+개발자
20+년
761+컴포넌트
30+API 통합
5플랫폼
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기

지금 sgcGauges를 체험해 보세요

sgcUI 체험판에는 sgcGauges와 다른 모든 sgcUI 제품이 포함되어 있습니다.