Реферати українською » Информатика, программирование » Кроссплатформенного програмування для Linux


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

Страница 1 из 2 | Следующая страница

>МОРДОВСКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ ІМЕНІ Н.П.ОГАРЕВА

Факультетсветотехнический

Кафедра світлотехніки

>КУРСОВАЯ РОБОТА

>КРОССПЛАТФОРМЕННОЕПРОГРАММИРОВАНИЕ ДЛЯ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 для виявлення основних подібностей і відмінностей його з програмуванням для 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.3Internet-приложения для Linux

Укладання

Список використаних джерел

Додаток А

Додаток Б


Запровадження

Часи безроздільного панування операційними системами Windows для домашніх комп'ютерів, і корпоративних робочих станцій підходять до кінця. Дедалі більше рядових комп'ютерів працює під керівництвом інших операційними системами. У тому числі з права виділяється операційна система Linux, що сполучає у собі відкритість і актори гарні можливості настройки.

У умовах, коли буває необхідно розробляти програмне забезпечення з самими функціями відразу для кількох операційними системами, програмістам було б дуже корисна середовище розробки, що дозволяє робити це з можливості з найменшими витратами.

Існує цілком самостійний програмний продуктKylix, що й призначений і розробити програм для Linux. Delphi іKylix дуже схожі, але кожен із новачків працює у своєї операційній системи та про перенос програм може бути мови.

Проте, Delphi 7 і дозволяє писати програми для Linux.

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

І тому необхідно вибрати в Delphi відповідний тип проекту й потім написати додаток. У цьому розробникові будуть доступні багато компонентиПалитри компонентів і можливості візуального програмування в Delphi.

Безсумнівна перевагакроссплатформенного програмування в Delphi у тому, що з спільного використання доступні як звичайні конструкції і оператори мови програмування, а й безлічвисокоуровневих компонентів для візуального програмування.

>Кроссплатформенная розробка додатків у Delphi стало можливим завдяки створенню спеціального варіанта бібліотекиVCL, що називаєтьсяComponentLibraryforCrossPlatform (>CLX). У основіCLX лежить ієрархія спеціально створених базових класів, які забезпечують працездатність візуальних компонентів – нащадків відразу у двох операційні системи. Звісно, набір компонентівCLX менш багатий проти нинішнім розмаїттямVCL, але цілком порівняти зПалитрой компонентів Delphi чи Delphi 2.

Звісно ж, серйознекроссплатформенное програмування, у тому числі, наприклад, взаємодію Космосу з пам'яттю, обробку процесів з урахуванням їхньої пріоритетів тощо. буд., зажадає скрупульозної і вдумливої роботи. Але це неминуче – суміщення можливостей двох операційними системами лише у програмі – нелегко, і проблему не стільки у недоліках середовища розробки, як у складності самого завдання. Delphi перебирає все клопоти з створенню інтерфейсукроссплатформенной програми.

У моєму роботі розглядаються такі питання:

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

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

ієрархія класівCLX, загальні властивості і силові методи компонентів, їх відмінності між компонентівVCL;

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

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


1 ПроектCLX

1.1 Основні відомості

Створеннякроссплатформенного докладання в Delphi вимагає виконання абсолютно стандартних дій. Досить створити новий проект, обравши при цьому вРепозитории пунктCLXApplication.

На погляд новий проект нічим не відрізняється від зазвичайного, але ці негаразд. Середовище розробки теж зазнала певні зміни. УПалитре компонентів тепер представлені компоненти з бібліотекиCLX, усе ж, яку вживаєKylix. Інші нечисленні зміни у складі проекту також пов'язані із необхідністю суміщення зKylix.

