Delphi、C++ Builder & .NET sgcUI の製品です

sgcGauges、Delphi、C++ Builder & .NET 向けの計器パネル

ラジアルダイヤルからアナンシエーターまで、ダッシュボードと HMI パネル向けの 10 種類のゲージです。緑、黄、赤の帯を描画し、値が限界を超えたらアラームを発し、針を新しい値へ滑らかに動かし、同じゲージをサーバーで PNG や SVG にレンダリングできます。

VCL、FireMonkey、WinForms、WPF、Avalonia10 種類のゲージ、Community 版では 6 種類ウィンドウなしで PNG と SVGsgcUI Professional に含まれます
タンク、ポンプ、LED バー、アナンシエーターを表示した HMIPanel デモ

計器パネルに必要なすべてを

4 つのグループに分けた 11 の機能です。実際のクラス名とプロパティ名を示し、各ヘルプトピックにリンクしています。登録版と表示された機能は、無料の .NET Community ビルドには含まれません。

計器とスケール

1 つのモデルで 10 種類を扱い、範囲、スタイル、複数のポインターに対応します。

ラジアル、リング、コンパス、時計、VU メーター、リニア、デジタル、LED の各ゲージを並べた sgcGauges のギャラリー

計器とスケール

1 つのライブラリで 10 種類の計器

ダッシュボード、HMI パネル、テストベンチには、それぞれ異なる計器が必要です。速度にはダイヤル、レベルにはバー、周波数にはデジタル表示、ポンプにはランプ、アラームにはタイルパネルです。sgcGauges には、同じスケール、ポインター、範囲、しきい値、テーマを共有する 1 つのモデルに基づく 10 種類が付属します。API を 1 つ覚えれば、どの計器も同じように動作します。

  • TsgcVCLRadialGauge、TsgcVCLLinearGauge、TsgcVCLDigitalGauge、TsgcVCLLEDGauge、TsgcVCLLEDBarGauge、TsgcVCLProgressRingGauge
  • TsgcVCLVUMeterGauge、TsgcVCLClockGauge、TsgcVCLCompassGauge、TsgcVCLAnnunciatorGauge
  • どの種類も FireMonkey 向けにあり、.NET では WinForms、WPF、Avalonia 向けにもあります
  • ヘッドレス用に、種類ごとのフレームワークに依存しないモデルがあります。例: TsgcRadialGauge

Community 版には、ラジアル、リニア、7 セグメントのデジタル、LED、LED バー、プログレスリングのゲージが含まれます。VU メーター、時計、コンパス、アナンシエーターは登録版です。

ヘルプのトピックを読む
緑、黄、赤の範囲を付けた、0 から 260 km/h のスピードメーター

計器とスケール

どのスケールにも色付きの範囲

オペレーターがゲージを一目で読み取れるのは、緑、黄、赤が値のあるべき位置を示しているときです。スケールには任意の最小値と最大値を設定し、主目盛の間隔と補助目盛を指定して、重要な帯に色付きの範囲を追加します。範囲には独自の太さとキャプションを付けられ、スケールは逆向きにすることも、目盛を内側や外側に配置することもできます。範囲はスケール自体に描画されるため、追加の作業なしで、PNG と SVG の出力にも、両方のテーマにも反映されます。

  • Scales[0].Ranges.Add。StartValue、EndValue、Color、Thickness、Caption を指定します
  • TsgcGaugeScale: Minimum、Maximum、MajorInterval、MinorCount、Reversed
  • スケールのラベル用の LabelFormat と ShowLabels
  • StartAngle と SweepAngle で、ラジアルゲージの円弧の形を決めます
ヘルプのトピックを読む
3 つの縦向きリニアゲージ: ブレットグラフ、温度計、バー

計器とスケール

1 つのコントロールでブレットグラフ、温度計、バー

レベル、温度、目標に対する進捗は、本来リニアなものです。1 つのリニアゲージで、単純なバー、球部付きの温度計、値を目標マーカーと比較するブレットグラフの 3 つのスタイルを描画できます。タンク、サイドバー、テーブルの行に合わせて、水平にも垂直にもできます。ブレットグラフの目標は追加のポインターではなくプロパティなので、無料の Community 版でも使えます。小さなゲージは、グリッドのセルやダッシュボードのタイルに収まります。

  • LinearStyle: glsBar、glsThermometer、glsBullet
  • Target はブレットグラフの目標マーカーを描画します。全エディションで使えます
  • Orientation と BulbSize
  • 範囲としきい値は、ラジアルゲージとまったく同じように動作します
ヘルプのトピックを読む
実測値を示す針と、目標を示すマーカーを持つラジアルゲージ

計器とスケール 登録版のみ

1 つのゲージに複数のスケールとポインター

実測値と目標値、入口と出口、時間と分のように、並べてこそ意味を持つ読み取り値があります。1 つのゲージに複数のスケールと複数のポインターを持たせることができ、各ポインターはスケールとスタイル(針、マーカー、バー)を選びます。しきい値はどのポインターも監視できます。2 つのポインターを持つダイヤルは、混み合ったパネルで場所を節約でき、目標と実測の差が一目でわかります。

  • TsgcGaugePointer の Pointers コレクションと Kind、NeedleStyle、MarkerShape、ScaleIndex
  • Scales コレクションと、スケールごとの Radius と Offset
  • しきい値とフィードバインドの PointerIndex
  • 複数のポインターで作ったフォームも Community 版で読み込めますが、描画されるのは最初のポインターだけです

Community 版は、ゲージごとに 1 つのスケールと 1 つのポインターを描画します。登録版はすべてを描画します。

ヘルプのトピックを読む

アラーム、動き、ライブデータ

反応するゲージ。しきい値、アニメーション、産業用ディスプレイ、ライブフィードに対応します。

アラーム、動き、ライブデータ

メインスレッドで発生する、ヒステリシス付きのアラーム

限界値の付近で上下する圧力が、1 分間に 100 回もアラームを発してはいけません。しきい値は、値、方向、ヒステリシスの帯を持ちます。値が交差したときに 1 回だけ発生し、値が帯の幅だけ戻った後に再び有効になります。OnThreshold は、どのスレッドが値を書き込んでも常にメインスレッドで実行されるので、LED を点灯したり、メッセージを直接表示したりできます。しきい値ごとに監視するポインターを変えられるため、1 つのゲージで、実測値に対する上限アラームと、2 つ目の読み取り値に対する下限アラームを発生させられます。

  • TsgcGaugeThreshold の Thresholds と Value、Hysteresis、Direction
  • gtdRising、gtdFalling、gtdBoth
  • ValueColor は、しきい値が有効な間、値のテキストの色を変えます
  • Gallery デモは、200 km/h でアラーム LED を点灯します
ヘルプのトピックを読む

アラーム、動き、ライブデータ

イージング付きの滑らかな針のアニメーション

飛び跳ねる針は壊れているように見え、滑らかに動く針は計器らしく見えます。新しい値は、指定した時間をかけて、5 種類のイージング曲線のいずれかで元の値からアニメーションします。急な変化も追いやすく、ライブフィードでもちらつきません。生の値をすぐ必要とするテストベンチでは、アニメーションをオフにできます。OnChange は、画面上のアニメーションとは無関係に、値が変わったことを通知します。

  • Animation(TsgcGaugeAnimation)の Enabled と Duration。既定は 300 ms です
  • Easing: geLinear、geQuadOut、geCubicOut、geCubicInOut、geBackOut
  • すべてのゲージの種類、すべてのエディションで動作します
  • IsAnimating で、ポインターがまだ動いているかを確認できます
ヘルプのトピックを読む
産業用ディスプレイ: セグメント、LED、アナンシエーター

アラーム、動き、ライブデータ

産業用ディスプレイ: セグメント、LED、アナンシエーター

制御パネルには、独自の視覚言語があります。デジタルゲージは、7 セグメント、14 セグメント、ドットマトリクスの数字を、任意のゴーストセグメントと傾きとともに描画します。LED は点滅し、LED バーはピークを保持し、アナンシエーターはオペレーターが確認応答するまで点滅するアラームタイルのパネルを表示します。これらのディスプレイはすべて、ほかのゲージと同じスケール、しきい値、テーマを備えているため、アラームはどこでも同じように動作します。

  • TsgcVCLDigitalGauge: DisplayType、Digits、ShowGhost、Skew
  • TsgcVCLLEDGauge の Blink と BlinkInterval。TsgcVCLLEDBarGauge の PeakHold
  • TsgcVCLAnnunciatorGauge: Tiles、FlashInterval、Acknowledge、AcknowledgeAll
  • HMIPanel デモは、これらをタンク、ポンプ、圧力と組み合わせています

Community 版には、7 セグメントの数字、LED、LED バーが含まれます。14 セグメントとドットマトリクスのディスプレイ、アナンシエーターは登録版です。

ヘルプのトピックを読む

アラーム、動き、ライブデータ 登録版のみ

MQTT のトピックをポインターに直接バインド

IoT コンソールのコードの大半は、購読、解析、ゲージの検索、値の設定といった配管処理です。sgcGaugesWS ブリッジは、それをなくします。フィードソースを sgcWebSockets クライアントに接続し、各バインドでトピックと JSON パスをゲージのポインターにマップします。+ と # を使った MQTT のトピックフィルターに対応し、フィルターパスで共有ストリームから 1 台のデバイスを選べます。複数のバインドが 1 つのソースを共有できるので、1 つのブローカー接続でパネル全体を動かせます。

  • TsgcGaugeFeedSource_MQTT、TsgcGaugeFeedSource_WebSocket、TsgcGaugeFeedSource_SSE
  • TsgcGaugeFeedBinding の Bindings: Gauge、PointerIndex、Topic、ValuePath
  • FilterPath と FilterValue でメッセージを選択します
  • ソースの OnValue と OnError イベント

ブリッジには sgcWebSockets が必要です。Community では、自分のコードから Value を設定してください。バックグラウンドスレッドからでも安全です。

ヘルプのトピックを読む

出力と見た目

サーバーでも、どのテーマでも、同じゲージです。

出力と見た目

ウィンドウなしで PNG または SVG のゲージ

ゲージは、シフトレポート、状態通知メール、バックエンドが配信する Web ページなど、画面の外でも必要になります。すべてのゲージモデルとすべてのコントロールは、フォームなしで PNG または SVG として自分自身を保存できるため、コンソールプログラム、Windows サービス、Linux64 サーバーで、オペレーターが見ているのと同じ計器をレンダリングできます。幅、高さ、スケールはパラメーターなので、1 回の呼び出しでリスト用のサムネイルを、別の呼び出しでレポート用の鮮明な 2 倍の画像を作成できます。

  • すべてのモデルとコントロールの SaveToPNG と SaveToSVG
  • TsgcRadialGauge や TsgcLinearGauge などの、フレームワークに依存しないモデル
  • Delphi 10.2 以降で Linux64 のヘッドレスに対応します。Headless デモは Win32、Win64、Linux64 で PNG と SVG を書き出します
  • .NET では、ConsoleRender デモが同じことを行います
ヘルプのトピックを読む
昼勤と夜勤のためのテーマ

出力と見た目

昼勤と夜勤のためのテーマ

制御室は夜間に画面を暗くし、オフィスは明るい見た目を好みます。1 つのプロパティで、ゲージをライトとダークのテーマの間で切り替えられ、文字盤、スケール、ラベル、値の色が追従します。ゲージは 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 版を含むすべてのエディションで既定で有効です。VCL では Delphi 7 から Delphi 13 までのすべての Delphi と C++Builder のバージョンで、FireMonkey では Windows で、そして WinForms、WPF、Avalonia で使えます。 Delphi と C++Builder では、AccessibleName と AccessibleDescription が UI Automation に公開される名前と説明を設定し、.NET では各フレームワーク標準のアクセシブルな名前とヘルプテキストが同じ役割を果たします。アクセシビリティ適合レポートを参照してください。

ヘルプのトピックを読む

sgcGauges の動作を見る

sgcUI スイートのデモに含まれる sgcGauges:組み込みのシミュレーションデータでオフラインで動作する完全なアプリケーションです。

sgcGauges の主な利用シーン

SCADA と HMI の画面

プラントの HMI には、レベルゲージ付きの 2 つのタンク、ポンプの LED、赤い帯付きの圧力ダイヤル、アラーム用のアナンシエーターパネルを表示します。ヒステリシス付きのしきい値が各アラームを 1 回だけ発生させ、アナンシエーターはオペレーターが確認応答するまで点滅し、夜勤ではダークテーマに切り替わります。

  • 範囲としきい値
  • アナンシエーター
  • LED
  • ダークテーマ
HMIPanel デモを実行する

IoT とテレメトリのコンソール

テレメトリコンソールがブローカーを購読し、現場のデバイスからの 6 つのライブ読み取り値を表示します。バインドが各トピックと JSON フィールドをポインターにマップし、針が新しい値へ滑らかに動き、メッセージ処理のコードは手書きしません。同じゲージは、毎日の状態通知メール向けに PNG としてもレンダリングされます。

  • MQTT のバインド
  • アニメーション
  • ヘッドレスの PNG
