Delphi, C++ Builder & .NET Fait partie de sgcUI

sgcGauges, le tableau d'instruments pour Delphi, C++ Builder & .NET

Dix types de jauges pour tableaux de bord et panneaux IHM, du cadran radial à l'annonciateur. Trace des bandes vertes, orange et rouges, déclenche une alarme quand une valeur franchit une limite, laisse l'aiguille glisser vers chaque nouvelle mesure et rends la même jauge en PNG ou SVG sur un serveur.

VCL, FireMonkey, WinForms, WPF, AvaloniaDix types de jauges, six en CommunityPNG et SVG sans fenêtreInclus dans sgcUI Professional
Démo HMIPanel avec réservoirs, pompes, barres LED et un annonciateur

Tout ce qu'il faut à un tableau d'instruments

Onze fonctions en quatre groupes, avec les vrais noms de classes et de propriétés et un lien vers chaque rubrique d'aide. Les fonctions marquées Enregistrée ne font pas partie de la version .NET Community gratuite.

Instruments et échelles

Dix types sur un seul modèle, avec plages, styles et plusieurs pointeurs.

Galerie sgcGauges avec jauges radiale, anneau, boussole, horloge, vumètre, linéaire, numérique et LED

Instruments et échelles

Dix types d'instruments dans une seule bibliothèque

Les tableaux de bord, panneaux IHM et bancs d'essai ont besoin d'instruments différents : un cadran pour la vitesse, une barre pour le niveau, un afficheur numérique pour la fréquence, un voyant pour une pompe, un panneau de tuiles pour les alarmes. sgcGauges propose dix types qui partagent un même modèle, avec les mêmes échelles, pointeurs, plages, seuils et thèmes. Apprends une seule API et chaque instrument se comporte de la même façon.

  • TsgcVCLRadialGauge, TsgcVCLLinearGauge, TsgcVCLDigitalGauge, TsgcVCLLEDGauge, TsgcVCLLEDBarGauge, TsgcVCLProgressRingGauge
  • TsgcVCLVUMeterGauge, TsgcVCLClockGauge, TsgcVCLCompassGauge, TsgcVCLAnnunciatorGauge
  • Chaque type existe aussi pour FireMonkey et, en .NET, pour WinForms, WPF et Avalonia
  • Un modèle indépendant du framework par type, comme TsgcRadialGauge, pour un usage sans interface

Community contient les jauges radiale, linéaire, numérique à 7 segments, LED, barre LED et anneau de progression. Le vumètre, l'horloge, la boussole et l'annonciateur sont Enregistrée.

Lire la rubrique d'aide
Compteur de vitesse de 0 à 260 km/h avec plages verte, orange et rouge

Instruments et échelles

Des plages colorées sur n'importe quelle échelle

Un opérateur lit une jauge d'un coup d'œil seulement quand le vert, l'orange et le rouge indiquent où la valeur doit se situer. Donne à une échelle un minimum et un maximum quelconques, définis l'intervalle principal et les graduations secondaires, et ajoute des plages colorées pour les bandes qui comptent. Les plages ont leur propre épaisseur et leur légende, et l'échelle peut s'inverser ou placer ses graduations à l'intérieur ou à l'extérieur. Les plages sont dessinées sur l'échelle elle-même, elles apparaissent donc aussi dans la sortie PNG et SVG et dans les deux thèmes sans travail supplémentaire.

  • Scales[0].Ranges.Add avec StartValue, EndValue, Color, Thickness et Caption
  • TsgcGaugeScale : Minimum, Maximum, MajorInterval, MinorCount, Reversed
  • LabelFormat et ShowLabels pour les libellés de l'échelle
  • StartAngle et SweepAngle définissent l'arc d'une jauge radiale
Lire la rubrique d'aide
Trois jauges linéaires verticales : graphique bullet, thermomètre et barre

Instruments et échelles

Graphique bullet, thermomètre et barre dans un seul contrôle

