Delphi, C++ Builder & .NET Onderdeel van sgcUI

sgcGauges, het instrumentenpaneel voor Delphi, C++ Builder & .NET

Tien metertypen voor dashboards en HMI-panelen, van een radiale wijzerplaat tot een annunciator. Teken groene, oranje en rode banden, geef een alarm wanneer een waarde een grens overschrijdt, laat de naald soepel naar elke nieuwe meting glijden en render dezelfde meter naar PNG of SVG op een server.

VCL, FireMonkey, WinForms, WPF, AvaloniaTien metertypen, zes in CommunityPNG en SVG zonder vensterInbegrepen in sgcUI Professional
HMIPanel-demo met tanks, pompen, LED-balken en een annunciator

Alles wat een instrumentenpaneel nodig heeft

Elf mogelijkheden in vier groepen, met de echte klasse- en eigenschapsnamen en een link naar elk helponderwerp. Functies met het label Geregistreerd zitten niet in de gratis .NET Community-build.

Instrumenten en schalen

Tien typen op één model, met bereiken, stijlen en meerdere wijzers.

sgcGauges-galerij met radiale, ring-, kompas-, klok-, VU-meter-, lineaire, digitale en LED-meters

Instrumenten en schalen

Tien instrumenttypen in één bibliotheek

Dashboards, HMI-panelen en testbanken hebben verschillende instrumenten nodig: een wijzerplaat voor snelheid, een balk voor niveau, een digitale uitlezing voor frequentie, een lampje voor een pomp, een tegelpaneel voor alarmen. sgcGauges levert tien typen die één model delen, met dezelfde schalen, wijzers, bereiken, drempels en thema's. Leer één API en elk instrument gedraagt zich hetzelfde.

  • TsgcVCLRadialGauge, TsgcVCLLinearGauge, TsgcVCLDigitalGauge, TsgcVCLLEDGauge, TsgcVCLLEDBarGauge, TsgcVCLProgressRingGauge
  • TsgcVCLVUMeterGauge, TsgcVCLClockGauge, TsgcVCLCompassGauge, TsgcVCLAnnunciatorGauge
  • Elk type bestaat ook voor FireMonkey en, in .NET, voor WinForms, WPF en Avalonia
  • Een frameworkneutraal model per type, zoals TsgcRadialGauge, voor headless gebruik

Community heeft de radiale, lineaire, digitale 7-segment-, LED-, LED-balk- en voortgangsringmeters. De VU-meter, klok, kompas en annunciator zijn geregistreerd.

Het helponderwerp lezen
Snelheidsmeter van 0 tot 260 km/u met groene, oranje en rode bereiken

Instrumenten en schalen

Gekleurde bereiken op elke schaal

Een operator leest een meter in één oogopslag alleen als groen, oranje en rood aangeven waar de waarde hoort te zijn. Geef een schaal elk minimum en maximum, stel het hoofdinterval en de kleine streepjes in en voeg gekleurde bereiken toe voor de banden die ertoe doen. Bereiken hebben hun eigen dikte en bijschrift en de schaal kan omgekeerd lopen of zijn streepjes binnen of buiten plaatsen. Bereiken worden op de schaal zelf getekend, dus ze verschijnen ook in PNG- en SVG-uitvoer en in beide thema's zonder extra werk.

  • Scales[0].Ranges.Add met StartValue, EndValue, Color, Thickness en Caption
  • TsgcGaugeScale: Minimum, Maximum, MajorInterval, MinorCount, Reversed
  • LabelFormat en ShowLabels voor de schaallabels
  • StartAngle en SweepAngle bepalen de boog van een radiale meter
Het helponderwerp lezen
Drie verticale lineaire meters: bullet graph, thermometer en balk

Instrumenten en schalen

Bullet graph, thermometer en balk in één besturingselement

