Курсовая работа: Кроссплатформенное программирование для Linux
Времена безраздельного господства операционных систем Windows для домашних компьютеров и корпоративных рабочих станций подходят к концу. Все большее число рядовых компьютеров работает под управлением других операционных систем. Среди них по праву выделяется операционная система Linux, сочетающая в себе открытость и хорошие возможности настройки.
В этих условиях, когда бывает необходимо разрабатывать программное обеспечение с одними функциями сразу для нескольких операционных систем, программистам была бы весьма полезна среда разработки, позволяющая делать это по возможности с наименьшими затратами.
Существует вполне самостоятельный программный продукт Kylix, который и предназначен для разработки программ для Linux. Delphi и Kylix очень схожи, но каждый из них работает в своей операционной системе и о переносе программ не может быть и речи.
Однако, Delphi 7 действительно позволяет писать программы для Linux.
Теперь разработчик, использующий Delphi 7, может создавать приложения, исходный код которых будет компилироваться без каких-либо дополнительных усилий не только в Delphi для Windows, но и в Kylix для Linux.
Для этого необходимо выбрать в Delphi соответствующий тип проекта и затем написать приложение. При этом разработчику будут доступны многие компоненты Палитры компонентов и соответственно возможности визуального программирования в Delphi.
Несомненное преимущество кроссплатформенного программирования в Delphi заключается в том, что для совместного использования доступны не только обычные конструкции и операторы языка программирования, но и множество высокоуровневых компонентов для визуального программирования.
Кроссплатформенная разработка приложений в Delphi стала возможной благодаря созданию специального варианта библиотеки VCL, которая называется Component Library for Cross Platform (CLX). В основе CLX лежит иерархия специально созданных базовых классов, обеспечивающих работоспособность визуальных компонентов – потомков сразу в двух операционных системах. Конечно, набор компонентов CLX не столь богат по сравнению с нынешним разнообразием VCL, однако вполне сравним с Палитрой компонентов Delphi или Delphi 2.
Конечно же, серьезное кроссплатформенное программирование, включающее, например, взаимодействие с памятью, обработку процессов с учетом их приоритетов и т. д., потребует скрупулезной и вдумчивой работы. Но это неизбежно – совмещение возможностей двух операционных систем в одной программе – дело нелегкое, и проблема здесь не столько в недостатках среды разработки, сколько в сложности самой задачи. Delphi берет на себя все заботы по созданию интерфейса кроссплатформенной программы.
В моей работе рассматриваются следующие вопросы:
состав стандартного проекта CLX и кроссплатформенные элементы Репозитория;
CLX – библиотека компонентов кроссплатформенного программирования;
иерархия классов CLX, общие свойства и методы компонентов, их отличия от компонентов VCL;
особенности кроссплатформенного программирования Windows – Linux;
дополнительные возможности кроссплатформенных приложений.
1 Проект CLX
1.1 Основные сведения
Создание кроссплатформенного приложения в Delphi требует выполнения абсолютно стандартных действий. Достаточно создать новый проект, выбрав для этого в Репозитории пункт CLX Application.
На первый взгляд новый проект ничем не отличается от обычного, но это не так. Среда разработки тоже претерпела некоторые изменения. В Палитре компонентов теперь представлены компоненты из библиотеки CLX, той самой, которую использует Kylix. Другие немногочисленные изменения в составе проекта также связаны с необходимостью совмещения с Kylix.
Проект CLX отличается от обычного типом файла, содержащего информацию о форме. Если в обычном проекте файл формы имеет расширение *.dfm, то в проекте CLX это файл с расширением *.xfm, одинаково понятный и для Delphi, и для Kylix, так как и те и другие файлы являются обычными текстовыми файлами и сведения о форме представлены в них в текстовом виде. Примерно то же самое мы увидим, просматривая форму в текстовом представлении в окне Редактора Delphi (команда View as Text из всплывающего меню формы) [1].
Форма и модуль CLX связываются при помощи директивы {$R *.xfm}.
Кроме этого, в проектах Delphi и Kylix различаются расширения файла опций проекта (в Delphi – *.dof, в Kylix – *.kof). Однако это не принципиальная проблема и при отсутствии такого файла среда разработки создаст новый с настройками по умолчанию. Таким образом, всегда можно придумать как минимум несколько способов перенести текстовое содержимое файла настроек проекта.
По синтаксису и основным элементам исходный код не отличается от стандартного. Файл проекта содержит список модулей и секцию begin, end. Файл модуля также обычен, за исключением списка используемых модулей в секции uses. Модули с непривычными названиями QControis, QForms и др. содержат базовые классы библиотеки CLX.
В остальном проект CLX подобен стандартному проекту Delphi и в нем можно использовать весь инструментарий среды разработки и приемы визуального программирования.
В подтверждение этого при помощи нескольких изменений в проекте VCL можно легко преобразовать проект VCL в CLX и обратно. Для этого понадобится любой текстовый редактор. И конечно проект не должен содержать компонентов, которые не входят в состав библиотеки CLX.
В файле проекта в секции uses сылка на модуль Forms заменяется на QForms.
В файлах модулей заменяются ссылки на модули VCL на модули CLX. Например, секция uses может выглядеть так:
uses SysUtils, Types, Classes, QGraphics, QControls, QForms;
В файлах модулей заменяется директива {$R *.dfm} на {$R *.xfm}.