sgcUI na Linux64 z FMXLinux: siatki, wykresy, mierniki i pełne aplikacje dla pulpitu Linux

· Komponenty
sgcUI na Linux64 z FMXLinux: siatki, wykresy, mierniki i pełne aplikacje dla pulpitu Linux | Blog eSeGeCe
>_ Nowość · sgcUI na Linux64

Twoja aplikacja desktopowa w Delphi.
Teraz także na Linuksie.

Po zainstalowaniu FMXLinux kontrolki sgcUI dla FireMonkey działają w prawdziwych aplikacjach desktopowych na Linux64. Te same formularze i ten sam kod, który wdrażasz na Windows i macOS, z identycznym wyglądem.

  • Delphi
  • FireMonkey
  • FMXLinux
  • Linux64
  • Ubuntu 22.04 lub nowszy
Aplikacja stanowiska handlowego zbudowana z sgcUI, działająca na pulpicie Linux: siatka listy obserwowanych, wykres świecowy, mapa drzewa sektorów i mierniki w ciemnym motywie
274dema Linux64
17produktów UI
5platform FireMonkey
1baza kodu

Linux zawsze był trudną platformą dla programistów aplikacji desktopowych w Delphi. Kompilator obsługuje Linux64, ale aplikacja wizualna potrzebuje FireMonkey, a FireMonkey na Linuksie wymaga dodatku FMXLinux. Do tej pory sgcUI oferowało Linux64 tylko dla części niewizualnych: modeli danych, importu i eksportu oraz renderowania bez okna do PNG i SVG.

Dziś to się zmienia. Gdy FMXLinux jest zainstalowany w IDE, kontrolki sgcUI dla FireMonkey kompilują się i działają na Linux64: siatka danych, wykresy, mierniki, dashboardy, planer, mapy, diagramy i reszta pakietu. Każdy zrzut ekranu w tym artykule wykonano na Ubuntu, z tych samych projektów demonstracyjnych, które działają na Windows i macOS.

sgcUI na Linux64 w jedną minutę, nagrane z prawdziwych dem działających na Ubuntu. Także na YouTube.

Pełne aplikacje, nie tylko kontrolki

Najlepszym sposobem oceny pakietu UI jest obejrzenie kompletnych aplikacji. Dema sgcUI Suite są właśnie takie: każde łączy kilkanaście produktów w jeden program z nawigacją, danymi na żywo i kilkoma stronami. Wszystkie działają teraz na Linux64 bez żadnych zmian.

Stanowisko handlowe

Demo Markets jest zasilane symulatorem, który wysyła około 1000 aktualizacji na sekundę. Siatka listy obserwowanych miga na czerwono i zielono wraz ze zmianą cen, wykres świecowy zawiera wstęgi Bollingera, średnie kroczące, wolumen i panele RSI, a mapa drzewa sektorów pokazuje, dokąd zmierza rynek.

Wykres świecowy z wskaźnikami analizy na Linuksie
Wykres analizy ze wskaźnikami
Mapa cieplna rynku według sektorów na Linuksie
Mapa cieplna rynku według sektorów

Sterownia fabryki

Demo Factory to HMI dla rozlewni butelek. Pokazuje karty OEE, siedmiosegmentowy licznik butelek, schemat procesu linii z animowanymi łącznikami, panel sygnalizacji alarmów, mierniki radialne i liniowe oraz trend na żywo z dwunastu czujników z limitami alarmowymi.

HMI fabryki na Linuksie: karty OEE, licznik butelek, schemat procesu, panel sygnalizacji alarmów i mierniki w ciemnym motywie
Przegląd linii w demie Factory na Ubuntu: schemat procesu, sygnalizatory, mierniki i liczniki.
Strona szczegółów zasobu z trzema dużymi miernikami pompy
Szczegóły zasobu z miernikami na żywo
Mapa zakładów z danymi o produkcji i energii
Zakłady na mapie

Fleet, ERP i portfolio projektów

Demo Fleet śledzi 48 pojazdów na mapie Hiszpanii i Portugalii, z trasami, przystankami, siatką pojazdów i listą alertów. Demo ERP otwiera się dashboardem z kartami KPI, wykresami, miernikiem i mapą klientów, a dalej zawiera strony klientów, planowania, raportów i analityki. Demo Portfolio planuje 12 projektów i 520 zadań na wykresie Gantta ze ścieżką krytyczną.

Aplikacja do obsługi floty na Linuksie: karty KPI, mapa z pojazdami i trasami, siatka pojazdów i alerty
Obsługa floty na żywo: karty KPI, mapa z pojazdami i trasami oraz dwie siatki.
Dashboard ERP z kartami KPI, wykresami, miernikiem i mapą
Dashboard ERP
Tygodniowy kalendarz dostaw pokolorowany według kierowcy
Kalendarz planowania dostaw
Przegląd portfolio projektów z miernikami, wykresem bąbelkowym, mapą i mapą drzewa
Przegląd portfolio
Wykres Gantta portfolio ze ścieżką krytyczną
Gantt portfolio ze ścieżką krytyczną
Sieć hubów narysowana jako diagram z kolorowymi torami
Diagram sieci hubów
Schemat organizacyjny powiązany ze zbiorem danych
Schemat organizacyjny ze zbioru danych

