Кроссплатформенное программирование для Linux

Проект CLX

Создание кроссплатформенного приложения в Delphi требует выполнения абсолютно стандартных действий. Достаточно создать новый проект, выбрав для этого в Репозитории пункт CLX Application.

На первый взгляд новый проект ничем не отличается от обычного, но это не так. Да и среда разработки тоже претерпела некоторые изменения. В Палитре компонентов теперь представлены компоненты из библиотеки CLX, той самой, которую использует Kylix. Да и немногочисленные изменения в составе проекта также связаны с необходимостью совмещения с Kylix.

Проект CLX отличается от обычного типом файла, содержащего информацию о форме. Если в обычном проекте файл формы имеет расширение dfm, то в проекте CLX это файл с расширением xfm, одинаково понятный и для Delphi, и для Kylix, так так и те и другие файлы являются обычными текстовыми файлами и сведения о форме представлены в них в текстовом виде. Примерно то же самое вы видите, просматривая форму в текстовом представлении в окне Редактора Delphi (команда View as Text из всплывающего меню формы).

Обратите внимание, что форма и модуль CLX связываются при помощи директивы {$R *.xfm}.

Кроме этого, в проектах Delphi и Kylix различаются расширения файла опций проекта (в Delphi — dof, в Kylix — kof). Однако это не принципиальная проблема и при отсутствии такого файла среда разработки создаст новый с настройками по умолчанию. Таким образом, всегда можно придумать как минимум несколько способов перенести текстовое содержимое файла настроек проекта.

Теперь рассмотрим сгенерированный Delphi исходный код проекта — это даст нам несколько интересных наблюдений. По синтаксису и основным элементам исходный код не отличается от стандартного. Файл проекта содержит список модулей и секцию begin, .end. Файл модуля также обычен, за исключением списка используемых модулей в секции uses.

Выше мы говорили о библиотеке компонентов CLX и ее роли в кроссплатформенной разработке. И модули с непривычными названиями QControis, QForms и др. как раз содержат базовые классы библиотеки CLX.

В остальном проект CLX подобен стандартному проекту Delphi и в нем можно использовать весь инструментарий среды разработки и приемы визуального программирования.

В подтверждение сказанного при помощи нескольких изменений в проекте VCL мы можем легко преобразовать проект VCL в CLX и обратно. Для этого понадобится любой текстовый редактор. И конечно проект не должен содержать компонентов, которые не входят в состав библиотеки CLX.

1. В файле проекта в секции uses изменим ссылку на модуль Forms на QForms.

2. В файлах модулей заменим ссылки на модули VCL на модули CLX. Например, секция uses может выглядеть так:

uses SysUtils, Types, Classes, QGraphics, QControls, QForms;

3. В файлах модулей заменим директиву {$R *.dfm} на {$R *.xfm}.

4. В файлах форм заменим расширение dfm на xfm.

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

Что же касается непосредственно кода кроссплатформенного приложения для Linux, то основные принципы его создания рассматриваются ниже в этой главе.

При необходимости разработчик может добавлять к проекту новые шаблоны, используя для этого Репозиторий. При этом в Репозитории доступны только те шаблоны, которые можно использовать в проекте CLX (например, форма, модуль или модуль данных). Отсутствуют шаблоны, использование которых в Linux невозможно или поддержку которых не обеспечивает библиотека CLX (например, шаблон однодокументного приложения или шаблоны печатных форм Quick Report).

 


Знаете ли Вы, что диаграмма развертывания, Диаграмма применения, Диаграмма размещения Deployment diagram - это метод объектно-ориентированного проектирования, отображающий физические взаимосвязи между программными и аппаратными компонентами системы.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution