Delphi для профессионалов



 

ГЛАВА 4

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


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

В этих условиях, когда бывает необходимо разрабатывать программное обеспечение с одними функциями сразу для нескольких операционных систем, программистам была бы весьма полезна среда разработки, позволяющая делать это по возможности с наименьшими затратами. Оставим в стороне споры о причинах и следствиях, о пользе или вреде такого развития ситуации и займемся техническим вопросом, связанным с тематикой данной книги — как взаимодействует Delphi 7 и Linux.

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

Однако Delphi 7 действительно позволяет писать программы для Linux.

Дело в том, что теперь разработчик, использующий Delphi 7, может создавать приложения, исходный код которых будет компилироваться без каких-либо дополнительных усилий не только в Delphi для Windows, но и в Kylix для Linux.

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

Казалось бы, в переносимости кода широко распространенного и стандартизированного языка программирования нет ничего необычного и новаторского. Ведь можно же писать программы на ANSI С и компилировать их где угодно, так почему такая возможность для Pascal должна вызывать какие-либо эмоции? Несомненное преимущество кроссплатформенного программирования в Delphi заключается в том, что для совместного использования доступны не только обычные конструкции и операторы языка программирования, но и множество высокоуровневых компонентов для визуального программирования.

Кроссплатформенная разработка приложений в Delphi стала возможной благодаря созданию специального варианта библиотеки VCL, которая называется Component Library for Cross Platform (CLX). В основе CLX лежит иерархия специально созданных базовых классов, обеспечивающих работоспособность визуальных компонентов — потомков сразу в двух операционных системах. Конечно, набор компонентов CLX не столь богат по сравнению с нынешним разнообразием "супермаркета" VCL, однако вполне сравним с Палитрой компонентов Delphi или Delphi 2. А в те далекие времена при помощи Delphi разработчики создавали полный спектр программных продуктов и не слишком жаловались на скудость выбора компонентов.

Конечно же, серьезное кроссплатформенное программирование, включающее, например, взаимодействие с памятью, обработку процессов с учетом их приоритетов и т. д., потребует скрупулезной и вдумчивой работы. Но это неизбежно — совмещение возможностей двух операционных систем в одной программе — дело нелегкое, и проблема здесь не столько в недостатках среды разработки, сколько в сложности самой задачи. Попробуйте, например, написать кроссплатформенную программу, имеющую функции работы с файлами. Даже в этой простой и необходимой задаче вас ждут достаточно серьезные проблемы — файловые системы Windows и Linux трудно назвать идентичными.

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

В этой главе рассматриваются следующие вопросы:

  •  состав стандартного проекта CLX и кроссплатформенные элементы Репозитория;
  •  CLX — библиотека компонентов кроссплатформенного программирования;
  •  иерархия классов CLX, общие свойства и методы компонентов, их отличия от компонентов VCL;
  •  особенности кроссплатформенного программирования Windows — Linux; 
  •  дополнительные возможности кроссплатформенных приложений.