Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема: Засоби візуальної розробки програм

Поиск

Лекція 12

Тема: Засоби візуальної розробки програм

Перший проект

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

Вид вікна програми під час її роботи наведено на рис. 1.

Рис. 1. Вікно програми обчислення швидкості перегони

 

 Для початку роботи над новою програмою запустите Delphi. Якщо ви вже працюєте в середовищі розробки й у вас завантажений інший проект, виберіть у меню File (Файл) команду New →Application (Створити → Додаток).

Форма

Робота над новим проектом, так в Delphi називається розроблювальний додаток, починається зі створення стартової форми. Так на етапі розробки програми називають діалогові вікна.

Стартова форма створюється шляхом зміни значень властивостей форми Form1 і додавання до форми необхідних компонентів (полів введення й висновку тексту, командних кнопок).

Властивості форми (табл. В1) визначають її зовнішній вигляд: розмір, положення на екрані, текст заголовка, вид рамки.

 Для перегляду й зміни значень властивостей форми і її компонентів використовується вікно Object Inspector. У верхній частині вікна Object Inspector зазначене ім’я об’єкта, значення властивостей якого відображається в цей момент. У лівому стовпчику вкладки Properties (Властивості) перераховані властивості об’єкта, а в правій – зазначені їх значення.

Таблиця 1. Властивості форми (об’єкта mform).

Властивість Опис
Name Ім’я форми. У програмі ім’я форми використовується для керування формою й доступу до компонентів форми
Caption Текст заголовка
Width Ширина форми
Height Висота форми
Top Відстань від верхньої границі форми до верхньої границі екрана
Left Відстань від лівої границі форми до лівої границі екрана
BorderStyle Вид границі. Границя може бути звичайною (bsSizeable), тонкою (bsSingle) або її може не бути (bsNone). Якщо у вікна звичайна границя, то під час роботи програми користувач може за допомогою миші змінити розмір вікна. Змінити розмір вікна з тонкою границею не можна. Якщо границя відсутня, то на екран під час роботи програми буде виведене вікно без заголовка. Положення й розмір такого вікна – під час роботи програми змінити не можна
Borderlcons Кнопки керування вікном. Значення властивості визначає, які кнопки керування вікном будуть доступні користувачеві під час роботи програми. Значення властивості задається шляхом присвоєння значень уточнюючим властивостям biSystemMenu, biMinimaze, biMaximaze і biHelp. Властивість biSystemMenu визначає доступність кнопки Згорнути й кнопки системного меню, biMinimaze– кнопки Згорнути, biMaximaze– кнопки Розгорнути, biHelp – кнопки висновку довідкової інформації
Icon Значок у заголовку діалогового вікна, що позначає кнопку висновку системного меню
Color Колір тла. Колір можна задати, указавши назву кольору або прив’язку до поточної колірної схеми операційної системи. У другому випадку колір визначається поточної колірною схемою, обраним компонентом прив’язки й міняється при зміні колірної схеми операційної системи
Font Шрифт. Шрифт, використовуваний «за замовчуванням» компонентами, що перебувають на поверхні форми. Зміна властивості Font форми приводить до автоматичної зміни властивості Font компонента, що розташовується на поверхні форми. Тобто компоненти успадковують властивість Font від форми (є можливість заборонити спадкування)

 

При створенні форми в першу чергу слід змінити значення властивості caption (Заголовок). У нашім прикладі треба замінити текст Form1 на «Швидкість бігу». Щоб це зробити, потрібно у вікні Object Inspector клацнути мишею на рядку Caption, у результаті чого буде виділено поточне значення властивості, у рядку з'явиться курсор, і можна буде ввести текст «Швидкість бігу» (рис. 2).

 

Рис. 2. Установка значення властивості шляхом уведення значення

 

Форма

Аналогічним чиномм можна встановити значення властивостей Height і Width, які визначають висоту й ширину форми. Розмір форми і її положення на екрані, а також розмір інших елементів керування і їх положення на поверхні форми задають у пікселах, тобто точках екрану. Властивостям Height і Width треба задати значення 250 і 330 відповідно.

