47500 (608277), страница 2

Файл №608277 47500 (Кроссплатформенное программирование для Linux) 2 страница47500 (608277) страница 22016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Большинство компонентов на этих страницах хорошо знакомы разработчикам (правда, некоторые из них перекочевали из других страниц VCL – например TTimer и TSpinEdit). Однако существуют некоторые новинки. Это компоненты TLCDNumber, TTextviewer и TTextBrowser. Их краткая аннотация представлена в таблице 1.



Таблица 1 – Уникальные визуальные компоненты CLX

Компонент

Страница палитры компонентов

Описание

TLCDNumber

Additional

Компонент отображает совокупность символов (букв и цифр), которые можно представить в режиме цифрового дисплея. Соответственно, не все буквы можно показать в этом компоненте. Например, буквы J, Q, Z и т. д. Строка символов содержится в свойстве Value

TTextviewer

Common Controls

Компонент является аналогом компонента VCL TRichEdit. Предназначен для редактирования текстов

TTextBrowser

Common Controls

Компонент развивает возможности компонента TTextviewer, предоставляя функции гипертекстовой разметки



Дополнительные возможности по созданию кроссплатформенных приложений баз данных дают компоненты на страницах Data Access, DataControIs, DBExpress, InterBase. Безусловно, механизмы доступа к данным, используемые такими приложениями, в значительной степени зависят от операционной системы. Поэтому выбор способов доступа к данным сравнительно невелик.



1.4 Сходства и различия визуальных компонентов CLX и VCL



Большинство свойств и методов компонентов VCL и CLX идентичны. А существующие различия вызваны необходимостью использования специальных объектов – widget и особенностями представления визуальных элементов в Linux.

Базовые классы CLX – TControl и Twidgetcontrol для обеспечения прорисовки обращаются к динамической библиотеке Qt через заголовочный файл Qt.pas.

Таким образом, разработчик избавлен от необходимости работы с графическим интерфейсом Linux на низком уровне.

Для компонента CLX существует свойство property Handle: QWidgetH; которое является указателем на связанный объект widget и позволяет вызывать его методы напрямую.

Если экземпляр widget не создан, метод procedure CreateHandle; virtual;не только создает и инициализирует widget, но и устанавливает указатель Handle, создает объекты-перехватчики (см. ниже) и задает настройки по умолчанию для этого визуального компонента. При необходимости в классах-потомках метод CreateHandle перекрывается и в него добавляется новая функциональность.

Уничтожение созданного widget осуществляется методом procedure DestroyHandle; который уничтожает все дочерние widget и объекты-перехватчики, а также обнуляет свойства Handle И Hooks.

При необходимости для простого создания и инициализации widget можно использовать метод procedure CreateWidget; virtual; который сделает это, вызвав внешнюю функцию Qwidget_Create, и метод procedure InitWidget; virtual;который определяет визуальные параметры widget.

Также в классах CLX доступен указатель на родительский widget за счет использования свойства property ParentWidget: QWidgetH;

Если это свойство не определено, можно использовать свойство property ChildHandle: QWidgetH; родительского класса, например, таким образом:

if Not Assigned(ParentWidget) then if Assigned(Parent) then

Result := Parent.ChildHandle;

В классах CLX иначе реализована обработка событий. В Linux все события делятся на два вида – системные и события widget. Системные события обрабатываются процедурой – аналогом процедуры wndProc для компонентов VCL.

События, генерируемые widget, перехватываются и обрабатываются специальными объектами, взаимодействующими с объектом widget. Затем они передаются связанному объекту CLX, который вызывает необходимые обработчики событий.

Объекты-перехватчики создаются при вызове метода

procedure HookEvents; virtual;

а непосредственно для создания перехватчиков используется библиотечная функция Qwidget_hook_create. Метод HookEvents вызывается автоматически при создании widget.

Доступ к объекту-перехватчику возможен при помощи свойства

property Hooks: QWidget_hookH;

которое объявлено в секции protected и может быть использовано только при создании новых компонентов.

Классы CLX имеют очень интересное и важное свойство

property Style: TWidgetStyle;

которое позволяет управлять внешним видом и процессом отрисовки компонента.

Свойство

type TDefaultStyle = (dsWindows, dsMotif, dsMotifPlus, dsCDE, dsQtSGI, dsPlatinum, dsSystemDefault); property DefaultStyle: TDefaultStyle;

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

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

Таким образом, свойство style является прекрасным инструментом для создания собственных компонентов с нестандартной функциональностью.

Для использования в Linux модернизирована система контекстной помощи для компонентов CLX. Теперь статья подсказки для визуального компонента может быть вызвана двумя способами.

Традиционно, путем определения уникального номера статьи в свойстве

property HelpContext: THelpContext;

и дополнительно, путем определения ключевого слова подсказки в свойстве

property HelpKeyword: String;

Способ вызова помощи определяется свойством

type THelpType = (htKeyword, htContext);

property HelpType: THelpType;

Свойства контекстной подсказки являются новыми в Delphi 7 и имеются у компонентов CLX и VCL.

Кроме того, отдельные компоненты CLX имеют дополнительные свойства и методы, определяющие их дополнительную функциональность в Linux.

В то же время некоторые привычные для программирования в Windows свойства компонентов отсутствуют в компонентах CLX. Это свойства обрамления компонента (BevelEdges, Bevellnner, BevelKind, BevelOuter); возможность двунаправленной печати текстов (свойство BioiMode); свойства для обратной совместимости с Windows 3.x (Ctl3D и ParentCtl3D); механизм присоединения и свойства Drag-and-Drop, хотя сам механизм Drag-and-Drop остался (свойства DockSite, DragKind, DragCursor). [4]





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.



Характеристики

Тип файла
Документ
Размер
2,94 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6510
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее