+ Проект - це сукупність вихідних файлів для
всього програми в цілому.
Вікно менеджера проектів Delphi дозволяє вам управ-лять вибором файлів вихідних модулів і форм, викорис-вуються в вашому проекті. Можна уявити собі проект як об'єкт найвищого рівня в вашому додатку, що складається з більш дрібних об'єктів, таких як форми і об'єкти-файли з вихідним текстом. Звичайно, приложе-ня може використовувати тільки файли форм і модулів, проте це уявлення дозволить вам перейти до розроб-лення додатків більшого масштабу.
Щоб краще зрозуміти, що таке проект Delphi, виклич-ті менеджер проектів, вибравши опцію Project Manager. Менеджер проектів містить список різних файлів, що входять в проект Delphi. Існує три типи таких файлів.
1. Єдиний проектний файл, що містить глав-ву програмну секцію, яка управляє додатку-нями Windows, створеними в Delphi. Цей файл має розширення .DPR. Доступ до нього може бути здійснюва-льон за допомогою команди Project Source. Проектний файл не є ні формою, ні модулем, це файл загального на-значення, який запускається в момент завантаження ваше-го додатки.
2. Один або кілька файлів форм (з відповідними-ющими модулями). Ці файли містять інформацію про те, як здійснюється управління формами. Файли форм зазвичай мають розширення .DPM. У додатку Delphi є, принаймні, одна форма.
Процедури і функції
Крім об'єктної моделі, візуальне середовище Delphi забезпечує вас моделлю управління подіями; битій-ва модель дозволяє вам поєднувати програму і відмінності-ні процеси з компонентами і формами відповідно до порядком порушення конкретних подій. Процес розробки з використанням цих двох моделей дуже швидкий
і дає розробнику можливість писати доступні для огляду про-грами. Це практично усуває необхідність ста-ромодного процедурного проектування. Проте, може виникнути потреба використовувати процедурний стиль при дробленні дуже великих методів або обра-робником подій на менші, виконувані послідовно-тельно програмні блоки функцій або процедур. Ця можливість була в Pascal, є також і в Delphi, оскільки Delphi все ще підтримує процедурну мо-дель.
Є кілька способів зробити процедуру або
функцію доступною всередині головного програмного моду-
ля. Найпростіший спосіб - це визначити заголовок
процедури і тіло програми на початку розділу реалі-
ції блоку. Так як вони розміщені на початку, компілято-
ру стає відомо про їх існування до того, як
вони будуть викликані з будь-якої частини програми. рас
дивимося радує розділ реалізації.
implementation
MessageDIg ( 'Yes', mtWaming, [mbOk], 0);
procedure Tforml.Button 1click (Sender: TObjact);
У цьому прикладі код для події OnClick від стандарт-ної кнопки викликає процедуру MyProc. Компілятор не видасть попередження, так як він вже минув опера-тор MyProc на початку розділу реалізації.
Другий спосіб зробити вашу процедуру доступною - це помістити її в якості локальної процедури всередині процедури обробника події OnClick: implementation
procedure TForml.ButtonlCllcMSender; TObject);
MessageDIg ( 'Yes', mtWarning, [mbOk], 0);
Якщо ж код програми прийме наступний вигляд: implementation
procedure TForml.ButtonlCllcMSender; TObject); begin
procedure MyProc; begin
MessageDIg ( 'Yes', mtWarning, [mbOk], 0); end; end.
procedure MyProc; forward;
procedure TForml.ButtonlCllcMSender; TObject);
procedure MyProc; begin
MessageDIg ( 'Yes', mtWarning,
Тема процедури оголошений, при цьому її ім'я і при-Німан паролі видимі з будь-якої частини програми, рас-покладеної нижче заголовка. Зміна полягає в тому, що ключове слово forward повідомляє звертається про-грамі, що виконуваний код процедури слід шукати далі.
Є ще один спосіб зробити цю процедуру до-ступні в вашому модулі. Як ви знаєте, все, оголошене
тільки в розділі реалізації модуля, є доступним лише в межах цього модуля. Зауважте, що в попе-щих прикладах не використовується розділ інтерфейсу моду-ля. Процедура MyProc, таким чином, є локаль-ної для модуля. Якщо модуль передбачається помістити в uses іншого модуля, то MyProc буде недоступною, що приводить нас до третього методу включення процедури в модуль: Interface
procedure Tforml.Button 1Click (Sender: TObject);
procedure Tforml.Button 1Click (Sender: TObject);
MessageDIg ( 'Yes', mtWarning, [mbOk], 0);
Розширення мови PascaI
Розглянемо доповнення до мови Pascal, зроблені для Delphi. Деякі з цих доповнень розширюють ядро мови Pascal, в той час як інші набагато спрощують власне програмування в Delphi. 1. Оператор Case.
Delphi забезпечує оптимізацію оператора Case пу-тем внесення двох змін в роботу цього оператора: * діапазони в операторі Case не повинні перекривати-ся. Наприклад, відтепер неприпустимим є опера-тор Case виду: Case MyChar of
'А', Т, 'О', 'U', 'В': Writeln ( 'Голосна'); 'А'. 'Z'. Writeln ( 'Прописна'); End;
• впорядкування констант в операторі Case відповідно до порядку сортування за видом зверху вниз (послідовно зліва направо) дозволяє Компільо-тору оптимізувати виконання оператора Case у вигляді переходу замість того, щоб обчислювати кожен раз сме-щення. Ось приклад оператора Case, що забезпечує набір оптимізованих переходів: Case MyChar of 'О' .. '9': Writeln ( 'Цифра'); 'А'. 'Z': Writeln ( 'Прописна'); - 'а'. 'Х': Writeln ( 'Рядкове'); Else Writeln ( 'Інші символи'); End;
Borland Pascal 7.0 ввів відкриті масиви, дозволяю-щие вам розробляти процедури загального призначення для роботи зі статичними масивами змінних розміру. Наприклад, ви можете оголосити функцію CalcMean () наступним чином:
Function CalcMaan (X: Array of Real): Real; Параметр х є відкритим масивом базового типу Real. Можна використовувати функцію CalcMean () для про-ництва масивів різного розміру, як показано в наступному фрагменті програми: Type ArraylO = "Array [1. 10] of Real; Array20 = Array [1..20] of Real; Var X1: Array10 ; X2: Array20;
Function CalcMean (X: Array of Real): Real; Begin
(Що визначають оператори); End; Begin
Writeln ( 'Середнє значення масиву XI =', CalcMean (XI)); 1
Writeln ( 'Середнє значення масиву Х2 =', CalcMean (Х2)); End.
Delphi робить параметри типу відкритих масивів ще більш корисними, дозволяючи побудувати масив і передати його в якості параметра. Для цього треба укласти в квадратні дужки розділений комами список зна-ний елементів масиву. Ось фрагмент програми, викорис-зующей функцію Са1сМеап () варіантом створення відкритому-тих масивів:
Function CalcMean (X: Array of Real): Real;
(Оператори, що визначають функцію);
Writeln ( 'Середнє значення масиву 1 =', CalcMean
([1.2,3.4,5.6,7.8]); Writeln ( 'CpeflHee значення масиву 2 =', CalcMean ([55,67.6,41.2,48.4]);
3. Змінна Result в функції.
Cube: = X * X * X; Result: = X * X * X;
Завдання. Спробуйте створити проект для розрахунку кор-ній квадратного рівняння.
Editl буде використаний для введення коефіцієнта А, Edit2 - коефіцієнта В, Edit3 - коефіцієнта С.
Створіть дві кнопки: «Знайти коріння» і «Вихід».