Форма – це звичайне вікно. Тому його розмір можна змінити точно так само, як розмір будь-якого іншого вікна, тобто захопленням і переміщенням (за допомогою миші) границі. По закінченню переміщення границь автоматично зміняться значення властивостей Height і width. Вони будуть відповідати встановленому розміру форми.

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

При виборі деяких властивостей, наприклад, BorderStyle, праворуч від поточного значення властивості з’являється значок списку, що розкривається. Очевидно, що значення таких властивостей можна задати шляхом вибору зі списку (рис. 3).

Рис. 3. Установка значення властивості шляхом вибору зі списку

 

Деякі властивості є складними, тобто їх значення визначається сукупністю значень інших (уточнюючих) властивостей. Перед іменами складних властивостей стоїть значок «+», при клацанні на який розкривається список уточнюючих властивостей (рис. 4). Наприклад, властивість BorderIcons визначає, які кнопки керування вікном будуть доступні під час роботи програми. Так, якщо властивості biMaximize присвоїти значення False, те під час роботи програми кнопки Розгорнути в заголовку вікна не буде.

 Рис. 4. Розкритий список вкладених властивостей складної властивості Bordericons

 

Поруч зі значеннями деяких властивостей відображається командна кнопка із трьома точками. Це значить, що для задання значення властивості можна скористатися додатковим діалоговим вікном. Наприклад, значення складної властивості Font можна задати шляхом безпосереднього введення значень уточнюючих властивостей, а можна скористатися стандартним діалоговим вікном вибору шрифту.

У табл. В2 перераховані властивості форми розроблювальної програми, які слід змінити. Інші властивості залишені без зміни й у таблиці не наведені.

Таблиця 2. Значення властивостей стартової форми.

 

Властивість Значення
Caption Швидкість бігу
Height 250
Width 330
BorderStyle bsSingle
BorderIcons.biMinimize False
BorderIcons.biMaximize False
Font. Size 10

 

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

Рис. 5. Так виглядає форма після установки значень властивостей

Компоненти

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

Найбільш часто використовувані компоненти перебувають на вкладці Standard (рис. 6).

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

 

 Рис. 6. Вкладка Standard містить найбільше часто використовувані компоненти

 

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

Кожному компоненту Delphi привласнює ім’я, яке складається з назви компонента і його порядкового номера. Наприклад, якщо до форми додати два компоненти Edit, те їхні імена будуть Edit1 і Edit2. Програміст шляхом зміни значення властивості Name може змінити ім’я компонента. У простих програмах імена компонентів, як правило, не змінюють.

На рис. 7 наведений вид форми після додавання двох компонентів Edit полів редагування, призначених для введення вихідних даних. Один з компонентів виділений. Властивості виділеного компонента відображаються у вікні Object Inspector. Щоб побачити властивості іншого компонента, треба клацнути лівою кнопкою миші на зображенні потрібного компонента. Можна також вибрати ім’я компонента у вікні Object Treeview або з вікна, що перебуває у верхній частині, Object Inspector списку, що розкривається, об’єктів.

Рис. 7. Форма після додавання компонентів Edit

 

У табл. 3 перераховані основні властивості компонента Edit – поля введення-редагування.

Таблиця 3. Властивості компонента Edit (поле введення-редагування).

Властивість Опис
Name Ім'я компонента. Використовується в програмі для доступу до компонента і його властивостям, зокрема – для доступу до тексту, уведеного в поле редагування
Text Текст, що перебуває в поле введення й редагування
Left Відстань від лівої границі компонента до лівої границі форми
Top Відстань від верхньої границі компонента до верхньої границі форми
Height Висота поля
Width Ширина поля
Font Шрифт, використовуваний для відображення тексту, що вводиться
Parentfont Ознака спадкування компонентом характеристик шрифту форми, на якій перебуває компонент. Якщо значення властивості рівно True, то при зміні властивості Font форми автоматично міняється значення властивості Font компонента

 

Delphi дозволяє змінити розмір і положення компонента за допомогою миші.