Les niveaux, les températures et l'avancement par rapport à un objectif sont linéaires par nature. Une jauge linéaire dessine trois styles : une simple barre, un thermomètre avec bulbe et un graphique bullet qui compare la valeur à un repère d'objectif. Place-la à l'horizontale ou à la verticale pour l'adapter à un réservoir, une barre latérale ou une ligne de tableau. L'objectif du bullet est une propriété, pas un pointeur supplémentaire, le graphique bullet fonctionne donc aussi dans l'édition Community gratuite. Une petite jauge tient dans une cellule de grille ou une tuile de tableau de bord.

  • LinearStyle : glsBar, glsThermometer ou glsBullet
  • Target dessine le repère d'objectif du bullet, dans toutes les éditions
  • Orientation et BulbSize
  • Les plages et les seuils fonctionnent exactement comme sur la jauge radiale
Lire la rubrique d'aide
Jauge radiale avec une aiguille pour la valeur réelle et un repère pour l'objectif

Instruments et échelles Enregistrée uniquement

Plusieurs échelles et pointeurs sur une même jauge

Certaines mesures n'ont de sens que côte à côte : réel et objectif, entrée et sortie, heures et minutes. Une jauge peut porter plusieurs échelles et plusieurs pointeurs, et chaque pointeur choisit son échelle et son style : aiguille, repère ou barre. Les seuils peuvent surveiller n'importe quel pointeur. Un cadran à double pointeur économise de la place sur les panneaux chargés et rend visible d'un coup l'écart entre objectif et réel.

  • Collection Pointers de TsgcGaugePointer avec Kind, NeedleStyle, MarkerShape et ScaleIndex
  • Collection Scales avec Radius et Offset par échelle
  • PointerIndex sur les seuils et les liaisons de flux
  • Les fiches créées avec plusieurs pointeurs se chargent encore en Community, qui ne dessine que le premier

Community dessine une échelle et un pointeur par jauge ; l'édition Enregistrée les dessine tous.

Lire la rubrique d'aide

Alarmes, mouvement et données en direct

Des jauges qui réagissent : seuils, animation, afficheurs industriels et flux en direct.

Alarmes, mouvement et données en direct

Des alarmes à hystérésis, déclenchées dans le thread principal

Une pression qui oscille autour de sa limite ne doit pas déclencher cent alarmes par minute. Un seuil a une valeur, une direction et une bande d'hystérésis : il se déclenche une fois quand la valeur le franchit, et ne se réarme qu'après un retour de la valeur d'une largeur de bande. OnThreshold s'exécute toujours dans le thread principal, quel que soit le thread qui a écrit la valeur, tu peux donc allumer une LED ou afficher un message directement. Chaque seuil peut surveiller un pointeur différent, une jauge peut ainsi lever une alarme haute sur la valeur réelle et une alarme basse sur une seconde mesure.

  • Thresholds de TsgcGaugeThreshold avec Value, Hysteresis et Direction
  • gtdRising, gtdFalling ou gtdBoth
  • ValueColor change la couleur du texte de la valeur tant que le seuil est actif
  • La démo Gallery allume une LED d'alarme à 200 km/h
Lire la rubrique d'aide

Alarmes, mouvement et données en direct

Une animation d'aiguille fluide avec courbes d'accélération

Une aiguille qui saute paraît cassée, une aiguille qui glisse ressemble à un vrai instrument. Chaque nouvelle valeur s'anime depuis l'ancienne sur une durée de ton choix, avec l'une des cinq courbes d'accélération, un changement brusque est donc facile à suivre et un flux en direct ne scintille jamais. Désactive l'animation pour les bancs d'essai qui ont besoin de la valeur brute immédiatement. OnChange t'indique quand la valeur a changé, indépendamment de l'animation à l'écran.

  • Animation (TsgcGaugeAnimation) avec Enabled et Duration, 300 ms par défaut
  • Easing : geLinear, geQuadOut, geCubicOut, geCubicInOut, geBackOut
  • Fonctionne sur tous les types de jauges et dans toutes les éditions
  • IsAnimating indique si un pointeur est encore en mouvement
Lire la rubrique d'aide
Afficheurs industriels : segments, LED et annonciateurs

Alarmes, mouvement et données en direct

Afficheurs industriels : segments, LED et annonciateurs

