sgcUI op Linux64 met FMXLinux: grids, grafieken, metingen en complete applicaties voor het Linux-bureaublad

· Componenten
sgcUI op Linux64 met FMXLinux: grids, grafieken, metingen en complete applicaties voor het Linux-bureaublad
>_ Nieuw · sgcUI op Linux64

Je Delphi-desktopapplicatie.
Nu op Linux.

Met FMXLinux geïnstalleerd draaien de sgcUI FireMonkey-besturingselementen in echte desktopapplicaties op Linux64. Dezelfde formulieren en dezelfde code die je op Windows en macOS uitlevert, met dezelfde uitstraling.

  • Delphi
  • FireMonkey
  • FMXLinux
  • Linux64
  • Ubuntu 22.04 of nieuwer
Een met sgcUI gebouwde tradingapplicatie op een Linux-bureaublad: watchlist-grid, candlestick-grafiek, sector-treemap en metingen in een donker thema
274Linux64-demo's
17UI-producten
5FireMonkey-platforms
1codebase

Linux was voor Delphi-desktopontwikkelaars altijd het lastige platform. De compiler ondersteunt Linux64, maar een visuele applicatie heeft FireMonkey nodig, en FireMonkey op Linux heeft de FMXLinux add-on nodig. Tot nu toe bood sgcUI Linux64 alleen aan voor de niet-visuele onderdelen: datamodellen, import en export, en headless rendering naar PNG en SVG.

Dat verandert vandaag. Met FMXLinux geïnstalleerd in de IDE compileren en draaien de sgcUI FireMonkey-besturingselementen op Linux64: de datagrid, de grafieken, de metingen, de dashboards, de planner, de kaarten, de diagrammen en de rest van de suite. Elke schermafbeelding in dit artikel is gemaakt op Ubuntu, uit dezelfde demoprojecten die op Windows en macOS draaien.

sgcUI op Linux64 in één minuut, opgenomen met de echte demo's op Ubuntu. Ook op YouTube.

Complete applicaties, niet alleen besturingselementen

De beste manier om een UI-suite te beoordelen is naar complete applicaties kijken. De sgcUI Suite-demo's zijn precies dat: elke demo combineert een dozijn producten in één programma met navigatie, live data en meerdere pagina's. Ze draaien nu allemaal ongewijzigd op Linux64.

Een tradingdesk

De Markets-demo wordt gevoed door een simulator die ongeveer 1.000 updates per seconde verstuurt. De watchlist-grid flitst rood en groen als de koersen bewegen, de candlestick-grafiek toont Bollinger-banden, voortschrijdende gemiddelden, volume en RSI-vensters, en een sector-treemap laat zien waar de markt naartoe gaat.

Candlestick-analysegrafiek met indicatoren op Linux
Analysegrafiek met indicatoren
Markt-heatmap per sector op Linux
Markt-heatmap per sector

Een controlekamer voor een fabriek

De Factory-demo is een HMI voor een bottelarij. Hij toont OEE-kaarten, een flessenteller met zeven segmenten, de procesflow van de lijn met geanimeerde verbindingen, een alarmpaneel, radiale en lineaire metingen en een live trend van twaalf sensoren met alarmgrenzen.

Factory-HMI op Linux: OEE-kaarten, flessenteller, procesflowdiagram, alarmpaneel en metingen in een donker thema
Het lijnoverzicht van de Factory-demo op Ubuntu: procesdiagram, alarmen, metingen en tellers.
Detailpagina van een machine met drie grote metingen voor een pomp
Machinedetail met live metingen
Kaart van de fabrieken met productie- en energiecijfers
Fabrieken op de kaart

Fleet, ERP en Project Portfolio

De Fleet-demo volgt 48 voertuigen op een kaart van Spanje en Portugal, met routes, stops, een voertuiggrid en een lijst met meldingen. De ERP-demo opent met een dashboard met KPI-kaarten, grafieken, een meting en een klantenkaart, en gaat verder met pagina's voor klanten, planning, rapporten en analyses. De Portfolio-demo plant 12 projecten en 520 taken in een Gantt-diagram met het kritieke pad.

Wagenparkapplicatie op Linux: KPI-kaarten, een kaart met voertuigen en routes, een voertuiggrid en meldingen
Live wagenparkbeheer: KPI-kaarten, de kaart met voertuigen en routes, en twee grids.
ERP-dashboard met KPI-kaarten, grafieken, een meting en een kaart
ERP-dashboard
Weekkalender met leveringen, gekleurd per chauffeur
Planningskalender voor leveringen
Projectportfolio-overzicht met metingen, een bellendiagram, een kaart en een treemap
Portfolio-overzicht
Portfolio-Gantt-diagram met het kritieke pad
Portfolio-Gantt met kritiek pad
Hubnetwerk getekend als diagram met gekleurde banen
Hubnetwerkdiagram
Organigram gekoppeld aan een dataset
Organigram uit een dataset

Wat sgcUI naar het Linux-bureaublad brengt

sgcUI is een suite van native UI-producten die één kern, één thema-engine en één manier van werken delen. Op Linux64 zijn de FireMonkey-besturingselementen van de hele suite beschikbaar:

sgcCharts op Linux: bereikgebied, lijn en balken met een doelband
sgcCharts
sgcGauges-galerij op Linux: radiale, ring-, kompas-, klok-, digitale en LED-metingen
sgcGauges
sgcPlanner-Gantt op Linux met koppelingen, basislijn en kritiek pad
sgcPlanner Gantt
sgcPivotGrid op Linux met heatmap-cellen en een veldenlijst
sgcPivotGrid
sgcMaps op Linux met een lagenpaneel, zoomknoppen en een schaalbalk
sgcMaps
Treemap- en trechtergrafieken op Linux
Treemap en trechter

