sgcUI no Linux64 com FMXLinux: grades, gráficos, medidores e aplicações completas para o desktop Linux

· Componentes
sgcUI no Linux64 com FMXLinux: grades, gráficos, medidores e aplicações completas para o desktop Linux | Blog eSeGeCe
>_ Novo · sgcUI no Linux64

Sua aplicação desktop Delphi.
Agora no Linux.

Com o FMXLinux instalado, os controles FireMonkey do sgcUI rodam em aplicações desktop reais no Linux64. Os mesmos formulários e o mesmo código que você entrega no Windows e no macOS, com o mesmo visual.

  • Delphi
  • FireMonkey
  • FMXLinux
  • Linux64
  • Ubuntu 22.04 ou superior
Uma aplicação de mesa de trading criada com sgcUI rodando em um desktop Linux: grade de watchlist, gráfico de candlestick, treemap de setores e medidores em tema escuro
274demos Linux64
17produtos de UI
5plataformas FireMonkey
1base de código

O Linux sempre foi a plataforma mais difícil para quem desenvolve aplicações desktop em Delphi. O compilador gera código para Linux64, mas uma aplicação visual precisa do FireMonkey, e o FireMonkey no Linux precisa do add-on FMXLinux. Até agora o sgcUI oferecia o Linux64 apenas para as partes não visuais: modelos de dados, importação e exportação e renderização sem interface para PNG e SVG.

Isso muda hoje. Com o FMXLinux instalado na IDE, os controles FireMonkey do sgcUI compilam e rodam no Linux64: a grade de dados, os gráficos, os medidores, os dashboards, o planejador, os mapas, os diagramas e o restante da suíte. Todas as capturas de tela deste artigo foram feitas no Ubuntu, a partir dos mesmos projetos de demonstração que rodam no Windows e no macOS.

O sgcUI no Linux64 em um minuto, gravado a partir das demos reais rodando no Ubuntu. Também no YouTube.

Aplicações completas, não apenas controles

A melhor maneira de avaliar uma suíte de UI é olhar para aplicações completas. As demos Suite do sgcUI são exatamente isso: cada uma combina uma dúzia de produtos em um único programa, com navegação, dados ao vivo e várias páginas. Todas elas agora rodam no Linux64, sem nenhuma alteração.

Uma mesa de trading

A demo Markets é alimentada por um simulador que envia cerca de 1.000 atualizações por segundo. A grade de watchlist pisca em vermelho e verde conforme os preços se movem, o gráfico de candlestick traz bandas de Bollinger, médias móveis, volume e painéis de RSI, e um treemap de setores mostra para onde o mercado está indo.

Gráfico de candlestick para análise, com indicadores, no Linux
Gráfico de análise com indicadores
Mapa de calor do mercado por setor no Linux
Mapa de calor do mercado por setor

Uma sala de controle de fábrica

A demo Factory é uma HMI para uma linha de engarrafamento. Ela mostra cartões de OEE, um contador de garrafas de sete segmentos, o fluxo de processo da linha com conectores animados, um painel de anunciadores, medidores radiais e lineares e uma tendência ao vivo de doze sensores com limites de alarme.

HMI de fábrica no Linux: cartões de OEE, contador de garrafas, diagrama de fluxo de processo, painel de anunciadores e medidores em tema escuro
A visão geral da linha na demo Factory no Ubuntu: diagrama de processo, anunciadores, medidores e contadores.
Página de detalhe de um ativo com três medidores grandes de uma bomba
Detalhe do ativo com medidores ao vivo
Mapa das plantas com números de produção e energia
Plantas no mapa

Fleet, ERP e Project Portfolio

A demo Fleet acompanha 48 veículos em um mapa da Espanha e de Portugal, com rotas, paradas, uma grade de veículos e uma lista de alertas. A demo ERP abre com um dashboard de cartões de KPI, gráficos, um medidor e um mapa de clientes, e segue com páginas de clientes, planejamento, relatórios e análises. A demo Portfolio programa 12 projetos e 520 tarefas em um gráfico de Gantt com o caminho crítico.

Aplicação de operações de frota no Linux: cartões de KPI, um mapa com veículos e rotas, uma grade de veículos e alertas
Operações de frota ao vivo: cartões de KPI, o mapa com veículos e rotas e duas grades.
Dashboard de ERP com cartões de KPI, gráficos, um medidor e um mapa
Dashboard de ERP
Calendário semanal de entregas colorido por motorista
Calendário de planejamento de entregas
Visão geral do portfólio de projetos com medidores, um gráfico de bolhas, um mapa e um treemap
Visão geral do portfólio
Gráfico de Gantt do portfólio com o caminho crítico
Gantt do portfólio com caminho crítico
Rede de hubs desenhada como um diagrama com faixas coloridas
Diagrama da rede de hubs
Organograma vinculado a um dataset
Organograma a partir de um dataset

