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
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.
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.
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ą.
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:
- sgcGrid: siatka danych dla strumieni na żywo, zbiorów danych i dużych tabel, z sortowaniem, grupowaniem, podsumowaniami, wierszami filtrów, panelem wyszukiwania i eksportem do Excela.
- sgcCharts: dwadzieścia jeden typów serii dla wykresów biznesowych i strumieni na żywo, od liniowych i słupkowych po świecowe, mapy drzewa i lejki.
- sgcGauges: czternaście przyrządów dla wskaźników docelowych, maszyn i sterowni.
- sgcDashboard: kafelki i karty KPI, które zamieniają liczby w ekran.
- sgcPlanner: harmonogram, Gantt i Kanban na jednym modelu danych.
- sgcPivotGrid: tabele i wykresy przestawne z listą pól.
- sgcMaps: natywne mapy ze znacznikami, trasami i kafelkami offline.
- sgcDiagram: edytor diagramów i układy, które rysują Twoje dane.
- sgcNavigation, sgcToolbar, sgcEditors i sgcWizard: panel boczny, karty, paski narzędzi, paski stanu, kontrolki wprowadzania i wieloetapowe formularze, które spajają aplikację.
- sgcSpreadsheet, sgcRichEdit, sgcReports, sgcPDF i sgcChat: arkusze kalkulacyjne, tekst sformatowany, raporty, dokumenty PDF i czat wewnątrz Twojej aplikacji.
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.
Czego potrzebujesz
- Delphi 13, w wersji Enterprise lub Architect, które zawierają kompilator Linux64.
- Dodatek FMXLinux, instalowany z GetIt. Jest dostępny dla klientów Enterprise i Architect z aktywną subskrypcją.
- Edycja sgcUI z kodem źródłowym. Jednostki FireMonkey są kompilowane dla Linux64 razem z Twoim projektem.
- Maszyna z Linuksem, fizyczna lub wirtualna, z PAServer do budowania i debugowania z poziomu IDE. Aplikacje wymagają glibc 2.34 lub nowszego, czyli Ubuntu 22.04 lub nowszego, z GTK3.
sgcUI na Linux64 przetestowano z Delphi 13 i FMXLinux 1.84 na Ubuntu 22.04 oraz Ubuntu 24.04.
Zbuduj swoją pierwszą aplikację Linux64
- Zainstaluj FMXLinux z GetIt i uruchom IDE ponownie.
- 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.
- Dodaj folder
Sourcepakietu sgcUI do ścieżki biblioteki Linux 64-bit (Tools, Options, Language, Delphi, Library), aby kompilator znalazł jednostki sgcUI dla tej platformy. - Otwórz lub utwórz aplikację FireMonkey, dodaj platformę docelową Linux 64-bit w oknie Projects i wybierz ją.
- 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:
- Zacznij od dema Suite. ERP, Factory, Fleet, Markets i Portfolio to kompletne aplikacje z nawigacją, stronami, motywami i symulatorem danych. Wybierz to, które jest najbliższe Twojemu projektowi, i zastąp symulator własnymi danymi.
- Projektuj w projektancie formularzy. Ekrany dem znajdują się w plikach
.fmx, a nie w kodzie, więc to, co widzisz w IDE na Windows, działa na Linuksie. - Trzymaj dane w modelach. Każda kontrolka sgcUI rysuje model niezależny od frameworka: dane siatki, wykres, dane planera, dokument diagramu. Twój kod biznesowy komunikuje się z modelem, więc nie zależy od platformy ani od frameworka UI.
- Grupuj aktualizacje. Na ekranach z danymi na żywo otaczaj serie zmian wywołaniami
BeginUpdateiEndUpdate, aby kontrolka rysowała się raz na serię, a nie raz na wartość. - Używaj jednego motywu dla wszystkiego. Kontrolki podążają za jasnym lub ciemnym motywem aplikacji, więc ciemny ekran sterowni, taki jak w demie Factory, nie wymaga stylizacji każdej kontrolki.
- Renderuj także na serwerze. Te same modele renderują siatki, wykresy, mierniki i dashboardy do PNG i SVG bez okna. Usługa Linux64 może budować obrazy do raportów, e-maili i punktów końcowych WWW, a ta część nie wymaga żadnego dodatku.
- Testuj na dystrybucji, na której wdrażasz. Czcionki i menedżery okien różnią się między pulpitami Linux, więc sprawdź finalne ekrany w systemie docelowym.
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.
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.
