Найти в Дзене

Настройка RAD Studio для UI кроссплатформенного приложения.

Данная статья представляет собой больше памятку в картинках, чтоб не забыть. Ибо постоянные танцы с бубном и ритуалы серой магии предметно напрягают. Текущая статья является логическим продолжением статьи. В текущей статье рассмотрю два варианта создания кроссплатформенного приложения на Delphi, в частности для Linux платформы. Так как есть задача создать приложение использующее User Interface, то для быстрого старта Linux server подходит не очень. В принципе можно и самостоятельно установить графический интерфейс, однако это не является целью публикации. В качестве гостевой системы использовал ubuntu-24.10-desktop-amd64.iso. Предварительно пробовал ubuntu-24.04-noble-desktop-amd64.iso однако финальный этап настройки файлов затянулся на 40 минут. Настройки системы были такие же как указывал ранее. После установки системы делаю обновления системы: sudo apt update Устанавливаю билдеры: sudo apt install build-essential Устанавливаю SSH: sudo apt install openssh-server Включаю SSH: sudo sy
Оглавление

Данная статья представляет собой больше памятку в картинках, чтоб не забыть. Ибо постоянные танцы с бубном и ритуалы серой магии предметно напрягают. Текущая статья является логическим продолжением статьи.

В текущей статье рассмотрю два варианта создания кроссплатформенного приложения на Delphi, в частности для Linux платформы.

Linux

Так как есть задача создать приложение использующее User Interface, то для быстрого старта Linux server подходит не очень. В принципе можно и самостоятельно установить графический интерфейс, однако это не является целью публикации. В качестве гостевой системы использовал ubuntu-24.10-desktop-amd64.iso. Предварительно пробовал ubuntu-24.04-noble-desktop-amd64.iso однако финальный этап настройки файлов затянулся на 40 минут. Настройки системы были такие же как указывал ранее.

После установки системы делаю обновления системы:

sudo apt update

Устанавливаю билдеры:

sudo apt install build-essential

Устанавливаю SSH:

sudo apt install openssh-server

Включаю SSH:

sudo systemctl enable --now ssh

Рекомендую установить Midnight Commander:

sudo apt install mc

Устанавливаю библиотеку для разработки GL:

sudo apt install libgl-dev

Устанавливаю пакет сжатия данных:

sudo apt install zlib1g-dev

Последние два пакета устанавливаю превентивно.

Определяю IP адрес:

ip addr

Соединяюсь с помощью WinSCP и загружаю, распаковываю и запускаю PAServer. Как это сделать описывал ранее.

Рекомендую отключить спящий режим и гибернацию, почему-то адекватно из этих состояний гостевая система у меня не выходит:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Так же предлагается в файле /etc/systemd/logind.conf декомментировать и поправить строки:

[Login]
HandleLidSwitch=ignore
HandleLidSwitchDocked=ignore

Вуаля, платформа Linux готова для работы.

FMX Linux

Для создания кросс-платформенного UI приложения можно воспользоваться набором инструментов FmxLinux. FmxLinux (также известный как FireMonkey для Linux) позволяет создавать UI-приложения для Linux на Delphi. Он расширяет кросс-платформенную структуру FireMonkey, принадлежащую RAD Studio.

Рисунок 1. - Фрагмент интерфейса сайта.
Рисунок 1. - Фрагмент интерфейса сайта.

На сайте доступна бесплатная ознакомительная версия. На момент написания доступна версия fmxlinux-trial-1_78.exe. Её необходимо скачать и установить.

Создаём новое приложение: File --> New --> Multi-Device Application - Delphi

Рисунок 2. - Создаём новое приложение.
Рисунок 2. - Создаём новое приложение.

Добавим компоненты и простой код:

Рисунок 3. - Компонент и код.
Рисунок 3. - Компонент и код.

В целевой платформе добавляем и активируем Linux.

Рисунок 4. - Активирование платформы.
Рисунок 4. - Активирование платформы.

Обновляем локальный кэш SDK. Гостевая система должна быть готова к работе и запущен PAServer, как это сделать описано в прошлой статье.

Рисунок 5. - Одновление локального кэша.
Рисунок 5. - Одновление локального кэша.

Компилим, запускаем:

Рисунок 6. - IU прилажение в Linix.
Рисунок 6. - IU прилажение в Linix.

Приложения написанные с использование FireMonkey обладают огромнейшей гибкостью в настройке визуальных свойств. Однако есть и свои особенности.

Cross VCL

Как альтернатива FMX, которая использует только свои компоненты, есть альтернативный вариант создавать приложения для Linux (и не только) используя библиотеку визуальных компонентов VCL.

Рисунок 7. - Фрагмент интерфейса сайта.
Рисунок 7. - Фрагмент интерфейса сайта.

На сайте доступна бесплатная ознакомительная версия. На момент написания доступна версия crossvcl-trial-1_72.exe. Её необходимо скачать и установить.

Дизайн сайта напоминает дизайн от FMX, вернее является его некоторой копией. Это и не удивительно, т.к. разработчик обоих инструментов является Евгений Крюков.

Создаём новое приложение: File --> New --> Windows VCL Application - Delphi

Рисунок 8. - Создаём новое приложение.
Рисунок 8. - Создаём новое приложение.

Добавляем компонент и обработчик события:

Рисунок 9. - Программа.
Рисунок 9. - Программа.

Следующим шагом в дереве проекта необходимо вызвать контекстное меню на имени проекта и добавить новую платформу, чтобы появился Linux.

Рисунок 10. - Добавление новой платформы.
Рисунок 10. - Добавление новой платформы.

Активируем Linux, выполняем:

Рисунок 11. - Выполнение VCL программы.
Рисунок 11. - Выполнение VCL программы.

У этого инструмента есть свои нюансы, но в целом простенькие приложения писать можно.