2 Особенности программирования для Linux

2.1 Общие сведения

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

Создание исходного кода для кроссплатформенных приложений – это трудоемкий процесс, который усложняется по мере использования специфических возможностей операционных систем. Простейшим путем в данном случае будет применение только стандартных свойств и методов компонентов CLX. Но такой путь возможен для сравнительно несложных приложений.

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

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

property CaseSensitive: Boolean;

После присвоения свойству значения True компонент производит все строковые операции с учетом регистра символов.

Для формирования полного пути файла используются константы из модуля SysUtils. Это PathDelim (символ разделителя каталогов в пути файла), DriveDelim (символ логического диска), pathsep (символ разделителя между несколькими путями файлов в одной строке).

При работе с текстовыми файлами необходимо помнить о различии управляющих символов в Windows и Linux. Для обозначения конца строки в Windows используются символы CR/LF, а в Linux – только символ LF. В Windows окончание текста определяется символом Ctrl-Z, а в Linux – просто концом файла [4].

Так как в Linux отсутствует системный реестр, то для сохранения настроек приложения используется класс TMeminiFile, обеспечивающий сохранение переменных среды в INI-файле.

При создании кроссплатформенных приложений необходимо использовать только свойства и методы классов CLX. В библиотеке CLX также доступны для применения такие важные для написания бизнес-логики приложения классы, как TList, TStringList, TCollection, TAction и др.

Если это ограничение является слишком жестким, и в программе требуется использовать функции системных API, применяются директивы условного перехода:

{$IFDEF MSWINDOWS}

{код для Windows}

{$ENDIF}

{$IFDEF LINUX}

{код для Linux}

{$ENDIF}

2.2 Приложения баз данных для Linux

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

К сожалению, компоненты dbExpress ограничены по своим функциональным возможностям, обеспечивая однонаправленное перемещение курсора и просмотр данных в режиме «только для чтения».

Преимуществом этого способа доступа к данным является простота и отсутствие многомегабайтных вспомогательных библиотек. В частности, для каждого из четырех поддерживаемых dbExpress серверов баз данных необходима лишь одна динамическая библиотека Windows и только один разделяемый объект (shared object) Linux [5].

2.3 Internet-приложения для Linux

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

В составе библиотеки CLX имеется достаточно большой набор компонентов для разработки Internet-приложений. Однако в Linux можно использовать только сервер Apache или CGI. Это накладывает существенные ограничения на вновь создаваемые кроссплатформенные приложения и требует серьезных усилий при переделке приложений Windows, использующих ISAPI или NSAPI.


Заключение

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

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

Рассмотрены следующие вопросы:

состав стандартного проекта CLX и кроссплатформенные элементы Репозитория;

CLX – библиотека компонентов кроссплатформенного программирования;

иерархия классов CLX, общие свойства и методы компонентов, их отличия от компонентов VCL;

особенности кроссплатформенного программирования Windows – Linux;

дополнительные возможности кроссплатформенных приложений.


Список использованных источников

1.         Шупрута, В.В. Delphi 2005. Учимся программировать: NT Press. – М., 2005.

2.         Дарахвелидзе, И.В. Программирование в Delphi 7: BHV-СПб. – Санкт-Петербург, 2003.

3.         Культин, С.Д. Delphi в задачах и примерах: BHV-СПб. – Санкт-Петербург, 2008.

4.         Осипов, О.И. Delphi. Профессиональное программирование: Символ-Плюс. – М., 2006.

5.         Фаронов В.В. Delphi4. Учебный курс. – М.: Нолидж, 1999.

6.         Возневич Э. «Освой самостоятельно Delphi: Полное руководство для самостоятельного обучения. /Под ред. В. Тимофеева. – М.: Бином, 1996.

7.         Гофман В.Э./ Хомоненко А.Д. Delphi 6. – СПБ.: БХВ, 1996.

8.         Дарахвелидзе П.Г. Марков Е.П. Delphi – средства визуального программирования. – СПБ.: BHV – С-Петербург, 1996.

