Єдина Країна!

Головне меню

Наша кнопка

Українські уроки про ІТ

Друзі

Підтримка української армії


Головна Програмування - Delphi Редактор коду, структура проекту в Delphi

Редактор коду, структура проекту в Delphi
Написав kims   
Понеділок, 15 жовтня 2012 10:00
Переглядів: 13917

Редактор коду

Редактор коду виділяє ключові слова мови програмування (procedure, var, begin, end, if і ін.) напівжирним шрифтом, що робить текст програми виразнішим і полегшує сприйняття структури програми. Крім ключових слів редактор коду виділяє курсивом коментарі. В процесі розробки програми часто виникає необхідність перемикання між вікном редактора коду і вікном форми. Зробити це можна за допомогою командної кнопки Toglle Form/Unit, що знаходиться на панелі інструментів View (мал. нище), або натиснувши клавішу <F12>. На цій же панелі інструментів знаходяться командні кнопки View Unit і View Form, використовуючи які можна вибрати потрібний модуль або форму у випадку, якщо проект складається з декількох модулів або форм.

Панель інструментів View

 

 

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

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

Лістинг 1. Головний модуль обчислення швидкості program Project1.

 

program project2;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

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

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

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

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

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

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

 

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;
    Button1: TButton;
    Button2: TButton;
    Label4: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
r
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  s,t,v:real;  // s - шлях, t -час, v -швидкість
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;   // завершити
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
s:=StrToFloat(Edit1.text); // попередні перетворення
t:=StrToFloat(Edit2.text);
v:=s/t;   // обчислення швидкості
label4.Caption:= 'Швидкість V= '+FloatTostr(v)+' км/год.';  // вивід результату
end;

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

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

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

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

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

 

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

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

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

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

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

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

 

Компіляція проекту та його виконання

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

Після успішної компіляції запускаємо програму на виконання: натискаємо клавішу F9 або кнопку Run на панелі інструментів

 

Помилки

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

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

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

 

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

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

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

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

 

Внесення змін в код проекту

Після декількох запусків програми Швидкість автомобіля виникає бажання внести зміни до програми. Наприклад, було б непогано, щоб після введення шляху і натиснення клавіші курсор переходив в поле Час. Або щоб в поля Шлях і Час користувач міг ввести тільки цифри. Щоб внести зміни до програми, потрібно запустити Delphi і відкрити відповідний проект. Зробити це можна звичайним способом, вибравши з меню File команду Open Project. Можна також скористатися командою Reopen з меню File. При виборі команди Reopen відкривається список проектів, над якими програміст працював останнім часом.

Наприклад, зробимо зміни Процедури обробки подій OnKeyPress для компонентів Edit1 і Edit2. Слід звернути увагу на те, що для додавання в програму процедури обробки події потрібно у вікні Object Inspector вибрати компонент, для якого створюється процедура, потім на вкладці Events вибрати подію і зробити подвійне клацання в полі імені процедури. Delphi сформує шаблон процедури обробки події. Після цього можна вводити інструкції, що реалізовують процедуру обробки. Дана процедура буде має такий вигляд:

 

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
 begin
  // Key — символ, який відповідає натиснутій клавіші.
  // Якщо символ недопустимий, то процедура заміняє його
  // на символ с кодом 0. В результаті цього символ в полі
  // редагування не появляється, і у користувача створюється
  // думка, що програма не реагує на натискання деяких
  // клавіш.
  case Key of
   '0'..'9': ; // цифра
   #8 : ; // клавіша 
   #13 : Edit2.SetFocus ; // клавіша 
   // решту символів — заборонені
   else Key :=Chr(0); // символ не відображати
  end;
 end;

Після внесення змін проект слід зберегти. Для цього потрібно з меню File вибрати команду Save all.

 

Практичні завдання для статті

 

Ця стаття входить в курс уроків по Delphi.

Зміст курсу лекцій та практичних занять по Delphi.

 

Кузбит І.М.


( 14 Проголосувало )
Коментарі
Добавити новий
Залишити коментар
Ім`я:
e-mail:
 
Тема:
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Введіть цей настирливий код
Русская редакция: www.freedom-ru.net & www.joobb.ru

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Підписка

Хто онлайн?

Немає
На даний момент 23 гостей на сайті

Український рейтинг
TOP.TOPUA.NET