Les pupitres de commande ont leur propre langage visuel. La jauge numérique dessine des chiffres à 7 segments, 14 segments ou matrice de points, avec segments fantômes et inclinaison en option. Les LED clignotent, la barre LED mémorise son pic, et l'annonciateur affiche un panneau de tuiles d'alarme qui clignotent jusqu'à l'acquittement par un opérateur. Chacun de ces afficheurs partage les mêmes échelles, seuils et thèmes que les autres jauges, les alarmes fonctionnent donc partout de la même façon.

  • TsgcVCLDigitalGauge : DisplayType, Digits, ShowGhost, Skew
  • TsgcVCLLEDGauge avec Blink et BlinkInterval ; TsgcVCLLEDBarGauge avec PeakHold
  • TsgcVCLAnnunciatorGauge : Tiles, FlashInterval, Acknowledge, AcknowledgeAll
  • La démo HMIPanel les combine avec des réservoirs, des pompes et des pressions

Community contient les chiffres à 7 segments, les LED et la barre LED. Les afficheurs à 14 segments et à matrice de points ainsi que l'annonciateur sont Enregistrée.

Lire la rubrique d'aide

Alarmes, mouvement et données en direct Enregistrée uniquement

Lie des topics MQTT directement aux pointeurs

Dans une console IoT, la plus grande partie du code est de la plomberie : s'abonner, analyser, trouver la jauge, définir la valeur. Le pont sgcGaugesWS la supprime. Une source de flux se branche sur un client sgcWebSockets, et chaque liaison associe un topic et un chemin JSON à un pointeur de jauge. Les filtres de topics MQTT avec + et # sont pris en charge, et un chemin de filtre sélectionne un appareil dans un flux partagé. Plusieurs liaisons peuvent partager une source, une seule connexion au broker pilote donc tout un panneau.

  • TsgcGaugeFeedSource_MQTT, TsgcGaugeFeedSource_WebSocket, TsgcGaugeFeedSource_SSE
  • Bindings de TsgcGaugeFeedBinding : Gauge, PointerIndex, Topic, ValuePath
  • FilterPath et FilterValue sélectionnent les messages
  • Événements OnValue et OnError sur la source

Le pont nécessite sgcWebSockets. En Community, définis Value depuis ton propre code ; c'est sûr depuis un thread d'arrière-plan.

Lire la rubrique d'aide

Sortie et aspect

La même jauge sur un serveur et dans n'importe quel thème.

Sortie et aspect

Des jauges en PNG ou SVG sans fenêtre

On veut aussi les jauges hors de l'écran : dans un rapport d'équipe, un e-mail d'état ou une page web servie par ton backend. Chaque modèle de jauge et chaque contrôle s'enregistre en PNG ou SVG sans fiche, un programme console, un service Windows ou un serveur Linux64 peut donc rendre l'instrument que voit l'opérateur. La largeur, la hauteur et l'échelle sont des paramètres, un appel produit donc une miniature pour une liste et un autre une image 2x nette pour un rapport.

  • SaveToPNG et SaveToSVG sur chaque modèle et chaque contrôle
  • Modèles indépendants du framework comme TsgcRadialGauge et TsgcLinearGauge
  • Linux64 sans interface à partir de Delphi 10.2 ; la démo Headless écrit du PNG et du SVG sous Win32, Win64 et Linux64
  • En .NET, la démo ConsoleRender fait de même
Lire la rubrique d'aide
Des thèmes pour les équipes de jour et de nuit

Sortie et aspect

Des thèmes pour les équipes de jour et de nuit

Une salle de contrôle atténue ses écrans la nuit, un bureau préfère un aspect lumineux. Une seule propriété fait passer une jauge du thème clair au thème sombre, et les couleurs du cadran, de l'échelle, des libellés et de la valeur suivent. Les jauges utilisent le même type de thème que tous les produits sgcUI, elles basculent donc en même temps que les tableaux de bord, graphiques et grilles. Les plages gardent leurs propres couleurs dans les deux thèmes, le vert signifie donc toujours normal la nuit. La propriété FormatSettings fixe le séparateur décimal de l'affichage indépendamment de la langue de l'utilisateur.

  • Theme := utDark ou utLight
  • FaceColor, BackgroundColor et les polices peuvent toujours être définis par jauge
  • Title, Units et ValueFormat pour l'affichage
  • OnFormatValue pour formater toi-même le texte de la valeur
  • De droite à gauche pour l'arabe et l'hébreu : les légendes et les textes d'unité suivent la direction, tandis que les cadrans, les horloges, les boussoles et les barres de progression gardent leur orientation