O que o sgcUI traz para o desktop Linux

O sgcUI é uma suíte de produtos de UI nativos que compartilham um único núcleo, um único motor de temas e uma única forma de trabalhar. No Linux64, os controles FireMonkey de toda a suíte estão disponíveis:

sgcCharts no Linux: área com intervalo, linha e barras com uma faixa de meta
sgcCharts
Galeria do sgcGauges no Linux: medidores radiais, em anel, bússola, relógio, digitais e de LED
sgcGauges
Gantt do sgcPlanner no Linux com vínculos, linha de base e caminho crítico
Gantt do sgcPlanner
sgcPivotGrid no Linux com células de mapa de calor e uma lista de campos
sgcPivotGrid
sgcMaps no Linux com um painel de camadas, botões de zoom e uma barra de escala
sgcMaps
Gráficos de treemap e de funil no Linux
Treemap e funil

A grade merece uma imagem só para ela. Esta é a demo FilterAndFind com 100.000 linhas no Ubuntu, com botões de filtro nos cabeçalhos, uma linha de filtro e a caixa “Ask the grid”. A roda do mouse rola a grade com suavidade e Ctrl+End salta direto para a linha 100.000.

sgcGrid com 100.000 linhas no Linux, com filtros nos cabeçalhos e uma linha de filtro
sgcGrid com 100.000 linhas no Ubuntu.

O que você precisa

O sgcUI no Linux64 foi testado com Delphi 13 e FMXLinux 1.84 no Ubuntu 22.04 e no Ubuntu 24.04.

Crie sua primeira aplicação Linux64

1Instale o FMXLinuxPelo GetIt, dentro da IDE
2Conecte o LinuxPAServer e o SDK do Linux
3Adicione a plataformaLinux 64-bit no seu projeto FireMonkey
4ExecuteO mesmo formulário, no desktop Linux
  1. Instale o FMXLinux pelo GetIt e reinicie a IDE.
  2. Inicie o PAServer na máquina Linux, crie um perfil de conexão na IDE e importe o SDK do Linux, como em qualquer projeto Delphi Linux64.
  3. Adicione a pasta Source do sgcUI ao library path do Linux 64-bit (Tools, Options, Language, Delphi, Library), para que o compilador encontre as units do sgcUI para essa plataforma.
  4. Abra ou crie uma aplicação FireMonkey, adicione a plataforma de destino Linux 64-bit na janela Projects e selecione-a.
  5. Solte os controles do sgcUI no formulário e execute. A IDE compila o projeto, faz o deploy pelo PAServer e o inicia no desktop Linux.

Não há código específico de Linux para escrever. Este é o código-fonte completo do quick start Hello Grid, um formulário com um TsgcFMXGrid cujas três colunas são definidas no designer:

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;

Um gráfico funciona da mesma forma. Um controle TsgcFMXChart desenha um componente TsgcChart, e cada série também é um componente, aqui um TsgcChartSeries_Line. O único código adiciona os pontos:

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;

Selecione Windows, macOS ou Linux 64-bit na janela Projects e os mesmos dois formulários rodam em cada uma dessas plataformas.

De um formulário a uma aplicação avançada

As demos Suite acima são construídas com as mesmas peças, e o código-fonte delas acompanha o sgcUI. Estas são as ideias que tornam uma aplicação Linux64 grande fácil de manter:

Experimente agora: 274 demos compiladas para Linux64

Você não precisa de Delphi, de FMXLinux nem de licença para ver o sgcUI rodando no Linux. As demos FireMonkey de todos os produtos, 274 programas no total, estão compiladas para Linux64 e reunidas em um único arquivo:

Baixar 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

As demos rodam no Ubuntu 22.04 ou superior e em outras distribuições com glibc 2.34 ou superior e GTK3, em um display X11 ou XWayland. As demos com mapas online também precisam de libcurl e de conexão com a Internet. O README.txt do arquivo traz os detalhes.

Bom saber. Impressão em impressora, suporte a leitores de tela e a barra de título personalizada da janela não estão disponíveis no Linux64, e os painéis de docking flutuantes ficam desativados ali. Todo o resto dos controles FireMonkey usa o mesmo código das outras plataformas. A página do sgcUI e o tópico Platforms da ajuda listam os detalhes.

Uma base de código, todos os desktops

Windows, macOS e agora Linux64, com os mesmos formulários FireMonkey e os mesmos controles sgcUI. Baixe as demos compiladas e veja-as rodando no seu próprio desktop Linux.

Dúvidas ou comentários? Entre em contato, você receberá a resposta de quem escreveu o código.