FMXLinux で Linux64 に対応した sgcUI:Linux デスクトップ向けのグリッド、チャート、ゲージ、フルアプリケーション

· コンポーネント
FMXLinux で Linux64 に対応した sgcUI:Linux デスクトップ向けのグリッド、チャート、ゲージ、フルアプリケーション | eSeGeCe ブログ
>_ 新登場 · Linux64 対応の sgcUI

あなたの Delphi デスクトップアプリケーションが、
Linux でも動きます。

FMXLinux をインストールすると、sgcUI の FireMonkey コントロールが Linux64 の実際のデスクトップアプリケーションで動作します。Windows や macOS で配布しているものと同じフォーム、同じコードで、見た目も同じです。

  • Delphi
  • FireMonkey
  • FMXLinux
  • Linux64
  • Ubuntu 22.04 以降
Linux デスクトップ上で動作する、sgcUI で作られたトレーディングデスクアプリケーション。ダークテーマのウォッチリストグリッド、ローソク足チャート、セクターのツリーマップ、ゲージ
274Linux64 デモ
17UI 製品
5FireMonkey プラットフォーム
1コードベース

Delphi のデスクトップ開発者にとって、Linux は常に難しいプラットフォームでした。コンパイラは Linux64 を対象にできますが、ビジュアルなアプリケーションには FireMonkey が必要で、Linux 上の FireMonkey には FMXLinux アドオンが必要です。これまで sgcUI が Linux64 で提供していたのは、データモデル、インポートとエクスポート、PNG や SVG へのヘッドレスレンダリングといった、ビジュアルではない部分だけでした。

それが今日から変わります。FMXLinux を IDE にインストールすれば、sgcUI の FireMonkey コントロールが Linux64 でコンパイルして実行できます。データグリッド、チャート、ゲージ、ダッシュボード、プランナー、マップ、ダイアグラムなど、スイート全体が対象です。この記事のスクリーンショットはすべて Ubuntu 上で撮影したもので、Windows や macOS で動くものと同じデモプロジェクトを使っています。

1 分でわかる Linux64 上の sgcUI。Ubuntu で動作している実際のデモを録画しました。YouTube でも公開中。

コントロールだけでなく、フルアプリケーションも

UI スイートを評価する最良の方法は、完成したアプリケーションを見ることです。sgcUI Suite デモはまさにそれで、それぞれが十数個の製品を組み合わせ、ナビゲーション、ライブデータ、複数のページを備えた 1 つのプログラムになっています。そのすべてが、変更なしで Linux64 上で動作します。

トレーディングデスク

Markets デモには、毎秒約 1,000 件の更新を送り込むシミュレーターがあります。ウォッチリストグリッドは価格の変動に合わせて赤と緑に点滅し、ローソク足チャートにはボリンジャーバンド、移動平均、出来高、RSI のペインが表示され、セクターのツリーマップが市場の動きを示します。

Linux 上のインジケーター付きローソク足分析チャート
インジケーター付き分析チャート
Linux 上のセクター別マーケットヒートマップ
セクター別マーケットヒートマップ

工場の制御室

Factory デモは、ボトリングプラントの HMI です。OEE カード、7 セグメントのボトルカウンター、アニメーションするコネクターを備えたラインのプロセスフロー、アナンシエーターパネル、円形とリニアのゲージ、アラーム上限と下限を持つ 12 個のセンサーのライブトレンドを表示します。

Linux 上の Factory HMI。ダークテーマの OEE カード、ボトルカウンター、プロセスフロー図、アナンシエーターパネル、ゲージ
Ubuntu 上の Factory デモのライン概要。プロセス図、アナンシエーター、ゲージ、カウンターを表示しています。
ポンプ用の 3 つの大型ゲージを備えた設備詳細ページ
ライブゲージ付きの設備詳細
生産量とエネルギーの数値を表示した工場のマップ
マップ上の工場

Fleet、ERP、Project Portfolio

Fleet デモは、スペインとポルトガルの地図上で 48 台の車両を追跡し、ルート、停車地、車両グリッド、アラート一覧を表示します。ERP デモは、KPI カード、チャート、ゲージ、顧客マップを並べたダッシュボードで始まり、顧客、計画、レポート、分析のページへと続きます。Portfolio デモは、12 件のプロジェクトと 520 件のタスクをクリティカルパス付きのガントチャートでスケジューリングします。

Linux 上の車両運行管理アプリケーション。KPI カード、車両とルートを表示した地図、車両グリッド、アラート
ライブの車両運行管理。KPI カード、車両とルートを表示した地図、2 つのグリッド。
KPI カード、チャート、ゲージ、地図を備えた ERP ダッシュボード
ERP ダッシュボード
ドライバーごとに色分けされた配送の週間カレンダー
配送計画カレンダー
ゲージ、バブルチャート、地図、ツリーマップを備えたプロジェクトポートフォリオの概要
ポートフォリオ概要
クリティカルパス付きのポートフォリオガントチャート
クリティカルパス付きのポートフォリオガント
色分けされたレーンで描かれたハブネットワークのダイアグラム
ハブネットワーク図
データセットにバインドされた組織図
データセットから作成した組織図