Для того щоб змінити положення компонента, необхідно встановити курсор миші на його зображення, нажати ліву кнопку миші й, утримуючи її натиснутої, перемістити контур компонента в потрібну крапку форми, потім відпустити кнопку миші. Під час переміщення компонента (рис. 8) відображаються поточні значення координат лівого верхнього кута компонента (значення властивостей Left і Tор).

Рис. 8. Відображення поточних значень властивостей Left і Top при зміні положення компонента

 

Для того щоб змінити розмір компонента, необхідно його виділити, установити покажчик миші на один з маркерів, що позначають границю компонента, нажати ліву кнопку миші й, утримуючи її натиснутої, змінити положення границі компонента. Потім відпустити кнопку миші. Під час зміни розміру компонента відображаються поточні значення властивостей Height і Width (рис. 9).

Рис. 9. Відображення поточних значень властивостей Height і Width при зміні розміру компонента

 

Властивості компонента так само, як і властивості форми, можна змінити за допомогою Object Inspector. Для того щоб властивості необхідного компонента минулого виведені у вікні Object Inspector, потрібно виділити цей компонент (клацнути мишею на його зображенні). Можна також вибрати компонент із вікна, що перебуває у верхній частині, Object Inspector списку, що розкривається, об’єктів (рис. 10) або зі списку у вікні Object Treeview (рис. 11).

 

 Рис. 10. Вибір компонента

 

Рис. 11. Вибір компонента зі списку у вікні Object Inspector у вікні Object Treeview

 

У табл. 4 наведені значення властивостей полів редагування Edit1 і Edit2. Компонент Edit1 призначений для введення довжини дистанції, Edit2 – для введення часу.

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

Таблиця 4. Значення властивостей компонентів Edit.

 

Властивість

Компонент

  Edit1 Edit2
Text    
Top 56 96
Left 128 128
Height 21 21
Width 121 121

 

Крім полів редагування у вікні програми повинна перебувати коротка інформація про програму й призначення полів введення. Для висновку тексту у форму використовують поля висновку тексту. Поле висновку тексту (поле статичного тексту) – це компонент Label. Значок компонента Label перебуває на вкладці Standard (рис. 12). Додається компонент Label у форму точно так само, як і поле редагування.

 

Рис. 12. Компонент Label – поле висновку тексту

 

У форму розроблювального додатка треба додати чотири компоненти Label. Перше поле призначене для висновку інформаційного повідомлення, друге й третє – для висновку інформації про призначення полів уведення, четверте поле – для висновку результату розрахунків (швидкості).

Властивості компонента Label перераховано в табл. 5.

Таблиця 5. Властивості компонента Label (поле висновку тексту).

Властивість Опис
Name Ім’я компонента. Використовується в програмі для доступу до компонента і його властивостям
Caption Відображуваний текст
Font Шрифт, використовуваний для відображення тексту
Parentfont Ознака спадкування компонентом характеристик шрифту форми, на якій перебуває компонент. Якщо значення властивості рівно True, текст виводиться шрифтом, установленим для форми
Autosize Ознака того, що розмір поля визначається його вмістом
Left Відстань від лівої границі поля висновку до лівої границі форми
Top Відстань від верхньої границі поля висновку до верхньої границі форми
Height Висота поля висновку
Width Ширина поля висновку
Wordwrap Ознака того, що слова, які не містяться в поточному рядку, автоматично переносяться на наступний рядок

 

Слід звернути увагу на властивості Autosize і Wordwrap. Ці властивості потрібно використовувати, якщо поле висновку повинне містити кілька рядків тексту. Після додавання до форми компонента Label значення властивості Autosize рівно True, тобто розмір поля визначається автоматично в процесі зміни значення властивості caption. Якщо ви прагнете, щоб текст, що перебуває в полі висновку, займав кілька рядків, то треба відразу після додавання до форми компонента Label привласнити властивості Autosize значення False, властивості Wordwrap – значення True. Потім зміною значень властивостей Width і Height потрібно задати необхідний розмір поля. Тільки після цього можна ввести у властивість caption текст, який повинен бути виведений у поле.

