Delphi masaüstü uygulamanız.
Artık Linux'ta.
FMXLinux kurulu olduğunda, sgcUI FireMonkey kontrolleri Linux64 üzerinde gerçek masaüstü uygulamalarında çalışır. Windows ve macOS için yayınladığınız aynı formlar ve aynı kod, aynı görünümle.
- Delphi
- FireMonkey
- FMXLinux
- Linux64
- Ubuntu 22.04 veya üzeri
Linux, Delphi masaüstü geliştiricileri için her zaman zor bir platform oldu. Derleyici Linux64'ü hedefleyebilir, ancak görsel bir uygulama FireMonkey gerektirir ve Linux üzerinde FireMonkey için FMXLinux eklentisi gerekir. Şimdiye kadar sgcUI, Linux64'ü yalnızca görsel olmayan parçalar için sunuyordu: veri modelleri, içe ve dışa aktarma, ayrıca PNG ve SVG'ye arayüzsüz çizim.
Bu bugün değişiyor. IDE'de FMXLinux kurulu olduğunda, sgcUI FireMonkey kontrolleri Linux64 üzerinde derlenir ve çalışır: veri grid'i, grafikler, göstergeler, dashboard'lar, planlayıcı, haritalar, diyagramlar ve paketin geri kalanı. Bu makaledeki her ekran görüntüsü Ubuntu üzerinde, Windows ve macOS'ta çalışan aynı demo projelerinden alındı.
Bir dakikada Linux64 üzerinde sgcUI, Ubuntu'da çalışan gerçek demolardan kaydedildi. YouTube'da da izleyin.
Yalnızca Kontroller Değil, Tam Uygulamalar
Bir UI paketini değerlendirmenin en iyi yolu, tam uygulamalara bakmaktır. sgcUI Suite demoları tam olarak bunlardır: her biri bir düzineyi aşkın ürünü gezinme, canlı veri ve birkaç sayfa içeren tek bir programda birleştirir. Hepsi artık Linux64 üzerinde, değiştirilmeden çalışıyor.
Bir Trading Masası
Markets demosu, saniyede yaklaşık 1.000 güncelleme gönderen bir simülatörle beslenir. İzleme listesi grid'i fiyatlar değiştikçe kırmızı ve yeşil yanıp söner, mum grafiği Bollinger bantları, hareketli ortalamalar, hacim ve RSI panelleri taşır, sektör treemap'i ise piyasanın nereye gittiğini gösterir.
Bir Fabrika Kontrol Odası
Factory demosu, bir şişeleme tesisi için HMI'dır. OEE kartlarını, yedi segmentli bir şişe sayacını, animasyonlu bağlantılarla hattın proses akışını, bir alarm paneli, radyal ve doğrusal göstergeleri ve alarm limitli on iki sensörün canlı trendini gösterir.
Fleet, ERP ve Proje Portföyü
Fleet demosu, İspanya ve Portekiz haritasında 48 aracı rotalar, duraklar, bir araç grid'i ve bir uyarı listesiyle izler. ERP demosu KPI kartları, grafikler, bir gösterge ve bir müşteri haritasından oluşan bir dashboard ile açılır, müşteriler, planlama, raporlar ve analitik sayfalarıyla devam eder. Portfolio demosu 12 projeyi ve 520 görevi, kritik yolla birlikte bir Gantt grafiğinde planlar.
sgcUI'nin Linux Masaüstüne Getirdikleri
sgcUI, tek bir çekirdeği, tek bir tema motorunu ve tek bir çalışma biçimini paylaşan yerel UI ürünlerinden oluşan bir pakettir. Linux64 üzerinde paketin tüm FireMonkey kontrolleri kullanılabilir:
- sgcGrid: canlı veri akışları, veri kümeleri ve büyük tablolar için veri grid'i. Sıralama, gruplama, özetler, filtre satırları, bir arama paneli ve Excel dışa aktarma sunar.
- sgcCharts: iş grafikleri ve canlı akışlar için yirmi bir seri türü, çizgi ve çubuktan mum grafiklerine, treemap'lere ve huni grafiklerine kadar.
- sgcGauges: hedefler, makineler ve kontrol odaları için on dört enstrüman.
- sgcDashboard: sayıları bir ekrana dönüştüren kutucuklar ve KPI kartları.
- sgcPlanner: tek bir veri modeli üzerinde zamanlayıcı, Gantt ve Kanban.
- sgcPivotGrid: alan listesiyle özet tablolar ve özet grafikler.
- sgcMaps: işaretçiler, rotalar ve çevrimdışı karolarla yerel haritalar.
- sgcDiagram: verinizi çizen bir diyagram düzenleyicisi ve yerleşimler.
- sgcNavigation, sgcToolbar, sgcEditors ve sgcWizard: bir uygulamayı bir arada tutan kenar çubuğu, sekmeler, araç çubukları, durum çubukları, giriş kontrolleri ve çok adımlı formlar.
- sgcSpreadsheet, sgcRichEdit, sgcReports, sgcPDF ve sgcChat: uygulamanızın içinde e-tablolar, zengin metin, raporlar, PDF belgeleri ve sohbet.
Grid kendi görüntüsünü hak ediyor. Bu, Ubuntu üzerinde 100.000 satırlı FilterAndFind demosudur: başlıklarda filtre düğmeleri, bir filtre satırı ve “Ask the grid” kutusu var. Fare tekerleği grid'i akıcı biçimde kaydırır ve Ctrl+End doğrudan 100.000. satıra atlar.
Neye İhtiyacınız Var
- Linux64 derleyicisini içeren Delphi 13, Enterprise veya Architect.
- GetIt üzerinden kurulan FMXLinux eklentisi. Etkin aboneliği olan Enterprise ve Architect müşterileri için kullanılabilir.
- Kaynak kodlu bir sgcUI sürümü. FireMonkey birimleri, projenizle birlikte Linux64 için derlenir.
- IDE'den derleme ve hata ayıklama için PAServer bulunan, gerçek veya sanal bir Linux makinesi. Uygulamalar glibc 2.34 veya üzerini gerektirir, yani Ubuntu 22.04 veya üzeri ve GTK3.
Linux64 üzerinde sgcUI, Ubuntu 22.04 ve Ubuntu 24.04 üzerinde Delphi 13 ve FMXLinux 1.84 ile test edilmiştir.
İlk Linux64 Uygulamanızı Geliştirin
- FMXLinux'u GetIt'ten kurun ve IDE'yi yeniden başlatın.
- Linux makinesinde PAServer'ı başlatın, IDE'de bir bağlantı profili oluşturun ve herhangi bir Delphi Linux64 projesinde olduğu gibi Linux SDK'yı içe aktarın.
- sgcUI
Sourceklasörünü Linux 64-bit kitaplık yoluna ekleyin (Tools, Options, Language, Delphi, Library), böylece derleyici o platform için sgcUI birimlerini bulur. - Bir FireMonkey uygulaması açın veya oluşturun, Projects penceresinde Linux 64-bit hedef platformunu ekleyin ve seçin.
- sgcUI kontrollerini forma bırakın ve çalıştırın. IDE projeyi derler, PAServer üzerinden dağıtır ve Linux masaüstünde başlatır.
Yazmanız gereken Linux'a özel bir kod yoktur. Bu, Hello Grid hızlı başlangıcının tam kaynağıdır: üç sütunu tasarımcıda tanımlanmış tek bir TsgcFMXGrid içeren bir form:
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;
Bir grafik de aynı şekilde çalışır. Bir TsgcFMXChart kontrolü bir TsgcChart bileşenini çizer ve her seri de bir bileşendir, burada bir TsgcChartSeries_Line. Tek kod, noktaları ekler:
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;
Projects penceresinde Windows, macOS veya Linux 64-bit'i seçin, aynı iki form her birinde çalışır.
Bir Formdan Gelişmiş Bir Uygulamaya
Yukarıdaki Suite demoları aynı parçalarla geliştirilmiştir ve kaynak kodları sgcUI ile birlikte gelir. Büyük bir Linux64 uygulamasını yönetilebilir kılan fikirler şunlardır:
- Bir Suite demosuyla başlayın. ERP, Factory, Fleet, Markets ve Portfolio; gezinme, sayfalar, temalar ve bir veri simülatörü içeren tam uygulamalardır. Projenize en yakın olanı seçin ve simülatörü kendi verinizle değiştirin.
- Form tasarımcısında tasarlayın. Demo ekranları kodda değil,
.fmxdosyalarında bulunur, bu yüzden Windows'ta IDE'de gördüğünüz şey Linux'ta çalışan şeydir. - Veriyi modellerde tutun. Her sgcUI kontrolü, framework'ten bağımsız bir modeli çizer: grid verisi, grafik, planlayıcı verisi, diyagram belgesi. İş kodunuz modelle konuşur, bu yüzden platforma veya UI framework'üne bağlı olmaz.
- Güncellemelerinizi toplu yapın. Canlı ekranlarda, ani değişiklik yığınlarını
BeginUpdateveEndUpdatearasına alın. Böylece kontrol her değer için değil, her yığın için bir kez çizilir. - Her şey için tek tema kullanın. Kontroller uygulamanın açık veya koyu temasını izler, bu yüzden Factory demosu gibi koyu bir kontrol odası ekranı için kontrol başına stil vermek gerekmez.
- Sunucuda da çizin. Aynı modeller grid'leri, grafikleri, göstergeleri ve dashboard'ları pencere olmadan PNG ve SVG'ye çizer. Bir Linux64 servisi raporlar, e-postalar ve web uç noktaları için görseller üretebilir ve bu kısım hiçbir eklenti gerektirmez.
- Dağıtım yaptığınız dağıtımda test edin. Yazı tipleri ve pencere yöneticileri Linux masaüstleri arasında farklılık gösterir, bu yüzden son ekranları hedef sistemde kontrol edin.
Şimdi Deneyin: Derlenmiş 274 Linux64 Demosu
sgcUI'nin Linux'ta çalıştığını görmek için Delphi'ye, FMXLinux'a veya lisansa ihtiyacınız yok. Her ürünün FireMonkey demoları, toplam 274 program, Linux64 için derlendi ve tek bir arşivde paketlendi:
sgcUI_bin_linux64.tar.xz dosyasını indirin
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
Demolar Ubuntu 22.04 veya üzerinde, ayrıca glibc 2.34 veya üzeri ve GTK3 bulunan diğer dağıtımlarda, X11 veya XWayland ekranında çalışır. Çevrimiçi haritalı demolar için ayrıca libcurl ve bir İnternet bağlantısı gerekir. Ayrıntılar arşivdeki README.txt dosyasındadır.
Tek Kod Tabanı, Her Masaüstü
Windows, macOS ve artık Linux64, aynı FireMonkey formları ve aynı sgcUI kontrolleriyle. Derlenmiş demoları indirin ve kendi Linux masaüstünüzde çalışırken görün.
Sorularınız veya geri bildiriminiz mi var? Bize ulaşın, kodu yazan kişilerden yanıt alırsınız.
