sgcUI sur Linux64 avec FMXLinux : grilles, graphiques, jauges et applications complètes pour le bureau Linux

· Composants
sgcUI sur Linux64 avec FMXLinux : grilles, graphiques, jauges et applications complètes pour le bureau Linux | Blog eSeGeCe
>_ Nouveau · sgcUI sur Linux64

Votre application de bureau Delphi.
Désormais sur Linux.

Avec FMXLinux installé, les contrôles FireMonkey de sgcUI fonctionnent dans de vraies applications de bureau sur Linux64. Les mêmes formulaires et le même code que vous livrez sur Windows et macOS, avec le même rendu.

  • Delphi
  • FireMonkey
  • FMXLinux
  • Linux64
  • Ubuntu 22.04 ou version ultérieure
Une application de salle de marché créée avec sgcUI sur un bureau Linux : grille de suivi, graphique en chandeliers, treemap des secteurs et jauges sur un thème sombre
274démos Linux64
17produits UI
5plateformes FireMonkey
1base de code

Linux a toujours été la plateforme difficile pour les développeurs Delphi d'applications de bureau. Le compilateur cible Linux64, mais une application visuelle a besoin de FireMonkey, et FireMonkey sur Linux a besoin du module complémentaire FMXLinux. Jusqu'à présent, sgcUI ne proposait Linux64 que pour les parties non visuelles : modèles de données, import et export, et rendu sans interface vers PNG et SVG.

Cela change aujourd'hui. Avec FMXLinux installé dans l'IDE, les contrôles FireMonkey de sgcUI se compilent et s'exécutent sur Linux64 : la grille de données, les graphiques, les jauges, les tableaux de bord, le planificateur, les cartes, les diagrammes et le reste de la suite. Chaque capture d'écran de cet article a été réalisée sous Ubuntu, à partir des mêmes projets de démonstration que ceux qui fonctionnent sur Windows et macOS.

sgcUI sur Linux64 en une minute, enregistré à partir des vraies démos exécutées sous Ubuntu. Aussi sur YouTube.

De vraies applications, pas seulement des contrôles

La meilleure façon de juger une suite d'interface est de regarder des applications complètes. Les démos Suite de sgcUI en sont exactement le cas : chacune combine une dizaine de produits dans un seul programme, avec navigation, données en direct et plusieurs pages. Toutes fonctionnent désormais sur Linux64, sans modification.

Une salle de marché

La démo Markets est alimentée par un simulateur qui envoie environ 1 000 mises à jour par seconde. La grille de suivi clignote en rouge et en vert au rythme des prix, le graphique en chandeliers affiche des bandes de Bollinger, des moyennes mobiles, le volume et des volets RSI, et un treemap des secteurs montre la direction du marché.

Graphique d'analyse en chandeliers avec indicateurs sous Linux
Graphique d'analyse avec indicateurs
Carte thermique du marché par secteur sous Linux
Carte thermique du marché par secteur

Une salle de contrôle d'usine

La démo Factory est une IHM pour une usine d'embouteillage. Elle affiche des cartes OEE, un compteur de bouteilles à sept segments, le flux de process de la ligne avec des connecteurs animés, un panneau d'alarmes, des jauges radiales et linéaires et une courbe en direct de douze capteurs avec limites d'alarme.

IHM d'usine sous Linux : cartes OEE, compteur de bouteilles, diagramme de flux de process, panneau d'alarmes et jauges sur un thème sombre
La vue d'ensemble de la ligne dans la démo Factory sous Ubuntu : diagramme de process, alarmes, jauges et compteurs.
Page de détail d'un équipement avec trois grandes jauges pour une pompe
Détail d'un équipement avec jauges en direct
Carte des usines avec les chiffres de production et d'énergie
Les usines sur la carte

Fleet, ERP et portefeuille de projets

La démo Fleet suit 48 véhicules sur une carte de l'Espagne et du Portugal, avec itinéraires, arrêts, une grille de véhicules et une liste d'alertes. La démo ERP s'ouvre sur un tableau de bord de cartes KPI, de graphiques, d'une jauge et d'une carte des clients, puis continue avec des pages de clients, de planification, de rapports et d'analyses. La démo Portfolio planifie 12 projets et 520 tâches dans un diagramme de Gantt avec chemin critique.

Application d'exploitation de flotte sous Linux : cartes KPI, carte avec véhicules et itinéraires, grille de véhicules et alertes
Exploitation de flotte en direct : cartes KPI, carte avec véhicules et itinéraires, et deux grilles.
Tableau de bord ERP avec cartes KPI, graphiques, une jauge et une carte
Tableau de bord ERP
Calendrier hebdomadaire des livraisons colorées par chauffeur
Calendrier de planification des livraisons
Vue d'ensemble du portefeuille de projets avec jauges, graphique à bulles, carte et treemap
Vue d'ensemble du portefeuille
Diagramme de Gantt du portefeuille avec le chemin critique
Gantt du portefeuille avec chemin critique
Réseau de hubs dessiné sous forme de diagramme avec des couloirs colorés
Diagramme du réseau de hubs
Organigramme lié à un jeu de données
Organigramme à partir d'un jeu de données