Lire la rubrique d'aide

Accessibilité

UI Automation pour les lecteurs d'écran et le contraste élevé, sans configuration.

Accessibilité

Des indicateurs qui exposent leurs valeurs à UI Automation

Chaque type d'indicateur expose sa légende, sa valeur et sa plage à Microsoft UI Automation, et les seuils sont signalés sous forme d'annonces. L'indicateur se décrit avec la même alternative textuelle que celle qu'il écrit dans un PDF accessible.

  • Un indicateur ne fait qu'afficher une valeur, il n'est donc pas un arrêt de tabulation par défaut, et il reste exposé à UI Automation
  • Mets TabStop à True lorsque les utilisateurs du clavier doivent pouvoir atteindre un indicateur
  • Les indicateurs numériques, LED, horloge et boussole exposent leur valeur sous forme de texte, les autres types sous forme de valeur de plage
  • Sous un thème à contraste élevé de Windows, les indicateurs se dessinent avec les couleurs du système

L'accessibilité est activée par défaut dans toutes les éditions, l'édition Community gratuite comprise, sur VCL dans toutes les versions de Delphi et C++Builder de Delphi 7 à Delphi 13, sur FireMonkey sous Windows, et sur WinForms, WPF et Avalonia. Dans Delphi et C++Builder, AccessibleName et AccessibleDescription définissent le nom et la description exposés à UI Automation, et en .NET le nom accessible et le texte d'aide standard de chaque framework font de même. Voir les rapports de conformité d'accessibilité.

Lire la rubrique d'aide

Découvre sgcGauges en action

sgcGauges dans les démos de la suite sgcUI : des applications complètes qui fonctionnent hors ligne avec des données simulées intégrées.

Qui construit avec sgcGauges

Écrans SCADA et IHM

Une IHM d'usine montre deux réservoirs avec jauges de niveau, des LED de pompes, des cadrans de pression avec bandes rouges et un panneau annonciateur pour les alarmes. Les seuils à hystérésis déclenchent chaque alarme une seule fois, l'annonciateur clignote jusqu'à l'acquittement par l'opérateur, et l'équipe de nuit passe au thème sombre.

  • Plages et seuils
  • Annonciateur
  • LED
  • Thème sombre
Lance la démo HMIPanel

Consoles IoT et de télémétrie

Une console de télémétrie s'abonne à un broker et affiche six mesures en direct d'appareils de terrain. Les liaisons associent chaque topic et champ JSON à un pointeur, les aiguilles glissent vers chaque nouvelle valeur, et aucun code de gestion des messages n'est écrit à la main. Les mêmes jauges se rendent en PNG pour l'e-mail d'état quotidien.

  • Liaisons MQTT
  • Animation
  • PNG sans interface
Lance la démo MQTTLive

Tableaux de bord KPI avec instruments

Un tableau de bord de direction place des jauges dans des tuiles à côté de cartes KPI et de graphiques : le taux d'utilisation en anneau de progression, le délai de livraison en graphique bullet face à son objectif, et le niveau de service en cadran à bandes colorées. Tout suit une seule propriété de thème et les jauges s'adaptent à la taille de leurs tuiles.

  • Anneau de progression
  • Graphique bullet
  • Tuiles sgcDashboard
Lance la démo Gallery

Un panneau de pression et de niveau en quelques lignes

La même API en Delphi, C++ Builder et C# : une jauge radiale de pression avec une bande rouge et un seuil d'alarme, une jauge de niveau bullet et une LED d'alarme clignotante.

Une jauge radiale de pression avec une bande rouge et un seuil d'alarme, une jauge de niveau bullet et une LED d'alarme clignotante sur une fiche VCL.

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;

Lire la rubrique d'aide →

Le même panneau en C++ Builder avec les en-têtes générés.

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