Niveaus, temperaturen en voortgang ten opzichte van een doel zijn van nature lineair. Eén lineaire meter tekent drie stijlen: een gewone balk, een thermometer met een bol en een bullet graph die de waarde vergelijkt met een doelmarkering. Zet hem horizontaal of verticaal om bij een tank, een zijbalk of een tabelrij te passen. Het bullet-doel is een eigenschap, geen extra wijzer, dus de bullet graph werkt ook in de gratis Community-editie. Een kleine meter past in een gridcel of een dashboardtegel.

  • LinearStyle: glsBar, glsThermometer of glsBullet
  • Target tekent de bullet-doelmarkering, in elke editie
  • Orientation en BulbSize
  • Bereiken en drempels werken precies zoals bij de radiale meter
Het helponderwerp lezen
Radiale meter met een naald voor de werkelijke waarde en een markering voor het doel

Instrumenten en schalen Alleen geregistreerd

Meerdere schalen en wijzers op één meter

Sommige metingen hebben alleen naast elkaar betekenis: werkelijk tegenover doel, inlaat tegenover uitlaat, uren en minuten. Een meter kan meer dan één schaal en meer dan één wijzer hebben en elke wijzer kiest zijn schaal en stijl: een naald, een markering of een balk. Drempels kunnen elke wijzer bewaken. Een wijzerplaat met dubbele wijzer bespaart ruimte op drukke panelen en maakt het verschil tussen doel en werkelijk in één keer zichtbaar.

  • Pointers-collectie van TsgcGaugePointer met Kind, NeedleStyle, MarkerShape en ScaleIndex
  • Scales-collectie met Radius en Offset per schaal
  • PointerIndex op drempels en feedkoppelingen
  • Formulieren met meerdere wijzers laden nog steeds in Community, dat alleen de eerste tekent

Community tekent één schaal en één wijzer per meter; de geregistreerde editie tekent ze allemaal.

Het helponderwerp lezen

Alarmen, beweging en live gegevens

Meters die reageren: drempels, animatie, industriële displays en live feeds.

Alarmen, beweging en live gegevens

Alarmen met hysterese, afgegeven in de hoofdthread

Een druk die rond zijn grens schommelt, mag geen honderd alarmen per minuut afgeven. Een drempel heeft een waarde, een richting en een hysteresebandbreedte: hij wordt één keer geactiveerd wanneer de waarde de grens overschrijdt en wordt pas opnieuw gewapend nadat de waarde met de bandbreedte is teruggekeerd. OnThreshold draait altijd in de hoofdthread, welke thread de waarde ook schreef, dus je kunt rechtstreeks een LED laten branden of een bericht tonen. Elke drempel kan een andere wijzer bewaken, zodat één meter een hoog alarm op de werkelijke waarde en een laag alarm op een tweede meting kan geven.

  • Thresholds van TsgcGaugeThreshold met Value, Hysteresis en Direction
  • gtdRising, gtdFalling of gtdBoth
  • ValueColor kleurt de waardetekst opnieuw zolang de drempel actief is
  • De Gallery-demo laat bij 200 km/u een alarm-LED branden
Het helponderwerp lezen

Alarmen, beweging en live gegevens

Soepele naaldanimatie met easing

Een naald die springt, ziet er kapot uit, een naald die glijdt ziet eruit als een instrument. Elke nieuwe waarde animeert vanaf de oude gedurende een duur die je kiest, met een van vijf versnellingscurves, zodat een plotselinge verandering makkelijk te volgen is en een live feed nooit flikkert. Zet animatie uit voor testbanken die de ruwe waarde meteen nodig hebben. OnChange meldt wanneer de waarde is veranderd, onafhankelijk van de animatie op het scherm.

  • Animation (TsgcGaugeAnimation) met Enabled en Duration, standaard 300 ms
  • Easing: geLinear, geQuadOut, geCubicOut, geCubicInOut, geBackOut
  • Werkt op elk metertype en in elke editie
  • IsAnimating geeft aan of een wijzer nog beweegt
Het helponderwerp lezen
Industriële displays: segmenten, LED's en annunciators

Alarmen, beweging en live gegevens

Industriële displays: segmenten, LED's en annunciators