Ce que sgcUI apporte au bureau Linux

sgcUI est une suite de produits d'interface natifs qui partagent un même noyau, un même moteur de thèmes et une même façon de travailler. Sur Linux64, les contrôles FireMonkey de toute la suite sont disponibles :

sgcCharts sous Linux : aire par plage, ligne et barres avec une bande cible
sgcCharts
Galerie sgcGauges sous Linux : jauges radiales, en anneau, boussole, horloge, numériques et LED
sgcGauges
Gantt sgcPlanner sous Linux avec liens, planning de référence et chemin critique
Gantt sgcPlanner
sgcPivotGrid sous Linux avec cellules en carte thermique et liste de champs
sgcPivotGrid
sgcMaps sous Linux avec un panneau de calques, des boutons de zoom et une échelle
sgcMaps
Graphiques treemap et entonnoir sous Linux
Treemap et entonnoir

La grille mérite sa propre image. Voici la démo FilterAndFind avec 100 000 lignes sous Ubuntu, avec des boutons de filtre dans les en-têtes, une ligne de filtre et la zone “Ask the grid”. La molette de la souris la fait défiler en douceur et Ctrl+Fin saute directement à la ligne 100 000.

sgcGrid avec 100 000 lignes sous Linux, avec filtres d'en-tête et ligne de filtre
sgcGrid avec 100 000 lignes sous Ubuntu.

Ce dont vous avez besoin

sgcUI sur Linux64 a été testé avec Delphi 13 et FMXLinux 1.84 sous Ubuntu 22.04 et Ubuntu 24.04.

Créez votre première application Linux64

1Installer FMXLinuxDepuis GetIt, dans l'IDE
2Connecter LinuxPAServer et le SDK Linux
3Ajouter la plateformeLinux 64 bits dans votre projet FireMonkey
4ExécuterLe même formulaire, sur le bureau Linux
  1. Installez FMXLinux depuis GetIt et redémarrez l'IDE.
  2. Lancez PAServer sur la machine Linux, créez un profil de connexion dans l'IDE et importez le SDK Linux, comme pour tout projet Delphi Linux64.
  3. Ajoutez le dossier Source de sgcUI au chemin de bibliothèque Linux 64 bits (Outils, Options, Langage, Delphi, Bibliothèque), afin que le compilateur trouve les unités sgcUI pour cette plateforme.
  4. Ouvrez ou créez une application FireMonkey, ajoutez la plateforme cible Linux 64 bits dans la fenêtre Projets et sélectionnez-la.
  5. Déposez les contrôles sgcUI sur le formulaire et exécutez. L'IDE compile le projet, le déploie via PAServer et le lance sur le bureau Linux.

Il n'y a aucun code spécifique à Linux à écrire. Voici le code source complet du démarrage rapide Hello Grid, un formulaire avec un TsgcFMXGrid dont les trois colonnes sont définies dans le concepteur :

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;

Un graphique fonctionne de la même manière. Un contrôle TsgcFMXChart affiche un composant TsgcChart, et chaque série est aussi un composant, ici un TsgcChartSeries_Line. Le seul code ajoute les points :

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;

Sélectionnez Windows, macOS ou Linux 64 bits dans la fenêtre Projets et les deux mêmes formulaires fonctionnent sur chacune de ces plateformes.

D'un formulaire à une application avancée

Les démos Suite ci-dessus sont construites avec les mêmes briques, et leur code source est livré avec sgcUI. Voici les idées qui rendent une grande application Linux64 maîtrisable :

Essayez maintenant : 274 démos Linux64 compilées

Vous n'avez besoin ni de Delphi, ni de FMXLinux, ni d'une licence pour voir sgcUI fonctionner sur Linux. Les démos FireMonkey de chaque produit, 274 programmes au total, sont compilées pour Linux64 et regroupées dans une seule archive :

Télécharger 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

Les démos fonctionnent sous Ubuntu 22.04 ou version ultérieure et sur d'autres distributions avec glibc 2.34 ou version ultérieure et GTK3, sur un affichage X11 ou XWayland. Les démos avec cartes en ligne nécessitent aussi libcurl et une connexion Internet. Le fichier README.txt de l'archive donne les détails.

À savoir. L'impression vers une imprimante, la prise en charge des lecteurs d'écran et la barre de titre de fenêtre personnalisée ne sont pas disponibles sur Linux64, et les panneaux d'ancrage flottants y sont désactivés. Tout le reste des contrôles FireMonkey utilise le même code que sur les autres plateformes. La page sgcUI et la rubrique Platforms de l'aide en donnent le détail.

Une seule base de code, tous les bureaux

Windows, macOS et maintenant Linux64, avec les mêmes formulaires FireMonkey et les mêmes contrôles sgcUI. Téléchargez les démos compilées et voyez-les fonctionner sur votre propre bureau Linux.

Des questions ou des commentaires ? Contactez-nous, vous recevrez une réponse de ceux qui ont écrit le code.