Co sgcUI wnosi na pulpit Linux

sgcUI to pakiet natywnych produktów UI, które mają wspólny rdzeń, jeden silnik motywów i jeden sposób pracy. Na Linux64 dostępne są kontrolki FireMonkey z całego pakietu:

sgcCharts na Linuksie: wykres obszarowy zakresu, liniowy i słupkowy z pasmem docelowym
sgcCharts
Galeria sgcGauges na Linuksie: mierniki radialne, pierścieniowe, kompas, zegar, cyfrowe i LED
sgcGauges
Gantt sgcPlanner na Linuksie z powiązaniami, planem bazowym i ścieżką krytyczną
Gantt sgcPlanner
sgcPivotGrid na Linuksie z komórkami mapy cieplnej i listą pól
sgcPivotGrid
sgcMaps na Linuksie z panelem warstw, przyciskami powiększenia i skalą
sgcMaps
Wykresy mapy drzewa i lejka na Linuksie
Mapa drzewa i lejek

Siatka zasługuje na osobny zrzut. To demo FilterAndFind ze 100 000 wierszy na Ubuntu, z przyciskami filtrów w nagłówkach, wierszem filtrów i polem “Zapytaj siatkę”. Kółko myszy przewija ją płynnie, a Ctrl+End przechodzi od razu do wiersza 100 000.

sgcGrid ze 100 000 wierszy na Linuksie, z filtrami w nagłówkach i wierszem filtrów
sgcGrid ze 100 000 wierszy na Ubuntu.

Czego potrzebujesz

sgcUI na Linux64 przetestowano z Delphi 13 i FMXLinux 1.84 na Ubuntu 22.04 oraz Ubuntu 24.04.

Zbuduj swoją pierwszą aplikację Linux64

1Zainstaluj FMXLinuxZ GetIt, wewnątrz IDE
2Połącz z LinuksemPAServer i Linux SDK
3Dodaj platformęLinux 64-bit w projekcie FireMonkey
4UruchomTen sam formularz, na pulpicie Linux
  1. Zainstaluj FMXLinux z GetIt i uruchom IDE ponownie.
  2. Uruchom PAServer na maszynie z Linuksem, utwórz profil połączenia w IDE i zaimportuj Linux SDK, tak jak w każdym projekcie Delphi Linux64.
  3. Dodaj folder Source pakietu sgcUI do ścieżki biblioteki Linux 64-bit (Tools, Options, Language, Delphi, Library), aby kompilator znalazł jednostki sgcUI dla tej platformy.
  4. Otwórz lub utwórz aplikację FireMonkey, dodaj platformę docelową Linux 64-bit w oknie Projects i wybierz ją.
  5. Upuść kontrolki sgcUI na formularz i uruchom. IDE kompiluje projekt, wdraża go przez PAServer i uruchamia na pulpicie Linux.

Nie trzeba pisać żadnego kodu specyficznego dla Linuksa. Oto pełny kod źródłowy szybkiego startu Hello Grid, formularza z jednym TsgcFMXGrid, którego trzy kolumny są zdefiniowane w projektancie:

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;

Wykres działa tak samo. Kontrolka TsgcFMXChart rysuje komponent TsgcChart, a każda seria jest także komponentem, tutaj TsgcChartSeries_Line. Jedyny kod dodaje punkty:

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;

Wybierz Windows, macOS lub Linux 64-bit w oknie Projects, a te same dwa formularze będą działać na każdej z tych platform.

Od formularza do zaawansowanej aplikacji

Powyższe dema Suite są zbudowane z tych samych elementów, a ich kod źródłowy jest dołączony do sgcUI. Oto pomysły, dzięki którym duża aplikacja Linux64 pozostaje łatwa w utrzymaniu:

Wypróbuj teraz: 274 skompilowane dema Linux64

Nie potrzebujesz Delphi, FMXLinux ani licencji, aby zobaczyć sgcUI działające na Linuksie. Dema FireMonkey każdego produktu, w sumie 274 programy, są skompilowane dla Linux64 i spakowane w jedno archiwum:

Pobierz 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

Dema działają na Ubuntu 22.04 lub nowszym oraz na innych dystrybucjach z glibc 2.34 lub nowszym i GTK3, na wyświetlaczu X11 lub XWayland. Dema z mapami online wymagają także libcurl i połączenia z Internetem. Szczegóły znajdziesz w pliku README.txt w archiwum.

Warto wiedzieć. Drukowanie na drukarce, obsługa czytników ekranu i własny pasek tytułu okna nie są dostępne na Linux64, a pływające panele dokowania są tam wyłączone. Cała reszta kontrolek FireMonkey to ten sam kod co na pozostałych platformach. Szczegóły podano na stronie sgcUI oraz w temacie Platforms w pomocy.

Jedna baza kodu, każdy pulpit

Windows, macOS, a teraz Linux64, z tymi samymi formularzami FireMonkey i tymi samymi kontrolkami sgcUI. Pobierz skompilowane dema i zobacz je w działaniu na własnym pulpicie Linux.

Masz pytania lub uwagi? Skontaktuj się z nami, odpowiedzą Ci osoby, które napisały ten kod.