sgcUI が Linux デスクトップにもたらすもの

sgcUI は、1 つのコア、1 つのテーマエンジン、1 つの作法を共有するネイティブ UI 製品のスイートです。Linux64 では、スイート全体の FireMonkey コントロールを利用できます。

Linux 上の sgcCharts。レンジエリア、折れ線、目標バンド付きの棒グラフ
sgcCharts
Linux 上の sgcGauges ギャラリー。円形、リング、コンパス、時計、デジタル、LED のゲージ
sgcGauges
Linux 上の sgcPlanner ガント。リンク、ベースライン、クリティカルパス付き
sgcPlanner ガント
Linux 上の sgcPivotGrid。ヒートマップのセルとフィールドリスト付き
sgcPivotGrid
Linux 上の sgcMaps。レイヤーパネル、ズームボタン、スケールバー付き
sgcMaps
Linux 上のツリーマップとファネルチャート
ツリーマップとファネル

グリッドについては、専用の画像を用意しました。Ubuntu 上で 100,000 行を表示している FilterAndFind デモで、ヘッダーのフィルターボタン、フィルター行、“Ask the grid” ボックスが見えます。マウスホイールで滑らかにスクロールでき、Ctrl+End を押すと一気に 100,000 行目へ移動します。

Linux 上で 100,000 行を表示する sgcGrid。ヘッダーフィルターとフィルター行付き
Ubuntu 上で 100,000 行を表示する sgcGrid。

必要なもの

Linux64 上の sgcUI は、Ubuntu 22.04 と Ubuntu 24.04 で、Delphi 13 と FMXLinux 1.84 を使ってテストしています。

最初の Linux64 アプリケーションを作る

1FMXLinux をインストールIDE 内の GetIt から
2Linux に接続PAServer と Linux SDK
3プラットフォームを追加FireMonkey プロジェクトに Linux 64-bit を追加
4実行同じフォームが Linux デスクトップで動きます
  1. GetIt から FMXLinux をインストールし、IDE を再起動します。
  2. Linux マシンで PAServer を起動し、IDE で接続プロファイルを作成して Linux SDK をインポートします。手順は通常の Delphi Linux64 プロジェクトと同じです。
  3. sgcUI の Source フォルダーを Linux 64-bit のライブラリパス(ツール、オプション、言語、Delphi、ライブラリ)に追加し、コンパイラがそのプラットフォーム用の sgcUI ユニットを見つけられるようにします。
  4. FireMonkey アプリケーションを開くか新規作成し、プロジェクトウィンドウでターゲットプラットフォームの Linux 64-bit を追加して選択します。
  5. フォームに sgcUI コントロールを配置して実行します。IDE がプロジェクトをコンパイルし、PAServer 経由でデプロイして、Linux デスクトップ上で起動します。

Linux 専用のコードを書く必要はありません。次は Hello Grid クイックスタートの完全なソースです。デザイナーで 3 つの列を定義した、TsgcFMXGrid を 1 つ置いたフォームです。

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;

チャートも同じ要領です。TsgcFMXChart コントロールが TsgcChart コンポーネントを描画し、各シリーズもコンポーネントで、ここでは TsgcChartSeries_Line を使います。コードはポイントを追加するだけです。

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;

プロジェクトウィンドウで Windows、macOS、Linux 64-bit のいずれかを選べば、同じ 2 つのフォームがそれぞれのプラットフォームで動きます。

フォームから高度なアプリケーションへ

上で紹介した Suite デモは同じ部品で作られており、ソースコードは sgcUI に同梱されています。大規模な Linux64 アプリケーションを管理しやすくするための考え方を紹介します。

今すぐ試す:コンパイル済み Linux64 デモ 274 本

Linux で sgcUI が動くところを見るのに、Delphi も FMXLinux もライセンスも必要ありません。全製品の FireMonkey デモ、合計 274 本のプログラムを Linux64 向けにコンパイルし、1 つのアーカイブにまとめました。

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

デモは、Ubuntu 22.04 以降、および glibc 2.34 以降と GTK3 を備えた他のディストリビューションで、X11 または XWayland ディスプレイ上で動作します。オンラインマップを使うデモには、libcurl とインターネット接続も必要です。詳細はアーカイブ内の README.txt をご覧ください。

ご注意ください。 プリンターへの印刷、スクリーンリーダーのサポート、カスタムのウィンドウタイトルバーは Linux64 では利用できず、フローティングドッキングパネルも無効です。それ以外の FireMonkey コントロールは、他のプラットフォームと同じコードです。詳細は sgcUI のページと、ヘルプの Platforms トピックに記載しています。

1 つのコードベースで、すべてのデスクトップへ

Windows、macOS、そして Linux64 まで、同じ FireMonkey フォームと同じ sgcUI コントロールで対応できます。コンパイル済みのデモをダウンロードして、お手元の Linux デスクトップで動作をご確認ください。

ご質問やご意見がありましたら、お問い合わせください。コードを書いた本人たちがお返事します。