Ihre Delphi-Desktop-Anwendung.
Jetzt auf Linux.
Mit installiertem FMXLinux laufen die sgcUI-FireMonkey-Steuerelemente in echten Desktop-Anwendungen auf Linux64. Dieselben Formulare und derselbe Code, den Sie auch unter Windows und macOS ausliefern, mit demselben Aussehen.
- Delphi
- FireMonkey
- FMXLinux
- Linux64
- Ubuntu 22.04 oder neuer
Linux war für Delphi-Desktop-Entwickler schon immer die schwierige Plattform. Der Compiler unterstützt Linux64, aber eine visuelle Anwendung braucht FireMonkey, und FireMonkey unter Linux braucht das Add-on FMXLinux. Bisher bot sgcUI Linux64 nur für die nicht visuellen Teile an: Datenmodelle, Import und Export sowie das Rendern ohne Fenster nach PNG und SVG.
Das ändert sich heute. Mit in der IDE installiertem FMXLinux werden die sgcUI-FireMonkey-Steuerelemente auf Linux64 kompiliert und ausgeführt: das Daten-Grid, die Diagramme, die Gauges, die Dashboards, der Planer, die Karten, die Diagramme und der Rest der Suite. Jeder Screenshot in diesem Artikel wurde unter Ubuntu aufgenommen, aus denselben Demoprojekten, die auch unter Windows und macOS laufen.
sgcUI auf Linux64 in einer Minute, aufgenommen aus den echten Demos unter Ubuntu. Auch auf YouTube.
Komplette Anwendungen, nicht nur Steuerelemente
Eine UI-Suite beurteilt man am besten anhand kompletter Anwendungen. Genau das sind die sgcUI-Suite-Demos: Jede kombiniert ein Dutzend Produkte zu einem Programm mit Navigation, Live-Daten und mehreren Seiten. Alle laufen jetzt unverändert auf Linux64.
Ein Trading Desk
Die Demo Markets wird von einem Simulator gespeist, der etwa 1.000 Aktualisierungen pro Sekunde sendet. Das Watchlist-Grid blinkt rot und grün, wenn sich die Kurse bewegen, das Candlestick-Diagramm zeigt Bollinger-Bänder, gleitende Durchschnitte, Volumen und RSI-Bereiche, und eine Sektor-Treemap zeigt, wohin sich der Markt entwickelt.
Eine Fabrik-Leitwarte
Die Demo Factory ist eine HMI für eine Abfüllanlage. Sie zeigt OEE-Karten, einen Flaschenzähler mit Siebensegmentanzeige, den Prozessablauf der Linie mit animierten Verbindungen, ein Meldetableau, radiale und lineare Gauges sowie einen Live-Trend von zwölf Sensoren mit Alarmgrenzen.
Fleet, ERP und Projektportfolio
Die Demo Fleet verfolgt 48 Fahrzeuge auf einer Karte von Spanien und Portugal, mit Routen, Stopps, einem Fahrzeug-Grid und einer Alarmliste. Die Demo ERP öffnet mit einem Dashboard aus KPI-Karten, Diagrammen, einem Gauge und einer Kundenkarte und führt weiter zu Seiten für Kunden, Planung, Berichte und Analysen. Die Demo Portfolio plant 12 Projekte und 520 Aufgaben in einem Gantt-Diagramm mit kritischem Pfad.
Was sgcUI auf den Linux-Desktop bringt
sgcUI ist eine Suite nativer UI-Produkte, die einen gemeinsamen Kern, eine Theme-Engine und eine einheitliche Arbeitsweise teilen. Auf Linux64 stehen die FireMonkey-Steuerelemente der gesamten Suite zur Verfügung:
- sgcGrid: das Daten-Grid für Live-Feeds, Datasets und große Tabellen, mit Sortierung, Gruppierung, Summen, Filterzeilen, einem Suchbereich und Excel-Export.
- sgcCharts: einundzwanzig Serientypen für Business-Diagramme und Live-Streams, von Linien und Balken bis zu Candlesticks, Treemaps und Trichtern.
- sgcGauges: vierzehn Instrumente für Zielwerte, Maschinen und Leitwarten.
- sgcDashboard: Kacheln und KPI-Karten, die Zahlen in einen Bildschirm verwandeln.
- sgcPlanner: Terminplaner, Gantt und Kanban auf einem Datenmodell.
- sgcPivotGrid: Pivot-Tabellen und Pivot-Diagramme mit einer Feldliste.
- sgcMaps: native Karten mit Markern, Routen und Offline-Kacheln.
- sgcDiagram: ein Diagrammeditor und Layouts, die Ihre Daten zeichnen.
- sgcNavigation, sgcToolbar, sgcEditors und sgcWizard: die Seitenleiste, Registerkarten, Symbolleisten, Statusleisten, Eingabesteuerelemente und mehrstufigen Formulare, die eine Anwendung zusammenhalten.
- sgcSpreadsheet, sgcRichEdit, sgcReports, sgcPDF und sgcChat: Tabellenkalkulation, Rich Text, Berichte, PDF-Dokumente und Chat in Ihrer Anwendung.
Das Grid verdient ein eigenes Bild. Das ist die Demo FilterAndFind mit 100.000 Zeilen unter Ubuntu, mit Filterschaltflächen in den Kopfzeilen, einer Filterzeile und dem Feld “Ask the grid”. Das Mausrad scrollt es flüssig, und Strg+Ende springt direkt zu Zeile 100.000.
Was Sie benötigen
- Delphi 13, Enterprise oder Architect, die den Linux64-Compiler enthalten.
- Das FMXLinux-Add-on, über GetIt installiert. Es steht Enterprise- und Architect-Kunden mit aktivem Abonnement zur Verfügung.
- Eine sgcUI-Edition mit Quellcode. Die FireMonkey-Units werden zusammen mit Ihrem Projekt für Linux64 kompiliert.
- Ein Linux-Rechner, real oder virtuell, mit PAServer zum Erstellen und Debuggen aus der IDE. Die Anwendungen benötigen glibc 2.34 oder neuer, also Ubuntu 22.04 oder neuer, mit GTK3.
sgcUI auf Linux64 wurde mit Delphi 13 und FMXLinux 1.84 unter Ubuntu 22.04 und Ubuntu 24.04 getestet.
Ihre erste Linux64-Anwendung erstellen
- Installieren Sie FMXLinux über GetIt und starten Sie die IDE neu.
- Starten Sie PAServer auf dem Linux-Rechner, legen Sie in der IDE ein Verbindungsprofil an und importieren Sie das Linux-SDK, wie bei jedem Delphi-Linux64-Projekt.
- Fügen Sie den sgcUI-Ordner
Sourcezum Bibliothekspfad für Linux 64-bit hinzu (Tools, Options, Language, Delphi, Library), damit der Compiler die sgcUI-Units für diese Plattform findet. - Öffnen oder erstellen Sie eine FireMonkey-Anwendung, fügen Sie im Fenster Projekte die Zielplattform Linux 64-bit hinzu und wählen Sie sie aus.
- Platzieren Sie die sgcUI-Steuerelemente auf dem Formular und starten Sie die Anwendung. Die IDE kompiliert das Projekt, überträgt es über PAServer und startet es auf dem Linux-Desktop.
Es ist kein Linux-spezifischer Code zu schreiben. Das ist der vollständige Quellcode des Hello-Grid-Schnellstarts, ein Formular mit einem TsgcFMXGrid, dessen drei Spalten im Designer definiert sind:
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;
Ein Diagramm funktioniert genauso. Ein TsgcFMXChart-Steuerelement zeichnet eine TsgcChart-Komponente, und jede Serie ist ebenfalls eine Komponente, hier eine TsgcChartSeries_Line. Der einzige Code fügt die Punkte hinzu:
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;
Wählen Sie im Fenster Projekte Windows, macOS oder Linux 64-bit aus, und dieselben beiden Formulare laufen auf jeder dieser Plattformen.
Vom Formular zur anspruchsvollen Anwendung
Die oben gezeigten Suite-Demos sind aus denselben Bausteinen gebaut, und ihr Quellcode wird mit sgcUI geliefert. Diese Ideen machen eine große Linux64-Anwendung beherrschbar:
- Beginnen Sie mit einer Suite-Demo. ERP, Factory, Fleet, Markets und Portfolio sind komplette Anwendungen mit Navigation, Seiten, Themes und einem Datensimulator. Wählen Sie die Demo, die Ihrem Projekt am nächsten kommt, und ersetzen Sie den Simulator durch Ihre Daten.
- Gestalten Sie im Formulardesigner. Die Demo-Bildschirme liegen in den
.fmx-Dateien und nicht im Code, sodass das, was Sie unter Windows in der IDE sehen, auch unter Linux läuft. - Halten Sie die Daten in den Modellen. Jedes sgcUI-Steuerelement zeichnet ein Framework-neutrales Modell: die Grid-Daten, das Diagramm, die Planerdaten, das Diagrammdokument. Ihr Geschäftscode spricht mit dem Modell und ist daher weder von der Plattform noch vom UI-Framework abhängig.
- Bündeln Sie Ihre Aktualisierungen. Fassen Sie bei Live-Bildschirmen Änderungsschübe in
BeginUpdateundEndUpdatezusammen, damit das Steuerelement einmal pro Schub zeichnet und nicht einmal pro Wert. - Verwenden Sie ein Theme für alles. Die Steuerelemente folgen dem hellen oder dunklen Theme der Anwendung, sodass ein dunkler Leitwartenbildschirm wie die Demo Factory keine Gestaltung pro Steuerelement braucht.
- Rendern Sie auch auf dem Server. Dieselben Modelle rendern Grids, Diagramme, Gauges und Dashboards ohne Fenster nach PNG und SVG. Ein Linux64-Dienst kann so die Bilder für Berichte, E-Mails und Web-Endpunkte erzeugen, und dieser Teil braucht kein Add-on.
- Testen Sie auf der Distribution, auf der Sie ausliefern. Schriften und Fenstermanager unterscheiden sich zwischen Linux-Desktops, prüfen Sie die fertigen Bildschirme daher auf dem Zielsystem.
Jetzt ausprobieren: 274 kompilierte Linux64-Demos
Sie brauchen weder Delphi noch FMXLinux noch eine Lizenz, um sgcUI unter Linux laufen zu sehen. Die FireMonkey-Demos aller Produkte, insgesamt 274 Programme, sind für Linux64 kompiliert und in einem Archiv gepackt:
sgcUI_bin_linux64.tar.xz herunterladen
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
Die Demos laufen unter Ubuntu 22.04 oder neuer und auf anderen Distributionen mit glibc 2.34 oder neuer und GTK3, auf einem X11- oder XWayland-Display. Die Demos mit Online-Karten benötigen zusätzlich libcurl und eine Internetverbindung. Die README.txt im Archiv enthält die Details.
Eine Codebasis, jeder Desktop
Windows, macOS und jetzt Linux64, mit denselben FireMonkey-Formularen und denselben sgcUI-Steuerelementen. Laden Sie die kompilierten Demos herunter und sehen Sie sie auf Ihrem eigenen Linux-Desktop laufen.
Fragen oder Feedback? Nehmen Sie Kontakt auf, Sie erhalten eine Antwort von den Menschen, die den Code geschrieben haben.