Lire la rubrique d'aide →

La version WinForms en C#, avec les mêmes noms de classes qu'en 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

Lire la rubrique d'aide →

Lance les démos de sgcGauges

Gallery, GalleryFMX, Headless, HMIPanel, DashboardGauges et MQTTLive pour Delphi et C++ Builder. Les démos .NET sont Gallery (WinForms), GalleryWpf, GalleryAvalonia, ConsoleRender, HMIPanel et MQTTLive.

HMIPanel

HMIPanel

Deux réservoirs avec pompes, niveaux, pressions et alarmes d'annonciateur, la disposition d'un écran de process typique.

DashboardGauges

Six jauges dans des tuiles sgcDashboard, qui suivent le thème du tableau de bord. Compile avec l'édition Community.

Headless

Un programme console qui écrit du PNG et du SVG sous Win32, Win64 et Linux64.

GalleryFMX

La galerie sous FireMonkey, pour Windows et Android.

Enregistrée uniquement MQTTLive

Six jauges alimentées par MQTT via le pont sgcGaugesWS. Nécessite sgcWebSockets et un broker.

Démos compilées

Des exécutables prêts à lancer pour chaque produit sgcUI, rien à installer.

Télécharger sgcUI_bin.zip →

Où sgcGauges est inclus

sgcGauges est inclus dans les éditions sgcUI Professional et Enterprise, et il est aussi vendu séparément. sgcGauges est aussi inclus dans le pack All-Access.

sgcGauges, package seul

€199 / développeur, code source complet, 1 an de mises à jour.

Acheter sgcGauges → Voir les tarifs →

sgcUI Professional

Standard plus sgcGauges, sgcCharts et sgcDashboard, à partir de €529.

Voir Professional →

sgcUI Enterprise

Les 14 produits sgcUI, à partir de €699.

Voir Enterprise →

L'édition Community gratuite (esegece.sgcGauges.Community sur NuGet) contient les jauges radiale, linéaire, numérique à 7 segments, LED, barre LED et anneau de progression, avec plages, seuils, animation, thèmes et sortie sans interface. Elle ne contient ni vumètre, ni horloge, ni boussole, ni annonciateur, ni échelles ou pointeurs supplémentaires, ni pont sgcGaugesWS.

FonctionnalitéCommunity (gratuite)Enregistrée
Radiale, linéaire, numérique à 7 segments, LED, barre LED et anneau de progression✓✓
Plages, seuils, animation et thèmes✓✓
Sortie PNG et SVG sans interface✓✓
Vumètre, horloge, boussole et annonciateur−✓
Plusieurs échelles et pointeurs par jauge−✓
Afficheurs à 14 segments et à matrice de points−✓
Pont sgcGaugesWS (MQTT, WebSocket, SSE)−✓

Frameworks et plateformes pris en charge

Composants de sgcGauges

Chaque jauge dispose d'un modèle indépendant du framework pour le rendu sans interface, d'un contrôle VCL (utilisé aussi depuis C++ Builder), d'un contrôle FireMonkey et de contrôles WinForms, WPF et Avalonia.

> > > > > > > > > > > > > > >
JaugeVCL et C++ Builder>FireMonkey>.NET
Radiale>TsgcVCLRadialGauge>TsgcFMXRadialGauge>TsgcWinFormsRadialGauge
Linéaire (barre, thermomètre, bullet)>TsgcVCLLinearGauge>TsgcFMXLinearGauge>TsgcWpfLinearGauge
Numérique (7 segments, 14 segments, matrice de points)>TsgcVCLDigitalGauge>TsgcFMXDigitalGauge>TsgcWinFormsDigitalGauge
>LED>TsgcVCLLEDGauge>TsgcFMXLEDGauge>TsgcWinFormsLEDGauge
Barre LED>TsgcVCLLEDBarGauge>TsgcFMXLEDBarGauge>TsgcWinFormsLEDBarGauge
Anneau de progression>TsgcVCLProgressRingGauge>TsgcFMXProgressRingGauge>TsgcWinFormsProgressRingGauge
Vumètre>TsgcVCLVUMeterGauge>TsgcFMXVUMeterGauge>TsgcWinFormsVUMeterGauge
Horloge>TsgcVCLClockGauge>TsgcFMXClockGauge>TsgcWinFormsClockGauge
Boussole>TsgcVCLCompassGauge>TsgcFMXCompassGauge>TsgcWpfCompassGauge
Annonciateur>TsgcVCLAnnunciatorGauge>TsgcFMXAnnunciatorGauge>TsgcAvaloniaAnnunciatorGauge
>
>

