МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ Н.П. ОГАРЕВА
Факультет светотехнический
Кафедра светотехники
КУРСОВАЯ РАБОТА
КРОССПЛАТФОРМЕННОЕ ПРОГРАММИРОВАНИЕ ДЛЯ LINUX
Автор курсовой работы А.В. Богданов
Специальность 100101 сервис
Обозначение курсовой работы КР-02069964-100101-05-08
Руководитель работы С.Д. Шибайкин
Саранск 2008
МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМЕНИ Н.П. ОГАРЕВА
Факультет светотехнический
Кафедра светотехники
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ (ПРОЕКТ)
Студент ______________________________________________________
1 Тема _______________________________________________________
2 Срок представления работы (проекта) к защите___________________
3 Исходные данные для научного исследования (проектирования) __________________________________________________________________
4 Содержание курсовой работы (проекта)
4.1 _________________________________________________________
4.2 _________________________________________________________
4.3 _________________________________________________________
4.4 _________________________________________________________
Руководитель работы (проекта) _______________________________
подпись, дата, инициалы, фамилия
Задание принял к исполнению _________________________________
дата, подпись
Реферат
Дипломная работа содержит 26 страниц, 1 таблицу, 20 использованных источников, 2 приложения.
ПРОГРАММИРОВАНИЕ, LINUX, DELPHI, KYLIX, CLX, ПРИЛОЖЕНИЕ.
Объектом исследования является способ создания приложений для Linux в среде Delphi.
Цель работы – проанализировать принцип создания приложений для Linux на уровне пользователя и среды Delphi с целью выявления основных сходств и различий его c программированием для Windows.
Задачи: изучить состав стандартного проекта CLX и кроссплатформенные элементы Репозитория, иерархию классов CLX, общие свойства и методы компонентов, их отличия от компонентов VCL; особенности кроссплатформенного программирования, дополнительные возможности кроссплатформенных приложений.
Степень внедрения – частичная.
Содержание
Введение
1 Проект CLX
1.1 Общие сведения
1.2 Объектная концепция кроссплатформенного программирования
1.3 Библиотека компонентов CLX
1.4 Сходства и различия визуальных компонентов CLX и VCL
2 Особенности программирования для Linux
2.1 Общие сведения
2.2 Приложения баз данных для Linux
2.3 Internet-приложения для 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}.
В файлах форм меняется расширение с dfm на xfm.
Сохранив сделанные изменения и открыв проект в среде разработки, можно убедиться, что Delphi приняла его за проект CLX, изменила соответствующим образом Палитру компонентов и с готовностью компилирует его.
При необходимости разработчик может добавлять к проекту новые шаблоны, используя для этого Репозиторий. При этом в Репозитории доступны только те шаблоны, которые можно использовать в проекте CLX (например, форма, модуль или модуль данных). Отсутствуют шаблоны, использование которых в Linux невозможно или поддержку которых не обеспечивает библиотека CLX (например, шаблон однодокументного приложения или шаблоны печатных форм Quick Report).
1.2 Объектная концепция кроссплатформенного программирования
Программирование в Delphi подразумевает использование тех или иных классов, будь то формы, невизуальные компоненты или списки. Концепция кроссплатформенного программирования в рамках одной среды разработки имеет в виду наличие общего ядра, обеспечивающего функционирование зависимой от операционной системы программной надстройки. В Delphi таким ядром стала библиотека времени выполнения (RunTime Library – RTL), с использованием классов которой созданы библиотеки компонентов VCL и CLX.
В соответствии с этим для обеспечения кроссплатформенной разработки в исходные коды базовых классов Delphi были внесены изменения. Общим ядром библиотек компонентов VCL и CLX является иерархия классов TObject – TFersistent – TComponent, которые входят в состав RTL. Это позволяет среде разработки легко интегрировать кроссплатформенные проекты и работать со стандартными проектами для Windows.
Расхождения двух ветвей начинаются с класса TControl, который обеспечивает функциональность всех визуальных компонентов. Начиная с этого класса и далее, библиотеки компонентов имеют собственные исходные коды. Многие модули CLX имеют названия, аналогичные модулям VCL, но с добавлением первой буквы Q, например QControls.pas.