Після додавання полів висновку тексту (чотирьох компонентів Label) і установки значень їх властивостей відповідно до табл. В6 форма програми набуває вигляду, наведеного на рис. 13.

Зверніть увагу, що значення властивості caption уводиться як один рядок. Розташування тексту усередині поля висновку визначається розміром поля, значенням властивостей Autosize і Wordwrap, а також залежить від характеристик використовуваного для висновку тексту шрифту.

 

Рис. 13. Вид форми після додавання полів висновку тексту

 

Таблиця 6. Значення властивостей компонентів Label1, Label2, Label3 і Label4.

Компонент Властивість Значення

Labell

Autosize False
Wordwrap True
Caption Програма обчислить швидкість, з якою спортсмен пробіг дистанцію
Top 8
Left 8
Height 33
Width 209

Label2

Top 56
Left 8
Caption Дистанція (метрів)

Label3

Top 96
Left 8
Caption Час (хвилин, секунд)

Label4

 

Caption  
Autosize False
Wordwrap True
Top 120
Left 8
Height 41
Width 273

 

Останнє, що треба зробити на етапі створення форми – додати у форму дві командні кнопки: Обчислити й Завершити. Призначення цих кнопок очевидно.

Командна кнопка, компонент Button, додається у форму точно так само, як і інші компоненти. Значок компонента Button перебуває на вкладці Standard (рис. 14). Властивості компонента наведено в табл. 7.

Рис. 14. Командна кнопка – компонентів Button

 

Таблиця 7. Властивості компонента Button (командна кнопка).

Властивість Опис
Name Ім’я компонента. Використовується в програмі для доступу до компонента і його властивостям
Caption Текст на кнопці
Enabled Ознака доступності кнопки. Кнопка доступна, якщо значення властивості рівно True, і недоступна, якщо значення властивості рівно False
Left Відстань від лівої границі кнопки до лівої границі форми
Top Відстань від верхньої границі кнопки до верхньої границі форми
Height Висота кнопки
Width Ширина кнопки

 

Після додавання до форми двох командних кнопок потрібно встановити значення їх властивостей відповідно до табл. 8.

Таблиця 8. Значення властивостей компонентів Button1 і Button2.

Властивість

Компонент

Button1 Button2
Caption Обчислити Завершити
Top 176 216
Left 200 200
Height 25 25
Width 80 80

 

Остаточний вид форми розроблювального додатка наведено на рис. 15.

Рис. 15. Форма програми Швидкість перегони

 

Завершивши роботу зі створення форми додатка, можна приступити до написання тексту програми. Але перед цим обговоримо дуже важливі при програмуванні в Windows поняття:

· подія;

· процедура обробки події.

 

Система підказок

У процесі набору тексту програми редактор коду виводить довідкову інформацію про параметри процедур і функцій, про властивості й методи об’єктів.

Наприклад, якщо у вікні редактора коду набрати Messagedig (ім’я функції, яка виводить на екран вікно повідомлення) і відкриваючу дужку, то на екрані з’явиться вікно підказки, у якому будуть перераховані параметри функції Messagedig із вказівкою їх типу (рис. 19). Один з параметрів виділений напівжирним. Так редактор підказує програмістові, який параметр він повинен уводити. Після набору параметра й комі у вікні підказки буде виділений наступний параметр. І так доти, поки не будуть зазначені всі параметри.

 Рис. 19. Приклад підказки

 

Для об’єктів редактор коду виводить список властивостей і методів. Як тільки програміст набере ім’я об’єкта (компонента) і крапку, так відразу на екрані з’являється вікно підказки – список властивостей і методів цього об’єкта (рис. 20). Перейти до потрібного елемента списку можна за допомогою клавіш переміщення курсору або набравши на клавіатурі декілька перших букв імені потрібної властивості або методу. Після того як буде обраний потрібний елемент списку й натиснута клавіша Enter, обрана властивість або метод будуть вставлені в текст програми.

