sgcUI en Linux64 con FMXLinux: grids, gráficos, indicadores y aplicaciones completas para el escritorio Linux

· Componentes
sgcUI en Linux64 con FMXLinux: grids, gráficos, indicadores y aplicaciones completas para el escritorio Linux | Blog de eSeGeCe
>_ Novedad · sgcUI en Linux64

Tu aplicación de escritorio Delphi.
Ahora en Linux.

Con FMXLinux instalado, los controles FireMonkey de sgcUI funcionan en aplicaciones de escritorio reales en Linux64. Los mismos formularios y el mismo código que distribuyes en Windows y macOS, con el mismo aspecto.

  • Delphi
  • FireMonkey
  • FMXLinux
  • Linux64
  • Ubuntu 22.04 o posterior
Una aplicación de mesa de trading creada con sgcUI en un escritorio Linux: grid de lista de seguimiento, gráfico de velas, treemap de sectores e indicadores con tema oscuro
274demos para Linux64
17productos de UI
5plataformas FireMonkey
1base de código

Linux siempre ha sido la plataforma difícil para los desarrolladores de escritorio con Delphi. El compilador genera código para Linux64, pero una aplicación visual necesita FireMonkey, y FireMonkey en Linux necesita el complemento FMXLinux. Hasta ahora sgcUI ofrecía Linux64 solo para las partes no visuales: modelos de datos, importación y exportación, y renderizado sin interfaz a PNG y SVG.

Eso cambia hoy. Con FMXLinux instalado en el IDE, los controles FireMonkey de sgcUI se compilan y se ejecutan en Linux64: el grid de datos, los gráficos, los indicadores, los paneles, el planificador, los mapas, los diagramas y el resto de la suite. Todas las capturas de este artículo se tomaron en Ubuntu, a partir de los mismos proyectos de demo que se ejecutan en Windows y macOS.

sgcUI en Linux64 en un minuto, grabado con las demos reales ejecutándose en Ubuntu. También en YouTube.

Aplicaciones completas, no solo controles

La mejor manera de juzgar una suite de UI es ver aplicaciones completas. Las demos de la Suite sgcUI son justo eso: cada una combina una docena de productos en un solo programa con navegación, datos en vivo y varias páginas. Todas funcionan ahora en Linux64, sin cambios.

Una mesa de trading

La demo Markets se alimenta de un simulador que envía unas 1.000 actualizaciones por segundo. El grid de la lista de seguimiento parpadea en rojo y verde según se mueven los precios, el gráfico de velas incluye bandas de Bollinger, medias móviles, volumen y paneles de RSI, y un treemap de sectores muestra hacia dónde va el mercado.

Gráfico de velas de análisis con indicadores en Linux
Gráfico de análisis con indicadores
Mapa de calor del mercado por sectores en Linux
Mapa de calor del mercado por sectores

Una sala de control de fábrica

La demo Factory es un HMI para una planta embotelladora. Muestra tarjetas de OEE, un contador de botellas de siete segmentos, el flujo de proceso de la línea con conectores animados, un panel de anunciadores, indicadores radiales y lineales y una tendencia en vivo de doce sensores con límites de alarma.

HMI de fábrica en Linux: tarjetas de OEE, contador de botellas, diagrama de flujo de proceso, panel de anunciadores e indicadores con tema oscuro
La vista general de la línea en la demo Factory sobre Ubuntu: diagrama de proceso, anunciadores, indicadores y contadores.
Página de detalle de un activo con tres indicadores grandes de una bomba
Detalle de un activo con indicadores en vivo
Mapa de las plantas con cifras de producción y energía
Las plantas en el mapa

Flotas, ERP y cartera de proyectos

La demo Fleet sigue 48 vehículos en un mapa de España y Portugal, con rutas, paradas, un grid de vehículos y una lista de alertas. La demo ERP se abre con un panel de tarjetas KPI, gráficos, un indicador y un mapa de clientes, y continúa con páginas de clientes, planificación, informes y analítica. La demo Portfolio planifica 12 proyectos y 520 tareas en un diagrama de Gantt con la ruta crítica.

Aplicación de operaciones de flota en Linux: tarjetas KPI, un mapa con vehículos y rutas, un grid de vehículos y alertas
Operaciones de flota en vivo: tarjetas KPI, el mapa con vehículos y rutas, y dos grids.
Panel ERP con tarjetas KPI, gráficos, un indicador y un mapa
Panel ERP
Calendario semanal de entregas coloreado por conductor
Calendario de planificación de entregas
Resumen de la cartera de proyectos con indicadores, un gráfico de burbujas, un mapa y un treemap
Resumen de la cartera
Diagrama de Gantt de la cartera con la ruta crítica
Gantt de la cartera con ruta crítica
Red de centros dibujada como un diagrama con carriles de colores
Diagrama de la red de centros
Organigrama vinculado a un conjunto de datos
Organigrama a partir de un conjunto de datos