La colonne .NET montre un exemple par jauge, chaque jauge existe en TsgcWinForms, TsgcWpf et TsgcAvalonia. Toutes les jauges partagent la classe de base TsgcCustomGauge avec les collections Scales, Pointers, Thresholds et Ranges. Les modèles indépendants du framework (TsgcRadialGauge, TsgcLinearGauge et ainsi de suite) se rendent sans fenêtre.

> > > > > > > > > >
CibleComposantPlateformes
Delphi 7 à 13, VCLJauges TsgcVCLWin32, et Win64 à partir de XE2
Delphi XE6 à 13, FireMonkeyJauges TsgcFMXWindows, macOS, iOS et Android
C++ Builder 2007 à 13Jauges TsgcVCLEn-têtes .hpp générés et bibliothèques statiques
Delphi 10.2 à 13, indépendant du frameworkModèles de jauges et sortie PNG et SVG sans interfaceLinux64 (pas de contrôles Linux)
.NET Framework 4.7.2, .NET 8, 9 et 10Jauges WinForms, WPF et AvaloniaBureau Windows, cibles Avalonia, rendu sans interface
>

Foire aux questions

Oui. Définis Value depuis le thread qui reçoit les données. Les seuils sont évalués pour toi et OnThreshold se déclenche toujours dans le thread principal, un gestionnaire peut donc mettre à jour les contrôles sans synchronisation supplémentaire. Le pont sgcGaugesWS fait de même quand il alimente les pointeurs depuis MQTT, WebSocket ou SSE.

Les jauges radiale, linéaire, numérique à 7 segments, LED, barre LED et anneau de progression, avec plages, seuils, animation, thèmes et sortie sans interface. Le vumètre, l'horloge, la boussole, l'annonciateur, les échelles et pointeurs supplémentaires, les chiffres à 14 segments et à matrice de points et le pont sont Enregistrée. Voir Éditions.

Oui, avec l'édition Enregistrée et sgcWebSockets. Dépose un TsgcGaugeFeedSource_MQTT, relie ton client MQTT et ajoute une liaison par jauge avec le Topic et le ValuePath JSON. Les filtres de topics avec + et # fonctionnent, et FilterPath sélectionne un appareil dans un topic partagé.

Les contrôles FireMonkey fonctionnent à partir de Delphi XE6, et la démo GalleryFMX tourne sous Windows et Android. Sous Linux64, sgcGauges est uniquement sans interface : les modèles compilent et rendent du PNG et du SVG à partir de Delphi 10.2, mais il n'y a pas de contrôles Linux.

Oui. Chaque échelle a ses propres Minimum, Maximum, MajorInterval et graduations secondaires, et un nombre quelconque de plages colorées avec début, fin, couleur, épaisseur et légende. Une jauge radiale te permet aussi de choisir l'angle de départ et l'angle de balayage de l'arc.

Oui. SaveToPNG et SaveToSVG fonctionnent sur chaque contrôle et chaque modèle, sans fenêtre, un service ou un serveur Linux64 peut donc placer les mesures actuelles dans un PDF ou un e-mail. La démo Gallery exporte aussi du PNG en 2x.

La jauge numérique se dimensionne d'après l'échelle : avec Digits à 0, elle réserve autant de chiffres que le maximum de l'échelle en demande, et l'échelle par défaut va de 0 à 100. Définis Scales[0].Maximum à la plus grande valeur attendue, ou définis Digits explicitement.

Aide de sgcGauges

3,000+Développeurs
20+Ans
761+Composants
30+Intégrations d'API
5Plateformes
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

Essaie sgcGauges dès aujourd'hui

L'essai sgcUI inclut sgcGauges et tous les autres produits sgcUI.