La tua applicazione desktop Delphi.
Ora su Linux.
Con FMXLinux installato, i controlli FireMonkey di sgcUI funzionano in vere applicazioni desktop su Linux64. Gli stessi form e lo stesso codice che distribuisci su Windows e macOS, con lo stesso aspetto.
- Delphi
- FireMonkey
- FMXLinux
- Linux64
- Ubuntu 22.04 o successivo
Linux è sempre stata la piattaforma più difficile per gli sviluppatori desktop Delphi. Il compilatore supporta Linux64, ma un'applicazione visuale richiede FireMonkey, e FireMonkey su Linux richiede il componente aggiuntivo FMXLinux. Finora sgcUI offriva Linux64 solo per le parti non visuali: modelli di dati, importazione ed esportazione, e rendering headless in PNG e SVG.
Oggi questo cambia. Con FMXLinux installato nell'IDE, i controlli FireMonkey di sgcUI si compilano ed eseguono su Linux64: la griglia dati, i grafici, gli indicatori, le dashboard, il planner, le mappe, i diagrammi e il resto della suite. Ogni schermata di questo articolo è stata catturata su Ubuntu, dagli stessi progetti demo che funzionano su Windows e macOS.
sgcUI su Linux64 in un minuto, registrato dalle demo reali in esecuzione su Ubuntu. Anche su YouTube.
Applicazioni complete, non solo controlli
Il modo migliore per giudicare una suite UI è guardare applicazioni complete. Le demo della Suite sgcUI sono proprio questo: ciascuna combina una dozzina di prodotti in un unico programma con navigazione, dati in tempo reale e più pagine. Ora funzionano tutte su Linux64, senza modifiche.
Un trading desk
La demo Markets è alimentata da un simulatore che invia circa 1.000 aggiornamenti al secondo. La griglia della watchlist lampeggia in rosso e verde al variare dei prezzi, il grafico a candele include bande di Bollinger, medie mobili, volumi e pannelli RSI, e una treemap dei settori mostra dove sta andando il mercato.
Una sala di controllo di fabbrica
La demo Factory è un HMI per un impianto di imbottigliamento. Mostra schede OEE, un contatore di bottiglie a sette segmenti, il flusso di processo della linea con connettori animati, un pannello di segnalazione, indicatori radiali e lineari e un andamento in tempo reale di dodici sensori con limiti di allarme.
Fleet, ERP e portafoglio progetti
La demo Fleet segue 48 veicoli su una mappa di Spagna e Portogallo, con percorsi, soste, una griglia dei veicoli e un elenco di avvisi. La demo ERP si apre con una dashboard di schede KPI, grafici, un indicatore e una mappa dei clienti, e prosegue con pagine di clienti, pianificazione, report e analisi. La demo Portfolio pianifica 12 progetti e 520 attività in un diagramma di Gantt con il percorso critico.
Cosa porta sgcUI sul desktop Linux
sgcUI è una suite di prodotti UI nativi che condividono un unico core, un unico motore di temi e un unico modo di lavorare. Su Linux64 sono disponibili i controlli FireMonkey dell'intera suite:
- sgcGrid: la griglia dati per flussi in tempo reale, dataset e tabelle di grandi dimensioni, con ordinamento, raggruppamento, riepiloghi, righe di filtro, un pannello di ricerca ed esportazione in Excel.
- sgcCharts: ventuno tipi di serie per grafici aziendali e flussi in tempo reale, da linee e barre a candele, treemap e imbuti.
- sgcGauges: quattordici strumenti per obiettivi, macchine e sale di controllo.
- sgcDashboard: riquadri e schede KPI che trasformano i numeri in una schermata.
- sgcPlanner: scheduler, Gantt e Kanban su un unico modello di dati.
- sgcPivotGrid: tabelle pivot e grafici pivot con elenco dei campi.
- sgcMaps: mappe native con marcatori, percorsi e tile offline.
- sgcDiagram: un editor di diagrammi e layout che disegnano i tuoi dati.
- sgcNavigation, sgcToolbar, sgcEditors e sgcWizard: la barra laterale, le schede, le barre degli strumenti, le barre di stato, i controlli di input e i form multi passaggio che tengono insieme un'applicazione.
- sgcSpreadsheet, sgcRichEdit, sgcReports, sgcPDF e sgcChat: fogli di calcolo, testo formattato, report, documenti PDF e chat all'interno della tua applicazione.
La griglia merita una sua immagine. Questa è la demo FilterAndFind con 100.000 righe su Ubuntu, con pulsanti di filtro nelle intestazioni, una riga di filtro e la casella “Ask the grid”. La rotellina del mouse la scorre in modo fluido e Ctrl+Fine salta direttamente alla riga 100.000.
Cosa serve
- Delphi 13, Enterprise o Architect, che includono il compilatore Linux64.
- Il componente aggiuntivo FMXLinux, installato da GetIt. È disponibile per i clienti Enterprise e Architect con una sottoscrizione attiva.
- Un'edizione di sgcUI con codice sorgente. Le unit FireMonkey vengono compilate per Linux64 insieme al tuo progetto.
- Una macchina Linux, reale o virtuale, con PAServer per compilare ed eseguire il debug dall'IDE. Le applicazioni richiedono glibc 2.34 o successiva, quindi Ubuntu 22.04 o successivo, con GTK3.
sgcUI su Linux64 è stato testato con Delphi 13 e FMXLinux 1.84 su Ubuntu 22.04 e Ubuntu 24.04.
Crea la tua prima applicazione Linux64
- Installa FMXLinux da GetIt e riavvia l'IDE.
- Avvia PAServer sulla macchina Linux, crea un profilo di connessione nell'IDE e importa l'SDK Linux, come per qualsiasi progetto Delphi Linux64.
- Aggiungi la cartella
Sourcedi sgcUI al percorso delle librerie Linux 64-bit (Tools, Options, Language, Delphi, Library), in modo che il compilatore trovi le unit di sgcUI per quella piattaforma. - Apri o crea un'applicazione FireMonkey, aggiungi la piattaforma di destinazione Linux 64-bit nella finestra Projects e selezionala.
- Inserisci i controlli sgcUI nel form ed esegui. L'IDE compila il progetto, lo distribuisce tramite PAServer e lo avvia sul desktop Linux.
Non c'è nessun codice specifico per Linux da scrivere. Questo è il sorgente completo della guida rapida Hello Grid, un form con un solo TsgcFMXGrid le cui tre colonne sono definite nel designer:
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 grafico funziona allo stesso modo. Un controllo TsgcFMXChart disegna un componente TsgcChart, e anche ogni serie è un componente, qui un TsgcChartSeries_Line. L'unico codice aggiunge i punti:
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;
Seleziona Windows, macOS o Linux 64-bit nella finestra Projects e gli stessi due form vengono eseguiti su ciascuna di esse.
Da un form a un'applicazione avanzata
Le demo della Suite viste sopra sono costruite con gli stessi elementi e il loro codice sorgente è incluso in sgcUI. Queste sono le idee che rendono gestibile una grande applicazione Linux64:
- Parti da una demo della Suite. ERP, Factory, Fleet, Markets e Portfolio sono applicazioni complete con navigazione, pagine, temi e un simulatore di dati. Scegli quella più vicina al tuo progetto e sostituisci il simulatore con i tuoi dati.
- Progetta nel designer dei form. Le schermate delle demo si trovano nei file
.fmx, non nel codice, quindi ciò che vedi nell'IDE su Windows è ciò che viene eseguito su Linux. - Tieni i dati nei modelli. Ogni controllo sgcUI disegna un modello indipendente dal framework: i dati della griglia, il grafico, i dati del planner, il documento del diagramma. Il tuo codice di business dialoga con il modello, quindi non dipende dalla piattaforma né dal framework UI.
- Raggruppa gli aggiornamenti. Per le schermate in tempo reale, racchiudi le raffiche di modifiche tra
BeginUpdateeEndUpdate, così il controllo si ridisegna una volta per raffica e non una volta per valore. - Usa un solo tema per tutto. I controlli seguono il tema chiaro o scuro dell'applicazione, quindi una schermata scura da sala di controllo come la demo Factory non richiede stili per ogni controllo.
- Esegui il rendering anche sul server. Gli stessi modelli producono griglie, grafici, indicatori e dashboard in PNG e SVG senza finestra. Un servizio Linux64 può generare le immagini per report, e-mail ed endpoint web, e questa parte non richiede alcun componente aggiuntivo.
- Testa sulla distribuzione di destinazione. Font e window manager differiscono tra i desktop Linux, quindi controlla le schermate finali sul sistema di destinazione.
Provalo subito: 274 demo Linux64 compilate
Non servono Delphi, FMXLinux né una licenza per vedere sgcUI in esecuzione su Linux. Le demo FireMonkey di ogni prodotto, 274 programmi in totale, sono compilate per Linux64 e raccolte in un unico archivio:
Scarica 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
Le demo funzionano su Ubuntu 22.04 o successivo e su altre distribuzioni con glibc 2.34 o successiva e GTK3, su un display X11 o XWayland. Le demo con mappe online richiedono anche libcurl e una connessione a Internet. Il file README.txt nell'archivio contiene i dettagli.
Una sola base di codice, ogni desktop
Windows, macOS e ora Linux64, con gli stessi form FireMonkey e gli stessi controlli sgcUI. Scarica le demo compilate e guardale in esecuzione sul tuo desktop Linux.
Domande o commenti? Contattaci, riceverai una risposta da chi ha scritto il codice.