Bedieningspanelen hebben hun eigen visuele taal. De digitale meter tekent cijfers in 7-segment, 14-segment of puntmatrix met optionele spooksegmenten en schuine stand. LED's knipperen, de LED-balk houdt zijn piek vast en de annunciator toont een paneel met alarmtegels die knipperen totdat een operator ze bevestigt. Elk van deze displays heeft dezelfde schalen, drempels en thema's als de andere meters, zodat alarmen overal hetzelfde werken.

  • TsgcVCLDigitalGauge: DisplayType, Digits, ShowGhost, Skew
  • TsgcVCLLEDGauge met Blink en BlinkInterval; TsgcVCLLEDBarGauge met PeakHold
  • TsgcVCLAnnunciatorGauge: Tiles, FlashInterval, Acknowledge, AcknowledgeAll
  • De HMIPanel-demo combineert ze met tanks, pompen en drukken

Community heeft 7-segmentcijfers, LED's en de LED-balk. De 14-segment- en puntmatrixdisplays en de annunciator zijn geregistreerd.

Het helponderwerp lezen

Alarmen, beweging en live gegevens Alleen geregistreerd

Koppel MQTT-topics rechtstreeks aan wijzers

In een IoT-console bestaat het grootste deel van de code uit loodgieterswerk: abonneren, parsen, de meter zoeken, de waarde instellen. De sgcGaugesWS-bridge neemt dat weg. Een feedbron hecht zich aan een sgcWebSockets-client en elke koppeling wijst een topic en een JSON-pad toe aan een meterwijzer. MQTT-topicfilters met + en # worden ondersteund en een filterpad kiest één apparaat uit een gedeelde stream. Meerdere koppelingen kunnen één bron delen, zodat één brokerverbinding een heel paneel aanstuurt.

  • TsgcGaugeFeedSource_MQTT, TsgcGaugeFeedSource_WebSocket, TsgcGaugeFeedSource_SSE
  • Bindings van TsgcGaugeFeedBinding: Gauge, PointerIndex, Topic, ValuePath
  • FilterPath en FilterValue selecteren berichten
  • De gebeurtenissen OnValue en OnError op de bron

De bridge vereist sgcWebSockets. Stel in Community Value in vanuit je eigen code; dat is veilig vanuit een achtergrondthread.

Het helponderwerp lezen

Uitvoer en uiterlijk

Dezelfde meter op een server en in elk thema.

Uitvoer en uiterlijk

Meters als PNG of SVG zonder venster

Meters zijn ook buiten het scherm nodig: in een ploegenrapport, een statusmail of een webpagina die je backend levert. Elk metermodel en elk besturingselement slaat zichzelf op als PNG of SVG zonder formulier, zodat een consoleprogramma, een Windows-service of een Linux64-server hetzelfde instrument kan renderen dat de operator ziet. Breedte, hoogte en schaal zijn parameters, dus één aanroep levert een miniatuur voor een lijst en een andere een scherpe 2x-afbeelding voor een rapport.

  • SaveToPNG en SaveToSVG op elk model en besturingselement
  • Frameworkneutrale modellen zoals TsgcRadialGauge en TsgcLinearGauge
  • Linux64 headless vanaf Delphi 10.2; de Headless-demo schrijft PNG en SVG op Win32, Win64 en Linux64
  • In .NET doet de ConsoleRender-demo hetzelfde
Het helponderwerp lezen
Thema's voor dag- en nachtploegen

Uitvoer en uiterlijk

Thema's voor dag- en nachtploegen

Een controlekamer dimt 's nachts zijn schermen, een kantoor geeft de voorkeur aan een helder uiterlijk. Eén eigenschap schakelt een meter tussen het lichte en het donkere thema en de kleuren van wijzerplaat, schaal, labels en waarde volgen. Meters gebruiken hetzelfde thematype als elk sgcUI-product, dus ze schakelen samen met dashboards, grafieken en grids. Bereiken behouden in beide thema's hun eigen kleuren, zodat groen 's nachts nog steeds normaal betekent. De eigenschap FormatSettings legt het decimaalteken van de uitlezing vast, onafhankelijk van de landinstelling van de gebruiker.

  • Theme := utDark of utLight
  • FaceColor, BackgroundColor en lettertypen kun je nog steeds per meter instellen
  • Title, Units en ValueFormat voor de uitlezing
  • OnFormatValue om de waardetekst zelf te formatteren
  • Rechts naar links voor Arabisch en Hebreeuws: bijschriften en eenheidsteksten volgen de richting, terwijl wijzerplaten, klokken, kompassen en voortgangsbalken hun oriëntatie behouden