Lo que sgcUI aporta al escritorio Linux

sgcUI es una suite de productos de UI nativos que comparten un núcleo, un motor de temas y una forma de trabajar. En Linux64 están disponibles los controles FireMonkey de toda la suite:

sgcCharts en Linux: área de rango, línea y barras con una banda de objetivo
sgcCharts
Galería de sgcGauges en Linux: indicadores radiales, de anillo, brújula, reloj, digitales y LED
sgcGauges
Gantt de sgcPlanner en Linux con vínculos, línea base y ruta crítica
Gantt de sgcPlanner
sgcPivotGrid en Linux con celdas de mapa de calor y una lista de campos
sgcPivotGrid
sgcMaps en Linux con un panel de capas, botones de zoom y una barra de escala
sgcMaps
Gráficos de treemap y de embudo en Linux
Treemap y embudo

El grid merece su propia imagen. Esta es la demo FilterAndFind con 100.000 filas en Ubuntu, con botones de filtro en las cabeceras, una fila de filtro y el cuadro “Ask the grid”. La rueda del ratón lo desplaza con fluidez y Ctrl+Fin salta directamente a la fila 100.000.

sgcGrid con 100.000 filas en Linux, con filtros de cabecera y una fila de filtro
sgcGrid con 100.000 filas en Ubuntu.

Qué necesitas

sgcUI en Linux64 se ha probado con Delphi 13 y FMXLinux 1.84 en Ubuntu 22.04 y Ubuntu 24.04.

Crea tu primera aplicación para Linux64

1Instala FMXLinuxDesde GetIt, dentro del IDE
2Conecta LinuxPAServer y el SDK de Linux
3Añade la plataformaLinux de 64 bits en tu proyecto FireMonkey
4EjecutaEl mismo formulario, en el escritorio Linux
  1. Instala FMXLinux desde GetIt y reinicia el IDE.
  2. Inicia PAServer en la máquina Linux, crea un perfil de conexión en el IDE e importa el SDK de Linux, como en cualquier proyecto Delphi para Linux64.
  3. Añade la carpeta Source de sgcUI a la ruta de biblioteca de Linux de 64 bits (Herramientas, Opciones, Lenguaje, Delphi, Biblioteca), para que el compilador encuentre las unidades de sgcUI para esa plataforma.
  4. Abre o crea una aplicación FireMonkey, añade la plataforma de destino Linux de 64 bits en la ventana Proyectos y selecciónala.
  5. Coloca los controles de sgcUI en el formulario y ejecuta. El IDE compila el proyecto, lo despliega mediante PAServer y lo inicia en el escritorio Linux.

No hay que escribir código específico de Linux. Este es el código fuente completo del inicio rápido Hello Grid, un formulario con un TsgcFMXGrid cuyas tres columnas se definen en el diseñador:

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 gráfico funciona igual. Un control TsgcFMXChart pinta un componente TsgcChart, y cada serie también es un componente, aquí un TsgcChartSeries_Line. El único código añade los puntos:

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;

Selecciona Windows, macOS o Linux de 64 bits en la ventana Proyectos y los mismos dos formularios se ejecutan en cada una de ellas.

De un formulario a una aplicación avanzada

Las demos de la Suite anteriores están construidas con las mismas piezas, y su código fuente se incluye con sgcUI. Estas son las ideas que hacen manejable una aplicación grande para Linux64:

Pruébalo ahora: 274 demos compiladas para Linux64

No necesitas Delphi, FMXLinux ni una licencia para ver sgcUI funcionando en Linux. Las demos FireMonkey de cada producto, 274 programas en total, están compiladas para Linux64 y empaquetadas en un único archivo:

Descarga 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

Las demos funcionan en Ubuntu 22.04 o posterior y en otras distribuciones con glibc 2.34 o posterior y GTK3, sobre una pantalla X11 o XWayland. Las demos con mapas en línea necesitan además libcurl y conexión a Internet. El archivo README.txt del paquete tiene los detalles.

Conviene saber. La impresión en impresora, la compatibilidad con lectores de pantalla y la barra de título de ventana personalizada no están disponibles en Linux64, y los paneles de acoplamiento flotantes están desactivados allí. Todo lo demás en los controles FireMonkey es el mismo código que en las otras plataformas. La página de sgcUI y el tema Platforms de la ayuda enumeran los detalles.

Una base de código, todos los escritorios

Windows, macOS y ahora Linux64, con los mismos formularios FireMonkey y los mismos controles de sgcUI. Descarga las demos compiladas y compruébalo en tu propio escritorio Linux.

¿Tienes preguntas o comentarios? Ponte en contacto, recibirás respuesta de las personas que escribieron el código.