Система підказок суттєво полегшує процес підготовки тексту програми, рятує від рутини. Крім того, якщо під час набору програми підказка не з’явилася, це значить, що програміст припустився помилки: швидше за все, невірно набрав ім’я процедури або функції.

 

Рис. 20. Редактор коду автоматично виводить список

властивостей і методів об’єкта (компонента)

Навігатор коду

Вікно редактора коду розділене на дві частини (рис. 21). У правій частині перебуває текст програми. Ліва частина, яка називається навігатор коду (Code Explorer), полегшує навігацію по тексту (коду) програми. В ієрархічному списку, структура якого залежить від проекту, над яким іде робота, перераховані форми проекту, їх компоненти, процедури обробки подій, функції, процедури, глобальні змінні й константи. Вибравши відповідний елемент списку, можна швидко перейти до потрібного фрагмента коду.

Вікно навігатора коду можна закрити звичайним образом. Якщо вікно навігатора коду не доступно, то для того, щоб воно з’явилося на екрані, потрібно з меню View вибрати команду Code Explorer.

Рис. 21. Вікно Code Explorer полегшує навігацію по тексту програми

 

Довідкова система

У процесі набору програми можна одержати довідку, наприклад, про конструкцію мови або функції. Для цього потрібно у вікні редактора коду набрати слово (інструкцію мови програмування, ім’я процедури або функції і т.д.), про який треба одержати довідку, і нажати клавішу F1.

Довідкову інформацію можна одержати, вибравши з меню Help команду Delphi Help. У цьому випадку на екрані з’явиться стандартне вікно довідкової системи (рис. 25). У цьому вікні на вкладці Предметний покажчик потрібно ввести ключове слово, що визначає тему, по якій потрібна довідка. Як правило, у якості ключового слова використовують перші кілька букв імені функції, процедури, властивості або методу.

Рис. 25. Пошук довідкової інформації із ключового слова

 

Структура проекту

Проект Delphi являє собою набір програмних одиниць – модулів. Один з модулів – головний, містить інструкції, з яких починається виконання програми. Головний модуль додатка повністю формується Delphi.

Головний модуль являє собою файл із розширенням .dpr. Для того щоб побачити текст головного модуля додатка, потрібно з меню Project вибрати команду View Source.

У лістингу ВЗ наведений текст головного модуля програми обчислення швидкості перегони.

Лістинг В3. Головний модуль додатка Швидкість бігу

program vrun;.

usesForms,vrun1 in vrunl.pas {Form1};{$R *.res}beginApplication.Initialize;Application.Createform(Tform1, Form1);Application.Run;end.

Починається головний модуль словом program, за яким іде ім’я програми, що збігається з іменем проекту. Ім’я проекту задається в момент збереження проекту, і воно визначає ім’я створюваного компілятором файлу, що виконується, програми. Далі за словом uses випливають імена використовуваних модулів: бібліотечного модуля Forms і модуля форми vrunl.pas.

Рядок {$R *.RES}, яка схожа на коментар, – це директива компіляторові підключити файл ресурсів. Файл ресурсів містить ресурси додатка: піктограми, курсори, бітові образи й ін. Зірочка показує, що ім’я файлу ресурсів таке ж, як і у файлу проекту, але з розширенням res.

Файл ресурсів не «є текстовим файлом, тому переглянути його за допомогою редактора тексту не можна. Для роботи з файлами ресурсів використовують спеціальні програми, наприклад, Resource Workshop. Можна також застосовувати вхідну до складу Delphi утиліту Image Editor, доступ до якої можна одержати вибором з меню Tools команди Image Editor.

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

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

У лістингу В4 наведений текст модуля програми обчислення швидкості перегони.

Лістинг В4. Модуль програми Швидкість бігу.

unit vrun1;

interface

uses

Windows, Messages, Sysutils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, Stdctrls;

type

Tform1 = class(Tform)

Edit1: Tedit;

Edit2: Tedit;

Label1: Tlabel;

Label2: Tlabel;

Label3: Tlabel;

Label4: Tlabel;

Button1: Tbutton;

Button2: Tbutton;

