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»
Приложение Б
Исходный код программы «База данных 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.
... Form1. Методы ListBox1.Clear, ComboBox1.Clear, Memo1.Clear и Edit1.Clear позволяют очистить соответствующие компоненты. 2 Практическая часть Выполнить обработку одномерного массива по индивидуальному заданию. Предусмотреть 2 варианта ввода массива: 1) в строке Edit по одному элементу; 2) в редакторе Memo или в строке Edit ввести весь массив. Вывод массива выполнить с помощью ...
... с обслуживанием сотрудников и как следствие снижение эффективности их работы, и как следствие снижение производительности работы организации в целом, что может привести к значительным финансовым потерям. 2. Практические аспекты внедрения корпоративного сервера на базе ОС Linux. 2.1 Основания для внедрения системы Решение любой задачи состоит из двух этапов. Первый этап теоретический ...
... плохо защищенного от появления ошибок; · низкая скорость программирования; · невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов. Машинно-независимые системы программирования – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от ...
... . В начале своего появления сканеры взаимодействовали с программами посредством уникального для каждой модели сканера интерфейса, что серьезно затрудняло включение поддержки работы со сканером в прикладные программы. Для решения этой проблемы был разработан TWAIN - индустриальный стандарт интерфейса программного обеспечения для передачи изображений из различных устройств в Windows и Macintosh. ...
0 комментариев