De grid verdient een eigen afbeelding. Dit is de FilterAndFind-demo met 100.000 rijen op Ubuntu, met filterknoppen in de koppen, een filterrij en het vak “Vraag het aan de grid”. Het muiswiel scrolt soepel en Ctrl+End springt direct naar rij 100.000.

sgcGrid met 100.000 rijen op Linux, met koptekstfilters en een filterrij
sgcGrid met 100.000 rijen op Ubuntu.

Wat je nodig hebt

sgcUI op Linux64 is getest met Delphi 13 en FMXLinux 1.84 op Ubuntu 22.04 en Ubuntu 24.04.

Bouw je eerste Linux64-applicatie

1Installeer FMXLinuxVia GetIt, in de IDE
2Verbind met LinuxPAServer en de Linux SDK
3Voeg het platform toeLinux 64-bit in je FireMonkey-project
4UitvoerenHetzelfde formulier, op het Linux-bureaublad
  1. Installeer FMXLinux via GetIt en herstart de IDE.
  2. Start PAServer op de Linux-machine, maak een verbindingsprofiel in de IDE en importeer de Linux SDK, zoals bij elk Delphi Linux64-project.
  3. Voeg de sgcUI-map Source toe aan het bibliotheekpad voor Linux 64-bit (Tools, Options, Language, Delphi, Library), zodat de compiler de sgcUI-units voor dat platform vindt.
  4. Open of maak een FireMonkey-applicatie, voeg het doelplatform Linux 64-bit toe in het venster Projects en selecteer het.
  5. Plaats de sgcUI-besturingselementen op het formulier en voer uit. De IDE compileert het project, deployt het via PAServer en start het op het Linux-bureaublad.

Er is geen Linux-specifieke code te schrijven. Dit is de volledige broncode van de Hello Grid-quickstart, een formulier met één TsgcFMXGrid waarvan de drie kolommen in de designer zijn gedefinieerd:

uses
  System.SysUtils, System.Classes, FMX.Types, FMX.Controls, FMX.Forms,
  // sgc
  sgcGrid_Data, sgcGrid_FMX;

procedure TfrmHelloGrid.FormCreate(Sender: TObject);
begin
  { BeginUpdate / EndUpdate repaint the grid once, after the last row }
  Grid.Data.BeginUpdate;
  try
    { AppendRow(Key, [City, Country, Population]) }
    Grid.Data.AppendRow('Madrid', ['Madrid', 'Spain', 3416771]);
    Grid.Data.AppendRow('Paris', ['Paris', 'France', 2102650]);
    Grid.Data.AppendRow('Berlin', ['Berlin', 'Germany', 3755251]);
    Grid.Data.AppendRow('Rome', ['Rome', 'Italy', 2749031]);
  finally
    Grid.Data.EndUpdate;
  end;
end;

Een grafiek werkt op dezelfde manier. Een TsgcFMXChart-besturingselement tekent een TsgcChart-component, en elke serie is ook een component, hier een TsgcChartSeries_Line. De enige code voegt de punten toe:

uses
  // sgc
  sgcCharts_Chart, sgcCharts_Series, sgcCharts_FMX;

const
  CS_VISITS: array [0 .. 6] of Integer = (420, 515, 480, 610, 590, 380, 350);

procedure TfrmHelloChart.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  { X is the day, Y the visitors. The chart repaints by itself }
  for i := Low(CS_VISITS) to High(CS_VISITS) do
    serVisits.AddXY(i + 1, CS_VISITS[i]);
end;

Selecteer Windows, macOS of Linux 64-bit in het venster Projects en dezelfde twee formulieren draaien op elk van die platforms.

Van een formulier naar een geavanceerde applicatie

De Suite-demo's hierboven zijn met dezelfde onderdelen gebouwd en hun broncode wordt met sgcUI meegeleverd. Dit zijn de ideeën die een grote Linux64-applicatie beheersbaar maken:

Probeer het nu: 274 gecompileerde Linux64-demo's

Je hebt geen Delphi, FMXLinux of licentie nodig om sgcUI op Linux te zien draaien. De FireMonkey-demo's van elk product, in totaal 274 programma's, zijn voor Linux64 gecompileerd en in één archief verpakt:

Download sgcUI_bin_linux64.tar.xz

tar -xJf sgcUI_bin_linux64.tar.xz
./run.sh              # choose a demo from the list
./run.sh Charts       # only the demos of one product

# or start one demo directly
cd Grid/FilterAndFind
GDK_BACKEND=x11 ./FilterAndFindFMX

De demo's draaien op Ubuntu 22.04 of nieuwer en op andere distributies met glibc 2.34 of nieuwer en GTK3, op een X11- of XWayland-scherm. De demo's met online kaarten hebben ook libcurl en een internetverbinding nodig. De README.txt in het archief bevat de details.

Goed om te weten. Afdrukken naar een printer, ondersteuning voor schermlezers en de aangepaste titelbalk van het venster zijn niet beschikbaar op Linux64, en zwevende dockingpanelen zijn daar uitgeschakeld. Al het andere in de FireMonkey-besturingselementen is dezelfde code als op de andere platforms. De sgcUI-pagina en het onderwerp Platforms in de help geven de details.

Eén codebase, elk bureaublad

Windows, macOS en nu Linux64, met dezelfde FireMonkey-formulieren en dezelfde sgcUI-besturingselementen. Download de gecompileerde demo's en zie ze draaien op je eigen Linux-bureaublad.

Vragen of feedback? Neem contact op, je krijgt antwoord van de mensen die de code hebben geschreven.