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
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é.
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.
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.
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 :
- sgcGrid : la grille de données pour les flux en direct, les jeux de données et les grandes tables, avec tri, regroupement, synthèses, lignes de filtre, panneau de recherche et export Excel.
- sgcCharts : vingt et un types de séries pour les graphiques métier et les flux en direct, des lignes et barres aux chandeliers, treemaps et entonnoirs.
- sgcGauges : quatorze instruments pour les objectifs, les machines et les salles de contrôle.
- sgcDashboard : des tuiles et des cartes KPI qui transforment des chiffres en écran.
- sgcPlanner : planificateur, Gantt et Kanban sur un même modèle de données.
- sgcPivotGrid : tableaux et graphiques croisés dynamiques avec liste de champs.
- sgcMaps : des cartes natives avec marqueurs, itinéraires et tuiles hors ligne.
- sgcDiagram : un éditeur de diagrammes et des dispositions qui dessinent vos données.
- sgcNavigation, sgcToolbar, sgcEditors et sgcWizard : la barre latérale, les onglets, les barres d'outils, les barres d'état, les contrôles de saisie et les formulaires en plusieurs étapes qui structurent une application.
- sgcSpreadsheet, sgcRichEdit, sgcReports, sgcPDF et sgcChat : tableur, texte enrichi, rapports, documents PDF et messagerie au sein de votre application.
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.
Ce dont vous avez besoin
- Delphi 13, Enterprise ou Architect, qui incluent le compilateur Linux64.
- Le module complémentaire FMXLinux, installé depuis GetIt. Il est disponible pour les clients Enterprise et Architect disposant d'un abonnement actif.
- Une édition de sgcUI avec code source. Les unités FireMonkey sont compilées pour Linux64 avec votre projet.
- Une machine Linux, réelle ou virtuelle, avec PAServer pour compiler et déboguer depuis l'IDE. Les applications nécessitent glibc 2.34 ou version ultérieure, donc Ubuntu 22.04 ou version ultérieure, avec GTK3.
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
- Installez FMXLinux depuis GetIt et redémarrez l'IDE.
- 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.
- Ajoutez le dossier
Sourcede 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. - Ouvrez ou créez une application FireMonkey, ajoutez la plateforme cible Linux 64 bits dans la fenêtre Projets et sélectionnez-la.
- 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 :
- Partez d'une démo Suite. ERP, Factory, Fleet, Markets et Portfolio sont des applications complètes avec navigation, pages, thèmes et simulateur de données. Choisissez celle qui se rapproche le plus de votre projet et remplacez le simulateur par vos données.
- Concevez dans le concepteur de formulaires. Les écrans des démos se trouvent dans les fichiers
.fmx, pas dans le code, donc ce que vous voyez dans l'IDE sous Windows est ce qui s'exécute sous Linux. - Gardez les données dans les modèles. Chaque contrôle sgcUI affiche un modèle indépendant du framework : les données de la grille, le graphique, les données du planificateur, le document de diagramme. Votre code métier dialogue avec le modèle, il ne dépend donc ni de la plateforme ni du framework d'interface.
- Regroupez vos mises à jour. Pour les écrans en direct, encadrez les rafales de changements avec
BeginUpdateetEndUpdate, afin que le contrôle se redessine une fois par rafale et non une fois par valeur. - Utilisez un seul thème pour tout. Les contrôles suivent le thème clair ou sombre de l'application, donc un écran de salle de contrôle sombre comme la démo Factory ne demande aucun style par contrôle.
- Générez aussi côté serveur. Les mêmes modèles produisent des grilles, graphiques, jauges et tableaux de bord en PNG et SVG sans fenêtre. Un service Linux64 peut créer les images pour des rapports, des e-mails et des points d'accès web, et cette partie ne nécessite aucun module complémentaire.
- Testez sur la distribution de déploiement. Les polices et les gestionnaires de fenêtres diffèrent d'un bureau Linux à l'autre, vérifiez donc les écrans finaux sur le système cible.
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.
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.