procedure Buttonlclick(Sender: Tobject);

procedure Button2Click(Sender: Tobject);

private

{ Private declarations } public

{ Public declarations } end;

var

Form1: Tform1;

implementation

{$R *.dfm}

// натискання кнопки Обчислити

procedure Tform1.Buttonlclick(Sender: Tobject);

var

dist: integer; // дистанція, метрів

t: real; // час як дробовий число

min: integer; // час, хвилини

sek: integer; // час, секунди

v: real;

// швидкість

begin

// одержати вихідні дані з полів уведення

dist: = Strtoint(Edit1.Text); t: = Strtofloat(Edit2.Text);

// попередні перетворення

min: = Trunc(t); // кіл-у хвилин – це ціла частина числа t

sek: = Trunc(t*100) mod 100; // кіл-у секунд – це дробова частина

// числа t

// обчислення

v: = (dist/1000) / ((min*60 + sek)/3600);

// висновок результату

label4.Caption: = Дистанція: + Edit1.Text + м + #13

+ Час: + Inttostr(min) + хв

+ Inttostr(sek) + сек + #13 +

Швидкість: + Floattostrf(v,fffixed,4.2) + км/година;

end;

// натискання кнопки Завершити

procedure Tform1.Button2Click(Sender: Tobject)

begin

Form1.Close;

end;

end.

Починається модуль словом unit, за яким іде ім’я модуля. Саме це ім’я згадується в списку використовуваних модулів в інструкції uses головного модуля додатка, текст якого наведений у лістингу ВЗ.

Модуль складається з наступних розділів:

· інтерфейсу;

· реалізації;

· ініціалізації.

Розділ інтерфейсу (починається словом interface) повідомляє компілятор, яка частина модуля є доступною для інших модулів програми. У цьому розділі перераховані (після слова uses) бібліотечні модулі, використовувані даним модулем. Також тут перебуває сформоване Delphi опис форми, який іде за словом type.

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

Починається розділ реалізації директивою {$R *.DFM}, що вказує компіляторові, що в процесі генерації виконуваного файлу треба використовувати опис форми. Опис форми перебуває у файлі з расширеням .dfm, ім’я якого збігається з іменем модуля. Файл опису форми генерується середовищем Delphi на основі зовнішнього вигляду форми.

За директивою {$R *.DFM} випливають процедури обробки подій для форми і її компонентів. Сюди ж програміст може помістити інші процедури й функції.

Розділ ініціалізації дозволяє виконати ініціалізацію змінних модуля. Інструкції роздягнула ініціалізації розташовуються після розділу реалізації (опису всіх процедур і функцій) між begin і end. Якщо розділ ініціалізації не містить інструкцій (як у наведеному прикладі), то слово begin не вказується.

Слід зазначити, що значна кількість інструкцій модуля формує Delphi. Наприклад, Delphi, аналізуючи дії програміста по створенню форми, генерує опис класу форми (після слова type). У наведеному прикладі інструкції, набрані програмістом, виділені тлом. Очевидно, що Delphi виконала значну частину роботи зі складання тексту програми.

 

Збереження проекту

Проект – це набір файлів, використовуючи які компілятор створює файл програми, що виконується (Ехе-Файл). У найпростішому випадку проект складається з файлу опису проекту (Dof-Файл), файлу головного модуля (Dpr-Файл), файлу ресурсів (Res-Файл), файлу опису форми (Dfm-Файл), файлу модуля форми, у якім перебувають основний код додатка, у тому числі функції обробки подій на компонентах форми (Pas-Файл), файл конфігурації (Cfg-Файл).

Щоб зберегти проект, потрібно з меню File вибрати команду Save Project As. Якщо проект ще жодного разу не був збережений, то Delphi спочатку запропонує зберегти модуль (уміст вікна редактора коду), тому на екрані з’явиться вікно Save Unitl As. У цьому вікні (рис. 26) треба вибрати папку, призначену для файлів проекту, і ввести ім’я модуля. Після натискання кнопки Зберегти, з’являється наступне вікно (рис. 27), у якім необхідно ввести ім’я файлу проекту.

 