MQTTLive デモを実行する

計器付きの KPI ダッシュボード

経営ダッシュボードでは、KPI カードやチャートの隣のタイルにゲージを置きます。稼働率はプログレスリング、納期は目標に対するブレットグラフ、サービスレベルは色付きの帯を持つダイヤルです。すべてが 1 つのテーマプロパティに従い、ゲージはタイルに合わせてサイズが決まります。

  • プログレスリング
  • ブレットグラフ
  • 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

ポンプ、レベル、圧力、アナンシエーターのアラームを備えた 2 つのタンクです。典型的なプロセス画面のレイアウトです。

DashboardGauges

sgcDashboard のタイルに配置した 6 つのゲージで、ダッシュボードのテーマに従います。Community 版でビルドできます。

Headless

Win32、Win64、Linux64 で PNG と SVG を書き出すコンソールプログラムです。

GalleryFMX

Windows と Android 向けの、FireMonkey 版のギャラリーです。

登録版のみ MQTTLive

sgcGaugesWS ブリッジ経由で MQTT から値を受け取る 6 つのゲージです。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(無料)登録版
ラジアル、リニア、7 セグメントのデジタル、LED、LED バー、プログレスリング✓✓
範囲、しきい値、アニメーション、テーマ✓✓
ヘッドレスの PNG と SVG の出力✓✓
VU メーター、時計、コンパス、アナンシエーター−✓
ゲージごとに複数のスケールとポインター−✓
14 セグメントとドットマトリクスのディスプレイ−✓
sgcGaugesWS ブリッジ(MQTT、WebSocket、SSE)−✓

対応フレームワークとプラットフォーム

sgcGauges のコンポーネント

すべてのゲージに、ヘッドレスレンダリング用のフレームワークに依存しないモデル、VCL コントロール(C++ Builder からも使用)、FireMonkey コントロール、WinForms、WPF、Avalonia のコントロールがあります。

GaugeVCL と C++ BuilderFireMonkey.NET
RadialTsgcVCLRadialGaugeTsgcFMXRadialGaugeTsgcWinFormsRadialGauge
リニア(バー、温度計、ブレット)TsgcVCLLinearGaugeTsgcFMXLinearGaugeTsgcWpfLinearGauge
デジタル(7 セグメント、14 セグメント、ドットマトリクス)TsgcVCLDigitalGaugeTsgcFMXDigitalGaugeTsgcWinFormsDigitalGauge
LEDTsgcVCLLEDGaugeTsgcFMXLEDGaugeTsgcWinFormsLEDGauge
LED バーTsgcVCLLEDBarGaugeTsgcFMXLEDBarGaugeTsgcWinFormsLEDBarGauge
プログレスリングTsgcVCLProgressRingGaugeTsgcFMXProgressRingGaugeTsgcWinFormsProgressRingGauge
VU メーターTsgcVCLVUMeterGaugeTsgcFMXVUMeterGaugeTsgcWinFormsVUMeterGauge
ClockTsgcVCLClockGaugeTsgcFMXClockGaugeTsgcWinFormsClockGauge
CompassTsgcVCLCompassGaugeTsgcFMXCompassGaugeTsgcWpfCompassGauge
アナンシエーターTsgcVCLAnnunciatorGaugeTsgcFMXAnnunciatorGaugeTsgcAvaloniaAnnunciatorGauge

.NET の列にはゲージごとに 1 つの例を示していますが、すべてのゲージに TsgcWinForms、TsgcWpf、TsgcAvalonia 版があります。すべてのゲージは、Scales、Pointers、Thresholds、Ranges の各コレクションを持つ基底クラス TsgcCustomGauge を共有します。フレームワークに依存しないモデル(TsgcRadialGauge、TsgcLinearGauge など)は、ウィンドウなしでレンダリングできます。

TargetComponent対応プラットフォーム
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 セグメントとドットマトリクスの数字、ブリッジは登録版です。エディションをご覧ください。

はい、登録版と sgcWebSockets で可能です。TsgcGaugeFeedSource_MQTT を配置し、MQTT クライアントを関連付けて、ゲージごとに Topic と JSON の ValuePath を持つバインドを追加します。+ と # を使ったトピックフィルターに対応し、FilterPath で共有トピックから 1 台のデバイスを選べます。

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 製品が含まれます。