ПроектCLX відрізняється від зазвичайного типом файла, що містить інформацію форму. Якщо звичайному проекті файл форми має розширення *.>dfm, то проектіCLX це файл з розширенням *.>xfm, однаково зрозумілий й у Delphi, й уKylix, адже й й інші файли є звичайними текстовими файлами і є дані форму представлені у них же в текстовому вигляді. Приблизно те саме саме побачимо, переглядаючи форму в текстовому поданні до вікніРедактора Delphi (командаViewasText з спливаючого меню форми) [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 може бути так:

>usesSysUtils,Types,Classes,QGraphics,QControls,QForms;

У файлах модулів замінюється директива {$R *.>dfm} на {$R *.>xfm}.

У файлах форм змінюється розширення зdfm наxfm.

Зберігши зроблені зміни і відкривши проект серед розробки, можна переконатися, що Delphi ухвалила за проектCLX, змінила відповідним чиномПалитру компонентів і охоче компілює його.

За необхідності розробник може додавати нині проектом нові шаблони, використовуючи при цьомуРепозиторий. Причому уРепозитории доступні ті шаблони, які можна залучити до проектіCLX (наприклад, форма, модуль чи модуль даних). Відсутні шаблони, використання у Linux неможливо чи підтримку яких немає забезпечує бібліотекаCLX (наприклад, шаблоноднодокументного докладання чи шаблони друкованих форм QuickReport).


1.2Объектная концепціякроссплатформенного програмування

Програмування в Delphi передбачає використання тих чи інших класів, чи це форми, невізуальні компоненти чи списки. Концепціякроссплатформенного програмування у межах однієї середовища розробки має на увазі наявність загального ядра, забезпечує функціонування залежною від ОС програмної надбудови. У Delphi таким ядром стала бібліотека часу виконання (>RunTimeLibrary –RTL), з допомогою класів якої створено бібліотеки компонентівVCL іCLX.

Відповідно до цим задля забезпеченнякроссплатформенной розробки в вихідні коди базових класів Delphi внесли зміни. Спільним ядром бібліотек компонентівVCL іCLX є ієрархія класівTObject –TFersistent –TComponent, що входять у складRTL. Це дозволяє середовищі розробки легко інтегруватикроссплатформенние нові проекти та працювати з стандартними проектами для Windows.

Розбіжності двох гілок розпочинаються з класуTControl, що забезпечує функціональність всіх візуальних компонентів. Починаючи від цього класу тут і далі, бібліотеки компонентів мають власні вихідні коди. Багато модуліCLX мають назви, аналогічні модулямиVCL, але з додаванням першої літериQ, наприкладQControls.pas.

У бібліотеціVCL класиTControl іTwincontrol є предками всіх компонентів, які мають вміти відображати себе екрані з допомогою графічних коштів ОС. У бібліотеціCLX аналогічну завдання виконують класиTControl іTWidgetControl. Вони забезпечують працездатністькомпонентов-потомков як екранних об'єктівwidget.

Більшість властивостей і методів класівTwincontrol іTWidgetControl збігаються. Проте й відмінності, викликані особливостями графічних інтерфейсів операційними системами Windows і Linux.

Задля більшої працездатностікроссплатформенних класівCLX застосовується динамічна бібліотекаQt. Для використання методів у класахCLX у складі Delphi є заголовний файлQt.pas. Під час створення об'єктаCLX конструкторомcreate в вихідному коді чи перенесенням компонента на форму автоматично створюється спеціальний об'єкт –widget.Widget пов'язані з об'єктомCLX, забезпечує взаємодія об'єктаCLX з операційній системою та знищується разом із.

>Widget може бути і безпосередньо. Така ситуація може виникнути, приміром, під час створення власних компонентів. І тому застосовується функціяQWidget_Create динамічної бібліотекиQt. І тутwidget не прив'язаний об'єктаCLX і, не знищується разом із [2].

1.3 Бібліотека компонентівCLX

Бібліотека компонентівCLX більш бідна протиVCL. Проте, її компоненти дозволяють створювати повноцінні докладання. У цілому нині склад компонентівCLX нагадуєПалитру компонентів ранніх версій Delphi. БібліотекаCLX завантажується вПалитру компонентів під час відкриття існуючого або запровадженні нового проектуCLX.

Усі компонентиCLX, мають аналоги вVCL, яких більшість, мають самі імена, як і компонентиVCL. Бо за перенесення компонентів зПалитри компонентів на форму відповідні модулі підключаються до проекту автоматично.

Вихідні модулі бібліотекиCLX зберігають у папці >Delphi7Source >С1х [3].

Перші три сторінкиПалитри компонентів (Standard,Additional,CommonControls), і навіть сторінкаDialogs містять візуальні і невізуальні компоненти для конструювання користувальницького інтерфейсу докладання.

Через деяких відмінностей стандартів користувальницького інтерфейсу Windows і Linux частина візуальних компонентівCLX мають невластиві для Windows додаткові функції.

Більшість компонентів цих сторінках добре знають розробникам (щоправда, окремі перекочували з деяких інших сторінокVCL – наприкладTTimer іTSpinEdit). Проте і деякі новинки. Це компонентиTLCDNumber,TTextviewer іTTextBrowser. Їх коротка анотація представленій у таблиці 1.

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

>Компонент Сторінка палітри компонентів Опис
>TLCDNumber >Additional >Компонент відображає сукупність символів (літер і цифр), які можна як цифрового дисплея. Відповідно, в повному обсязі літери можна показати у тому компоненті. Наприклад, літериJ,Q, Z тощо. буд.Строка символів міститься у властивості Value
>TTextviewer >CommonControls >Компонент є аналогом компонентаVCLTRichEdit.Предназначен для редагування текстів
>TTextBrowser >CommonControls >Компонент розвиває можливості компонентаTTextviewer, надаючи функції гіпертекстової розмітки

Додаткові можливості створеннякроссплатформенних додатків баз даних дають компоненти зі сторінокDataAccess,DataControIs,DBExpress,InterBase. Безумовно, механізми доступу до даних, використовувані такими додатками, значною мірою залежить від ОС. Тому "вибір способів доступу до даних невеликий.

1.4 Подібності й відмінності візуальних компонентівCLX іVCL

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

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

Отже, розробник позбавлений необхідності роботи з графічним інтерфейсом Linux на низький рівень.

Для компонентаCLX існує властивістьpropertyHandle:QWidgetH; що є покажчиком на пов'язаний об'єктwidget і дозволяє викликати його методи безпосередньо.

Якщо примірникwidget не створено, методprocedureCreateHandle;virtual;не лише створює наразі іинициализируетwidget, а й встановлює покажчикHandle, створюєобъекти-перехватчики (див. нижче) і задає настройки за умовчанням при цьому візуального компонента. За необхідності вклассах-потомках методCreateHandle перекривається у неї додається нова функціональність.

Знищення створеногоwidget здійснюється методомprocedureDestroyHandle; що знищує все дочірніwidget іобъекти-перехватчики, і навіть обнуляє властивостіHandle ІHooks.

За необхідності для простого створення і ініціалізаціїwidget можна використовувати методprocedureCreateWidget;virtual; який це зробить, викликавши зовнішню функціюQwidget_Create, і методprocedureInitWidget;virtual;которий визначає візуальні параметриwidget.

Також у класахCLX доступний покажчик на батьківськийwidget з допомогою використання властивостіpropertyParentWidget:QWidgetH;

Якщо це властивість не визначено, можна використовувати властивістьpropertyChildHandle:QWidgetH; батьківського класу, наприклад, в такий спосіб:

>ifNotAssigned(ParentWidget)thenifAssigned(Parent)then

>Result :=Parent.ChildHandle;

У класахCLX інакше реалізована обробка подій. У Linux усі події діляться на два виду – системні іwidget. Системні події обробляються процедурою – аналогом процедуриwndProc для компонентівVCL.

Події, які генеруютьсяwidget, перехоплюються й обробляються спеціальними об'єктами, взаємодіючими з об'єктомwidget. Потім їх передають пов'язаного об'єктуCLX, що викликає необхідні оброблювачі подій.

>Объекти-перехватчики створюються при виклик методу

>procedureHookEvents;virtual;

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

Доступ дообъекту-перехватчику може бути з допомогою властивості

>propertyHooks:QWidget_hookH;

яке оголошено в секціїprotected і можна використовувати лише за створення нових компонентів.

КласиCLX мають дуже й важливе властивість

>propertyStyle:TWidgetStyle;

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

Властивість

>typeTDefaultStyle = (>dsWindows,dsMotif,dsMotifPlus,dsCDE,dsQtSGI,dsPlatinum,dsSystemDefault);propertyDefaultStyle:TDefaultStyle;

класуTWidgetStyle визначає стиль візуального компонента, ставить його зовнішній вигляд за умовчанням. Природно, операційна система повинна підтримувати обраний стиль.

З іншого боку, класTwidgetstyle визначає деякі найбільш загальні параметри візуальних компонентів й володіє величезним числом оброблювачів подій, які викликаються приотрисовке всіх можливих компонентів і екранних елементів.

Отже, властивістьstyle є чудовим інструментом до створення власних компонентів з нестандартній функціональністю.

Для використання їх у Linux модернізовано система контекстної допомоги для компонентівCLX. Тепер стаття підказки для візуального компонента то, можливо викликана двома шляхами.

Традиційно, шляхом визначення унікального номери статті у властивості

>propertyHelpContext:THelpContext;

і додатково, шляхом визначення ключового слова підказки в властивості

>propertyHelpKeyword:String;

Спосіб виклику допомоги визначається властивістю

>typeTHelpType = (>htKeyword,htContext);

>propertyHelpType:THelpType;

Властивості контекстної підказки є новими в Delphi 7 і є в компонентівCLX іVCL.

З іншого боку, окремі компонентиCLX мають додаткові властивості й ефективні методи, що визначають їх додаткову функціональність в Linux.

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


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

2.1 Загальні відомості

Операційні системи Windows і Linux мають досить серйозних відмінностей, щоб зробитикроссплатформенную розробку справою складним; і копіткою. Передусім треба добре знати обидві операційні системи та мати досвід роботи із нею.

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

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

Linux вразлива щодо регістру символів в іменах файлів і можливі шляхи, тому слід залучити до вихідному коді імена

Страница 1 из 2 | Следующая страница

Схожі реферати:

Навігація