Het helponderwerp lezen

Toegankelijkheid

UI Automation voor schermlezers en hoog contrast, zonder configuratie.

Toegankelijkheid

Meters die hun waarden aan UI Automation aanbieden

Elk metertype biedt zijn bijschrift, zijn waarde en zijn bereik aan Microsoft UI Automation aan, en de drempels worden als meldingen doorgegeven. De meter beschrijft zichzelf met hetzelfde tekstalternatief dat hij in een toegankelijke PDF schrijft.

  • Een meter toont alleen een waarde, dus hij is standaard geen tabstop, en wordt toch aan UI Automation aangeboden
  • Zet TabStop op True wanneer toetsenbordgebruikers op een meter moeten kunnen landen
  • Digitale, LED-, klok- en kompasmeters bieden hun waarde aan als tekst, de andere soorten als bereikwaarde
  • Onder een Windows-thema met hoog contrast tekenen de meters met de systeemkleuren

Toegankelijkheid staat standaard aan in elke editie, ook in de gratis Community-editie, op VCL in elke Delphi- en C++Builder-versie van Delphi 7 tot en met Delphi 13, op FireMonkey op Windows, en op WinForms, WPF en Avalonia. In Delphi en C++Builder stellen AccessibleName en AccessibleDescription de naam en de beschrijving in die aan UI Automation worden aangeboden, en in .NET doen de standaard toegankelijke naam en helptekst van elk framework hetzelfde. Zie de toegankelijkheidsrapporten.

Het helponderwerp lezen

Zie sgcGauges in actie

sgcGauges in de sgcUI suite-demo's: complete applicaties die offline draaien met ingebouwde gesimuleerde gegevens.

Wie bouwt er met sgcGauges

SCADA- en HMI-schermen

Een fabrieks-HMI toont twee tanks met niveaumeters, pomp-LED's, drukmeters met rode banden en een annunciatorpaneel voor alarmen. Drempels met hysterese geven elk alarm één keer af, de annunciator knippert totdat de operator hem bevestigt en de nachtploeg schakelt over op het donkere thema.

  • Bereiken en drempels
  • Annunciator
  • LED's
  • Donker thema
Start de HMIPanel-demo

IoT- en telemetrieconsoles

Een telemetrieconsole abonneert zich op een broker en toont zes live metingen van veldapparaten. Koppelingen wijzen elk topic en elk JSON-veld toe aan een wijzer, de naalden glijden naar elke nieuwe waarde en er wordt geen berichtafhandelingscode met de hand geschreven. Dezelfde meters renderen als PNG voor de dagelijkse statusmail.

  • MQTT-koppelingen
  • Animatie
  • Headless PNG
Start de MQTTLive-demo

KPI-dashboards met instrumenten

Een managementdashboard zet meters in tegels naast KPI-kaarten en grafieken: bezetting als voortgangsring, levertijd als bullet graph tegenover het doel en serviceniveau als wijzerplaat met gekleurde banden. Alles volgt één themaeigenschap en de meters passen zich aan hun tegels aan.

  • Voortgangsring
  • Bullet graph
  • sgcDashboard-tegels
Start de Gallery-demo

Een druk- en niveaupaneel in een paar regels

Dezelfde API in Delphi, C++ Builder en C#: een radiale drukmeter met een rode band en een alarmdrempel, een bullet-niveaumeter en een knipperende alarm-LED.

Een radiale drukmeter met een rode band en een alarmdrempel, een bullet-niveaumeter en een knipperende alarm-LED op een VCL-formulier.

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;

Het helponderwerp lezen →

Hetzelfde paneel in C++ Builder met de gegenereerde 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;
}

Het helponderwerp lezen →

De WinForms-versie in C#, met dezelfde klassenamen als 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

Het helponderwerp lezen →

Probeer de sgcGauges-demo's uit

Gallery, GalleryFMX, Headless, HMIPanel, DashboardGauges en MQTTLive voor Delphi en C++ Builder. De .NET-demo's zijn Gallery (WinForms), GalleryWpf, GalleryAvalonia, ConsoleRender, HMIPanel en MQTTLive.

HMIPanel

HMIPanel

Twee tanks met pompen, niveaus, drukken en annunciatoralarmen, de indeling van een typisch processcherm.

DashboardGauges

Zes meters in sgcDashboard-tegels, die het dashboardthema volgen. Bouwt met de Community-editie.

Headless

Een consoleprogramma dat PNG en SVG schrijft op Win32, Win64 en Linux64.

GalleryFMX

De galerij op FireMonkey, voor Windows en Android.

Alleen geregistreerd MQTTLive

Zes meters gevoed door MQTT via de sgcGaugesWS-bridge. Vereist sgcWebSockets en een broker.

Gecompileerde demo's

Direct uitvoerbare programma's van elk sgcUI-product, zonder installatie.

sgcUI_bin.zip downloaden →

Waar sgcGauges in zit

sgcGauges zit in de sgcUI Professional- en Enterprise-edities en wordt ook los verkocht. sgcGauges is ook opgenomen in de All-Access-bundel.

sgcGauges los pakket

€199 / ontwikkelaar, volledige broncode, 1 jaar updates.

sgcGauges kopen → Prijzen bekijken →

sgcUI Professional

Standard plus sgcGauges, sgcCharts en sgcDashboard, vanaf €529.

Professional bekijken →

sgcUI Enterprise

Alle 14 sgcUI-producten, vanaf €699.

Enterprise bekijken →

De gratis Community-editie (esegece.sgcGauges.Community op NuGet) heeft radiale, lineaire, digitale 7-segment-, LED-, LED-balk- en voortgangsringmeters met bereiken, drempels, animatie, thema's en headless uitvoer. Er is geen VU-meter, klok, kompas of annunciator, geen extra schalen of wijzers en geen sgcGaugesWS-bridge.

FunctieCommunity (gratis)Geregistreerd
Radiaal, lineair, digitaal 7-segment, LED, LED-balk en voortgangsring✓✓
Bereiken, drempels, animatie en thema's✓✓
Headless PNG- en SVG-uitvoer✓✓
VU-meter, klok, kompas en annunciator−✓
Meerdere schalen en wijzers per meter−✓
14-segment- en puntmatrixdisplays−✓
sgcGaugesWS-bridge (MQTT, WebSocket, SSE)−✓

Ondersteunde frameworks en platformen

Componenten in sgcGauges

Elke meter heeft een frameworkneutraal model voor headless rendering, een VCL-besturingselement (ook te gebruiken vanuit C++ Builder), een FireMonkey-besturingselement en WinForms-, WPF- en Avalonia-besturingselementen.

MeterVCL en C++ BuilderFireMonkey.NET
RadiaalTsgcVCLRadialGaugeTsgcFMXRadialGaugeTsgcWinFormsRadialGauge
Lineair (balk, thermometer, bullet)TsgcVCLLinearGaugeTsgcFMXLinearGaugeTsgcWpfLinearGauge
Digitaal (7-segment, 14-segment, puntmatrix)TsgcVCLDigitalGaugeTsgcFMXDigitalGaugeTsgcWinFormsDigitalGauge
LEDTsgcVCLLEDGaugeTsgcFMXLEDGaugeTsgcWinFormsLEDGauge
LED-balkTsgcVCLLEDBarGaugeTsgcFMXLEDBarGaugeTsgcWinFormsLEDBarGauge
VoortgangsringTsgcVCLProgressRingGaugeTsgcFMXProgressRingGaugeTsgcWinFormsProgressRingGauge
VU-meterTsgcVCLVUMeterGaugeTsgcFMXVUMeterGaugeTsgcWinFormsVUMeterGauge
KlokTsgcVCLClockGaugeTsgcFMXClockGaugeTsgcWinFormsClockGauge
KompasTsgcVCLCompassGaugeTsgcFMXCompassGaugeTsgcWpfCompassGauge
AnnunciatorTsgcVCLAnnunciatorGaugeTsgcFMXAnnunciatorGaugeTsgcAvaloniaAnnunciatorGauge