9.         Конопка Р. Создание оригинальных компонент в среде Delphi: Пер. с англ. – Киев: DiaSoftLtd, 1996.

10.      Сван Том. Основы программирования Delphi для Windows 95. Киев: Диалектика, 1996.

11.      Зуев В. А.. Turbo Pascal 6.0, 7.0. М.: Веста; Радио и связь, 1998.

12.      Коцюбинский А.О., Грошев С.В. Язык программирования Delphi 5 – М.: «Издательство Триумф», 1999.

13.      Леонтьев В. Delphi 5 – М.: Москва «Олма-Пресс», 1999.

14.      Немнюгин С.А. Программирование – М.: Питер, 2000.

15.      Программирование под ред. В.В.Старлова – М: Питер, 1999

16.      Ремизов Н. Delphi – М.: Питер, 2000.

17.      Справочная система Delphi 5.0 Help.

18.      Т.А. Ильина. Программирование на Delphi 6 – М.: Питер, 2000.

19.      Фаронов В. В. Delphi 4. Учебный курс. М.: Нолидж, 1999.

20.      Федоров А. Г. Создание Windows-приложений в среде Delphi. М.: ТОО «Компьютер Пресс», 1999.

21.      Хендерсон К. Руководство разработчика баз данных в Delphi 2. Киев: Диалектика, 1998.

22.      Ч. Куписевич. Программирования на Delphi. – М: Киев, 1986

23.      Шапошников И. Delphi 5 – М.: Санкт-Петербург, 2001.


Приложение А

Программа «База данных Games»

Описание: C:\Documents and Settings\Андрей\Рабочий стол\screenshot.1229698618.png


Приложение Б

Исходный код программы «База данных Games»

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DBTables, DB, Grids, DBGrids, StdCtrls;

type

TForm1 = class(TForm)

DataSource1: TDataSource;

Table1: TTable;

DBGrid1: TDBGrid;

Label1: TLabel;

GroupBox1: TGroupBox;

Button1: TButton;

Edit1: TEdit;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

if Table1.Locate('Game', Edit1.Text,[loCaseInsensitive, loPartialKey])

then Form1.Label2.Caption:=''

else Form1.Label2.Caption:='ничего не найдено.'

end;

end.


Информация о работе «Кроссплатформенное программирование для Linux»
Раздел: Информатика, программирование
Количество знаков с пробелами: 26329
Количество таблиц: 1
Количество изображений: 1

Похожие работы

Скачать
12051
0
7

... Form1. Методы ListBox1.Clear, ComboBox1.Clear, Memo1.Clear и Edit1.Clear позволяют очистить соответствующие компоненты.   2 Практическая часть Выполнить обработку одномерного массива по индивидуальному заданию. Предусмотреть 2 варианта ввода массива: 1)  в строке Edit по одному элементу; 2)  в редакторе Memo или в строке Edit ввести весь массив. Вывод массива выполнить с помощью ...

Скачать
134267
5
10

... с обслуживанием сотрудников и как следствие снижение эффективности их работы, и как следствие снижение производительности работы организации в целом, что может привести к значительным финансовым потерям. 2. Практические аспекты внедрения корпоративного сервера на базе ОС Linux. 2.1 Основания для внедрения системы Решение любой задачи состоит из двух этапов. Первый этап теоретический ...

Скачать
35274
1
0

... плохо защищенного от появления ошибок; ·     низкая скорость программирования; ·     невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов. Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от ...

Скачать
23613
0
1

... . В начале своего появления сканеры взаимодействовали с программами посредством уникального для каждой модели сканера интерфейса, что серьезно затрудняло включение поддержки работы со сканером в прикладные программы. Для решения этой проблемы был разработан TWAIN - индустриальный стандарт интерфейса программного обеспечения для передачи изображений из различных устройств в Windows и Macintosh. ...

0 комментариев


Наверх