Рис. 26. Збереження модуля форми

Рис. 27. Збереження проекту

 

Зверніть увагу на те, імена файлів модуля (pas-файл) і проекту (dpr-файл) повинні бути різними. Ім’я генерованого компілятором файлу, що виконується, збігається з іменем проекту. Тому файлу проекту слід привласнити таке ім’я, яке, на вашу думку, повинен мати файл, що виконується, програми, а файлу модуля – яке-небудь інше ім’я, наприклад, отримане шляхом додавання до імені файлу проекту порядкового номера модуля.

Примітка. Оскільки проект являє собою набір файлів, то рекомендується для кожного проекту створювати окрему папку.

Компіляція

Компіляція – це процес перетворення вихідної програми в виконувану. Процес компіляції складається із двох етапів. На першому етапі виконується перевірка тексту програми на відсутність помилок, на другому – генерується програма, що виконується (ехе-файл).

Після введення тексту функції обробки події й збереження проекту можна з меню Project вибрати команду Compile і виконати компіляцію. Процес і результат компіляції відбиваються в діалоговім вікні Compiling (рис. 28). У це вікно компілятор виводить помилки (Errors), попереджень (warnings) і підказок (Hints). Самі повідомлення про помилки, попередження й підказки відображаються в нижній частині вікна редактора коду (рис. 29).

Рис. 28. Результат компіляції

 

Примітка. Якщо під час компіляції вікна Compiling на екрані не має, то виберіть із меню Tools команду Environment options і на вкладці Preferences установіть у ввімкнений стан перемикач Show compiler progr ess.

Рис. 29. Повідомлення компілятора про виявлені помилки

 

Помилки

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

Щоб перейти до фрагмента коду, який містить помилку, треба встановити курсор у рядок з повідомленням про помилку й з контекстного меню (рис. 30) вибрати команду Edit source.

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

 

Рис. 30. Перехід до фрагмента програми, що містить помилку

 

У табл. 10 перераховані найбільш типові помилки й відповідні їм повідомлення компілятора.

Таблиця 10. Повідомлення компілятора про помилки.

Повідомлення Імовірна причина
Missing operator or semicolon (Відсутній оператор або крапка з комою) Після інструкції не поставлена крапка з коми

 

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

Якщо в програмі немає синтаксичних помилок, компілятор створює виконуваний файл програми. Ім’я виконуваного файлу таке ж, як і у файла проекту, а розширення –.exe. Delphi розміщує виконуваний файл у той же каталог, де перебуває файл проекту.

 

Запуск програми

Пробний запуск програми можна виконати безпосередньо з Delphi, не завершуючи роботу із середовищем розробки. Для цього потрібно з меню Run вибрати команду Run або клацнути на відповідній кнопці панелі інструментів Debug (рис. 31).

 

Рис. 31. Запуск програми із середовища розробки

 

Помилки часу виконання

Під час роботи додатка можуть виникати помилки, які називаються помилками часу виконання (run-time errors) або виключеннями (exceptions). У більшості випадків причинами виключень є невірні вихідні дані. Наприклад, якщо під час роботи програми обчислення швидкості перегони в поле Час увести 3.20, тобто для відділення дробової частини числа від цілої використовувати крапку, то в результаті натискання кнопки Обчислити на екрані з’явиться вікно з повідомленням про помилку (рис. 32).

Рис. 32. Приклад помилки часу виконання (програма запущена з Windows)

 

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

Якщо в настроюванні Windows зазначене, що роздільник цілої й дробової частин числа – кома (для Росії це стандартна установка), а користувач під час роботи програми введе в поле редагування, наприклад, рядок 3.20, то при виконанні інструкції:

 

t = Strtofloat(Edit2.Text)

виникне виключення, тому що при стандартному, для Росії настроюванню Windows вміст поля Edit2 і, отже, аргумент функції strtofloat не є зображенн



Поделиться:


Познавательные статьи:




Последнее изменение этой страницы: 2021-12-15; просмотров: 41; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.130.151 (0.01 с.)