De .NET-kolom toont één voorbeeld per meter, elke meter bestaat als TsgcWinForms, TsgcWpf en TsgcAvalonia. Alle meters delen de basisklasse TsgcCustomGauge met de collecties Scales, Pointers, Thresholds en Ranges. De frameworkneutrale modellen (TsgcRadialGauge, TsgcLinearGauge enzovoort) renderen zonder venster.

DoelComponentPlatformen
Delphi 7 tot 13, VCLTsgcVCL-metersWin32, en Win64 vanaf XE2
Delphi XE6 tot 13, FireMonkeyTsgcFMX-metersWindows, macOS, iOS en Android
C++ Builder 2007 tot 13TsgcVCL-metersGegenereerde .hpp-headers en statische bibliotheken
Delphi 10.2 tot 13, frameworkneutraalMetermodellen en headless PNG- en SVG-uitvoerLinux64 (geen Linux-besturingselementen)
.NET Framework 4.7.2, .NET 8, 9 en 10WinForms-, WPF- en Avalonia-metersWindows-desktop, Avalonia-doelen, headless rendering

Veelgestelde vragen

Ja. Stel Value in vanuit de thread die de gegevens ontvangt. Drempels worden voor je geëvalueerd en OnThreshold wordt altijd in de hoofdthread aangeroepen, zodat een handler besturingselementen kan bijwerken zonder extra synchronisatie. De sgcGaugesWS-bridge doet hetzelfde wanneer hij wijzers voedt vanuit MQTT, WebSocket of SSE.

De radiale, lineaire, digitale 7-segment-, LED-, LED-balk- en voortgangsringmeters, met bereiken, drempels, animatie, thema's en headless uitvoer. De VU-meter, klok, kompas, annunciator, extra schalen en wijzers, 14-segment- en puntmatrixcijfers en de bridge zijn geregistreerd. Zie Edities.

Ja, met de geregistreerde editie en sgcWebSockets. Zet een TsgcGaugeFeedSource_MQTT neer, koppel je MQTT-client en voeg per meter een koppeling toe met het Topic en het JSON-ValuePath. Topicfilters met + en # werken en FilterPath kiest één apparaat uit een gedeeld topic.

De FireMonkey-besturingselementen werken vanaf Delphi XE6 en de GalleryFMX-demo draait op Windows en Android. Op Linux64 is sgcGauges alleen headless: de modellen compileren en renderen PNG en SVG vanaf Delphi 10.2, maar er zijn geen Linux-besturingselementen.

Ja. Elke schaal heeft zijn eigen Minimum, Maximum, MajorInterval en kleine streepjes, en een willekeurig aantal gekleurde bereiken met begin, einde, kleur, dikte en bijschrift. Bij een radiale meter kun je ook de start- en veeghoek van de boog kiezen.

Ja. SaveToPNG en SaveToSVG werken op elk besturingselement en elk model, zonder venster, zodat een service of een Linux64-server de actuele metingen in een PDF of een e-mail kan zetten. De Gallery-demo exporteert ook PNG op 2x.

De digitale meter bepaalt zijn grootte uit de schaal: met Digits op 0 reserveert hij zoveel cijfers als het schaalmaximum nodig heeft en de standaardschaal loopt van 0 tot 100. Stel Scales[0].Maximum in op de grootste waarde die je verwacht, of stel Digits expliciet in.

sgcGauges help

3,000+Ontwikkelaars
20+Jaar
761+Componenten
30+API-integraties
5Platformen
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid

Probeer sgcGauges vandaag

De sgcUI-proefversie bevat sgcGauges en elk ander sgcUI-product.