Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ПП.doc
Скачиваний:
30
Добавлен:
17.03.2016
Размер:
5.83 Mб
Скачать

Interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Frms, Dialogs;

type

TFormI = class(TForm) private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TForm1;

Implementation

{SR *.DFM}

end.

Ці рядки Delphi автоматично вставляє в вікно коду для нової форми. Як вже говорилося, вікно коду визначає поведінкову сторону вікна програми (тобто вікна, що з'являється після початку роботи програми.), а вікно форми - його зовнішні прояви. Обидва вікна тісно пов'язані один з одним, причому Delphi "господарює" в його верхній частині, вставляючи необхідні рядки між

unit Unit1;

і implementation

Поки не варто змінювати цю частину тексту. Надалі ми будемо вставляти у вікно текст програми між рядками

{$R-*.DFM}

і

end.

в нижній частині вікна.

Щоб вставити у вікно новий рядок (рядки) потрібно спочатку, за допомогою клавіш курсору, або клацнувши по вікну мишею, поставити текстовий курсор (миготливу вертикальну риску) на потрібне місце, а потім за допомогою клавіатури ввести текст. Зазвичай текст коду програми розташовується в декількох рядках. Для переходу на новий рядок використовуйте клавішу Enter. Якщо в процесі введення ви помилилися і зразу помітили свою помилку, видаліть помилковий символ клавішею Backspace (довгаста сіра клавіша в правому верхньому куті зони алфавітно-цифрових клавіш, або розташована там же клавіша з лівою стрілкою). Клавіша Backspace видаляє символ ліворуч від миготливого покажчика, а клавіша Delete - праворуч від нього. Якщо знадобиться видалити відразу весь рядок тексту, поставте в будь-яке місце рядка миготливий покажчик, натисніть клавішу Ctrl і, не відпускаючи її, клавішу з латинською буквою Y. Таке спільне натиснення клавіш надалі будемо позначати символом Ctrl Y. Щоб скасувати останню зміну тексту, натисніть Ctrl Z.

ОСНОВИ ВІЗУАЛЬНОГО ПРОГРАМУВАННЯ

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

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

ПОРОЖНЯ ФОРМА ТА ЇЇ МОДИФІКАЦІЯ

Як Вже говорилося, вікно форми містіть проект Windows - вікна програми. Важливо пам'ятати, що з самого початку роботи над новою программою Delphi створює мінімально необхідній код, що забезпечує її нормальне функціонування в Windows. Таким чином, найпростіша програма готова відразу після вибору опції File | New | Application, і залішається просто запустити програму. Однак до цього необхідно виконати дві важліві речі: створити власний робочий каталог (папку) i потрібнім чином налаштувати Delphi.

НАЛАШТУВАННЯ DELPHI

У процесі роботи над проектами програм, знадобиться створити безліч форм і модулів. Корисно зберігати ці дані у вигляді дискових файлів в окремій папці. Більш того, для кожної програми в цій папці має сенс створити свою вкладену папку. Тоді, щоб звільнити місце на диску для серйозної програми, вам буде досить знищити основну папку, а щоб передати ту чи іншу навчальну програму своєму колезі - переписати на дискету вміст відповідної вкладеної папки. Створіть папку з іменем, наприклад, my_delph, а в ній - вкладену папку для вашої першої програми. Щоб не обтяжувати себе придумуванням підходящих імен для "безликих" навчальних програм, можна використовувати для папки ім'я pgm_1 або що-небудь подібне.

Друге, що нам належить зробити, - це внести зміни в стандартну настройку середовища Delphi. Це необхідно для того, щоб середовище автоматично зберігало на диску останню версію створюваної вами програми. Виберіть опцію меню Tools | Environment options і переконайтеся, що в діалоговому вікні активна сторінка preferences. У лівому верхньому куті цієї сторінки в групі Autosave | Options є перемикачі Editor Files і Desktop (в інших версіях Delphi ці перемикачі розташовуються в правому верхньому куті). Активізація перемикачів призведе до автоматичного збереженню тексту вікна коду програми і загального розташування вікон Delphi перед початком чергового прогону створюваної програми, що позбавить втрат у випадку "зависання" програми. Активізувати ці перемикачі, клацнувши по кожному мишею. Щоб стежити за ходом компіляції, активізуйте також перемикач Show Compiler progress в групі Compiling and Running. Далі, корисно зберігати в коді програми коментарі - текстові фрагменти, які не впливають на роботу програми, але роблять її текст більш зрозумілим. Якщо потрібно використовувати коментарі російською мовою, слід вибрати відповідний шрифт для відображення коду програми. За замовчуванням редактор Delphi використовує шрифт Courier New, в якому може не бути символів кирилиці. У цьому випадку виберають опцію Tools | Editor options і на сторінці Display в рядку Editor Font встановіть Courier New Cyr (для попередніх версій сторінка Display доступна у вікні Tools | Environment Options).

Тепер все готово для прогону першої програми. Клацніть мишею по кнопці в головному вікні або, що простіше, натисніть клавішу F9: саме таким способом підготовлена ​​Delphi-програма послідовно проходить три головні етапи свого життєвого циклу - етапи компіляції, компонування і виконання. На етапі компіляції здійснюється перетворення підготовленого у вікні коду тексту програми на мові Object Pascal в послідовність машинних інструкцій, на етапі компонування до неї підключаються необхідні допоміжні підпрограми, а на етапі виконання готова програма завантажується в оперативну пам'ять і їй передається виконання. Як тільки натиснете F9, з'явиться діалогове вікно Save Unit1 As, в якому Delphi попросить вказати ім'я файлу для модуля Unit1.pas і папку його розміщення.

За замовчуванням Delphi пропонує розмістити файл модулі та проекту в системній папці BIN. Оскільки ця пайка містить життєво важливі для Delphi файли, обов'язково змініть її на вашу робочу папку (наприклад, MY_DELPH).

Краще не йти на поводу у Delphi і не погоджуватися із запропонованим ім'ям Unit1.раs, а привласнити модулю ім'я, яке більш запам'ятовується. Наприклад, назвемо модуль my_ist_u, що має розшифровуватись "мой_первий_модуль" |. Якщо у вікні Save As Uniti вкажете таке ім'я і натиснете Enter Delphi попросить задати ім'я ще й для проекту програми в цілому. Під цим ім'ям буде створений виконуваний ЕХЕ-файл, наприклад, firstpgm - цілком гідне ім'я для першої Delphi програми.

ІМЕНА В DELPHI

Delphi принципово не визнає ні російських, ні французьких, ні китайських, ні взагалі яких би то не було імен, в яких використовуються символи, відмінні від латинських літер, цифр і знака підкреслення, причому ім'я не повинно починатися цифрою, але може починатися знаком підкреслення. Так як в цьому переліку немає пробілу, імена не можуть також складатися з декількох слів. Далі, скорочення до не більше ніж 8 символів - це данина обмеженням Delphi першої версії. Ця версія розрахована на роботу під керуванням ОС Windows З.х, яка не визнає довгих імен файлів. Якщо працювати з Delphi 32 (тото з будь-якою з версій від 2-ї до 6-ї), можна не скорочувати імена та писати my_first_unit або навіть moy_pervij_modul, тому що ці версії розраховані на сучасні 32-розрядні операційні системи, що дозволяють використовувати довгі імена файлів.

Якщо тим чи іншим способом вирішені проблеми з іменами модуля і програми, на екрані з'явиться вікно форми, як і слід було очікувати - порожнє, але яке має всі атрибути нормального Windows-вікна: воно може змінювати своє положення і розміри, і закриваючись, вивантажує програму з оперативної пам'яті ПК.

ЗМІНА ВЛАСТИВОСТЕЙ ФОРМИ

Отже, перший і найпростіший крок в Delphi програмуванні вами вже зроблений: вами створена нормальна програма для Windows. Зрозуміло, ця програма не реалізує придуманого вами алгоритму, вона взагалі нічого путнього не вміє робити.

Тепер спробуємо розібратися з тим, що таке модуль. У першому наближенні можена вважати модулем самостійний розділ програми, в чомусь подібний розділу в книзі. Модуль створюється кожен раз, коли ви створюєте нову форму (у програмі може бути і, частіше, буває не одна, а кілька - іноді кілька десятків форм і пов'язаних з ними модулів). При компіляції програми Delphi створює файли з розширеннями типу DFM для кожного модуля: PAS-файл містить копію тексту з вікна коду програми, у файлі з розширенням DFM зберігається опис вмісту вікна форми, а в осі-файлі - результат перетворення у машинні інструкції тексту з обох файлів. Файли DCU створюються компілятором і дають необхідну базу для роботи компонувальника, який перетворює їх в єдиний завантажуваний файл з розширенням ехе.

Спробуємо модифікувати програму, наприклад, змінимо заголовок її вікна. За замовчуванням заголовок вікна збігається із заголовком форми (тобто без будь-яких зусиль з нашого боку.).: ФОРМИ. Щоб змінити заголовок, потрібно звернутися до вікна Інспектора об'єктів. Закрийте вікно працюючої програми ФОРМИ (якщо ви ще не зробили цього) і клацніть мишею по рядку Caption

(Заголовок) вікна Інспектора об'єктів [Це вікно не видно в момент прогону програми. Якщо після натискання на клавішу F11 вікно Інспектора об'єктів не з'явилося на екрані, перевірте стан панелі завдань Windows - ви напевно побачите в ній ім'я вашої програми. Закрийте її.]. Тепер права колонка цього рядка з текстом Form1 виділена кольором і праворуч від виділеного видно текстовий миготливий курсор. Переключіть клавіатуру в режим введення кирилиці і введіть Моя перша програма, після чого ще раз натисніть F9. Новий прогін програми створить вікно з заголовком "Моя перша програма" що несе в собі набагато більше інформації, ніж просто Form1.

Отже, простою зміною вмісту рядка у вікні Інспектора об'єктів ми домоглися важливої ​​зміни: змінили одну з властивостей вікна програми - його заголовок. Таким же чином можна змінювати будь-які інше властивості форми.

РОЗМІЩЕННЯ НОВОГО КОМПОНЕНТА

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

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

Новий компонент має стандартне ім'я Label1, і напис на ньому повторює це ім'я. Змінимо цей напис: за допомогою рядка Caption вікна Інспектора об'єктів введіть напис: я програмую на Delphi. Як тільки почнем вводити новий напис, вид компонента на формі почне змінюватися, динамічно відображаючи всі зміни, вироблені вами у вікні Інспектора об'єктів.

Виділимо напис кольором і зробимо його шрифт більшим. Для цього клацніть мишею по властивості шрифту вікна Інспектора об'єктів і за допомогою кнопки в правій частині рядка розкрийте діалогове вікно налаштування шрифту. У списку Розмір (Розмір) цього вікна виберіть висоту шрифту 24 пункту [Пункт - 1/72 дюйма, тобто приблизно 0,04 мм. Таким чином, 24 пункти означає висоту шрифту трохи більше 9 мм.], а за допомогою списку Color (Колір) виберіть потрібний колір (наприклад, червоний), після чого закрийте вікно кнопкою ОК.

Рис. 6 Розміщення компонента Label

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

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

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

Всі видимі компоненти [Невидимі в Delphi можуть використовуватися так само як видимі компоненти. Невидимі компоненти не мають візуального відображення на етапі прогону програми.] мають властивості Left (Ліворуч), Top (Зверху), Wide (Ширина) і Height (Висота), числові значення яких визначають положення лівого верхнього кута компоненту і його розміри в так званих пікселях, тобто в мінімальних за розміром точках екрану, яркісттю яких може управляти програма. При буксируванні компонента або зміні його розмірів мишею ці значення автоматично змінюються і навпаки - зміна цих властивостей у вікні Інспектора об'єктів призводить до відповідної зміни положення і розмірів компонента. Значення в Delphi 4, 5, 6 Left і Top автоматично з'являються в невеликому вікні поруч з покажчиком миші при буксируванні компонента по формі.

ЗНАЙОМСТВО З КОМПОНЕНТАМИ

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

Бібліотеки компонентів для різних версій Delphi будуються за принципом розширення: у першій версії було близько 70 компонентів, в той час як до складу Delphi 6 входить більше 300 компонентів.

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

СТОРІНКА STANDARD

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

Frame - рамка. Нарівні з формою служить контейнером для розміщення інших компонентів. На відміну від форми може розміщуватися в палітрі компонентів, створюючи образи компонентів. Вперше введено в версію Delphi 5.

MainMenu - головне меню програми. Компонент здатний створювати та обслуговувати складне ієрархічне меню.

PopupMenu - допоміжне або локальне меню. Зазвичай це меню з'являється в окремому вікні після натиснення правої кнопки миші.

Label - мітка. Цей компонент використовується для розміщення у вікні не дуже довгих однорядкових написів.

Edit - рядок введення. Призначена для введення, відображення або редагування одного текстового рядка. Memo - багаторядковий текстовий редактор. Використовується для введення і / або відображення багаторядкового тексту.

Button - командна кнопка. Обробник події OnClick цього компонента зазвичай використовується для реалізації деякої команди.

CheckBox - незалежний перемикач. Клацання мишею на цьому компоненті в працюючій програмі змінює його логічне властивість Checked.

RadioButton - залежний перемикач. Зазвичай об'єднується як мінімум ще з одним таким же компонентом в групу. Клацання по перемикачу призводить до автоматичного звільнення раніше обраного перемикача в тій же групі.

ListBox - список вибору. Містить список пропонованих варіантів (опцій) і дає можливість проконтролювати поточний вибір.

ComboBox - комбінований список вибору. Являє собою комбінацію списку вибору і текстового редактора.

ScrollBar - смуга управління. Являє собою вертикальну або горизонтальну смугу, що нагадує смуги прокрутки по боках Windows-вікна.

GroupBox - група елементів. Цей компонент використовується для угрупування декількох пов'язаних за змістом компонентів.

RadioGroup - група залежних перемикачів. Містить спеціальні властивості для обслуговування декількох пов'язаних залежних перемикачів.

Panel - панель. Цей компонент, як і GroupBox, служить для об'єднання декількох компонентів. Містить внутрішню і зовнішню кромки, що дозволяє створити ефекти "вдавленности" і "опуклості".

Actionlist - список дій. Служить для централізованої реакції програми на дії користувача, пов'язані з вибором одного з групи однотипних керуючих елементів, таких як опції меню, піктографічні кнопки, тощо. Вперше, введено в версії Delphi 4.

СТОРІНКА ADDITIONAL

В сторінку Additonal поміщені 18 додаткових компонентів, за допомогою яких можна урізноманітнити вигляд діалогових вікон.

BitBtn - командна кнопка з написом і піктограмою.

SpeedButton - піктографічна кнопка. Зазвичай використовується для швидкого доступу до тих чи інших опцій головного меню.

MaskEdit - спеціальний текстовий редактор. Здатний фільтрувати текст, що вводиться, наприклад, для правильного вводу дати.

StringGrid - таблиця рядків. Цей компонент має потужні можливості для представлення текстової інформації в табличному вигляді.

DrawGrid - довільна таблиця. На відміну від StringGrid осередки цього компонента можуть містити довільну інформацію, в тому числі і малюнки.

Image - малюнок. Цей компонент призначений для відображення малюнків, в тому числі піктограм і метафайлов.

Shape - фігура. За допомогою цього компонента ви можете вставити у вікно правильну геометричну фігуру - прямокутник, еліпс, коло та інше.

Bevel - кромка. Служить для виділення окремих частин вікна тривимірними рамками або смугами.

ScrollBox - панель з смугами прокрутки. На відміну від компонента Panel автоматично вставляє смуги прокрутки, якщо розміщення в ньому компоненти відсікаються його межами.

CheckListBox - список множинного вибору. Відрізняється від стандартного компонента ListBox наявністю поряд з кожною опцією незалежного перемикача типу CheckBox, що полегшує вибір відразу декількох опцій. Вперше введено у версії 3.

Splitter - межа. Цей компонент розміщується на формі між двома іншими видимими компонентами і дає можливість користувачу під час прогону програми переміщати кордон, що відокремлює компоненти один від одного. Вперше введено у версії 3.

StaticText - статичний текст. Відрізняється від стандартного компонента Label наявністю власного Windows-вікна, що дозволяє обводити текст рамкою чи виділяти його у вигляді "втиснутої" частини форми. Вперше введено у версії 3.

ControlBar - смуга управління. Служить контейнером для "причалювання" компонентів в технології Drag & Drop. Вперше введено у версії 4..

ApplicationEvents - одержувач події. Якщо цей компонент поміщений на форму, він буде отримувати всі призначені для програми повідомлення Windows (без цього компонента повідомлення приймає глобальний об'єкт-програма Application). Вперше введено у версії 5.

ValueListEditor - редактор рядків, що містять пари ім'я = значення. Пари такого типу широко використовуються в Windows, наприклад, у файлах ініціації, в системному реєстрі і т. д. Вперше введено у версії 6.

LabeledEdit - комбінація однострочного редактора і мітки. Вперше введено у версії 6.

ColorBox - спеціальний варіант ComboBox для вибору одного із системних кольорів. Вперше введено в версії 6.

Chart - діаграма. Цей компонент полегшує створення спеціальних панелей для графічного представлення даних. Вперше введено у версії 3.

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

ActionMainMenuBar - смуга меню, опції якого створюються за допомогою компонента ActionManager. Вперше введено в версії 6.

ActionToolBar - смуга для розміщення пиктографических кнопок, що створюються за допомогою компонента ActionManager. Вперше введено в версії 6.

CustomizeDig - діалог налаштування. За допомогою цього компонента користувач може по своєму смаку налаштувати інтерфейс працюючої програми. Вперше введено в версії 6.

Виконання лабораторної роботи

  1. Запустіть програмну оболонку Delphi версії 6 або 7 (зазвичай вона знаходиться в меню Програми, група Borland, Delphi 7).

  2. Вибрати з палітри Standart компонент Panel, перетягніть його на головну форму і встановіть для нього значення наступних властивостей:

Top 23

Width 130

Left 0

Height 262

Color clAppWorkSpace

Name Panel4

Caption

За допомогою цього компонента ми будемо відображати частоту таймера.

Вибрати ще 3 компонента Panel, перетягніть їх на форму і встановіть наступні їх властивості:

Top 30

Width 100

Left 150

Height 139

Color clGray

Name CPU

Caption CPU

За допомог цього компонента буде відображатіся центральний процесор.

Top 30

Width 100

Left 290

Height 139

Color clGray

Name DLO

Caption DLO

Цей компонент буде зображувати ПЗО.

Top 30

Width 100

Left 430

Height 139

Color clGray

Name ObjCont

Caption Object

Цей компонент - наш об'єкт, яким ми будемо керуваати.

  1. Вибрати з палітри Standart компонент Memo, перетягніть його на головну форму і встановіть для нього значення наступних властивостей:

Color clWindow

Top 176

Width 407

Left 128

Height 109

Name Help

Цей компонент буде відображати допомогу і легенду, ми будемо зчитувати інформацію з текстового файлу.

  1. Також треба встановити деякі властивості форми:

Name Lab1form

Top 212

Width 543

Left 216

Height 312

Position poScreenCenter

Caption Периферійні пристрої - лабораторна робота №1

Color clBtnFace

  1. Вибрати з палітри Standart компонент Label, перетягніть його на головну форму і встановіть для нього значення наступних властивостей:

Name Label1

Top 6

Width 88

Left 21

Height 13

Caption Частота таймера

Color clAppWorkSpace

  1. Вибрати з палітри Standart компонент Edit, перетягніть його на головну форму і встановіть для нього значення наступних властивостей:

Name Tick

Top 26

Width 45

Left 38

Height 17

Text 1000

За допомогою цього компонента ми будемо бачити поточну частоту таймера.

  1. Вибрати з палітри Win32 компонент UpDown, перетягніть його на головну форму і встановіть для нього значення наступних властивостей:

Name UpDown1

Top 26

Width 15

Left 83

Height 17

Max 10000

Min 0

Increment 100

За допомогою цього компонента ми зможемо регулювати частоту лічильника до 100. При зміні значення компонента буде виконуватися процедура:

procedure TLab1form.UpDown1Click(Sender: TObject; Button: TUDBtnType);

var

t: Integer;

Code: Integer;

begin

Val(Tick.Text, t, Code);

Clock.Interval:=t;

end;

  1. Вибрати з палітри Standart компонент Panel, перетягніть його на головну форму і встановіть для нього значення наступних властивостей:

Top 16

Width 68

Left 16

Height 34

Color clRed

Name Obj

Caption

Цей компонент показує кольором, чи зайнятий об'єкт в даний момент часу.

  1. Вибрати з палітри Additional компонент BitBtn, перетягніть його на головну форму і встановіть для нього значення наступних властивостей:

Name ToolButton3

Top 0

Width 23

Left 0

Height 22

Caption &Пуск

Натисканням цієї кнопки ми запускаємо програму на виконання. На подію OnClick ми пишемо таку процедуру для цієї кнопки:

procedure TLab1form.StartExecute(Sender: TObject);

begin

Status:=0;

Setclock.Enabled:=False;

Tick.Enabled:=False;

Stop.Enabled:=True;

Clock.Enabled:=True;

Start.Enabled:=False;

end;

  1. Вибрати з палітри Additional компонент BitBtn, перетягніть його на головну форму і встановіть для нього значення наступних властивостей:

Name ToolButton4

Top 0

Width 23

Left 23

Height 22

Caption &Стоп

Натисканням цієї кнопки ми зупиняємо виконання програми. На подію OnClick ми «вішаємо» процедуру:

procedure TLab1form.StopExecute(Sender: TObject);

begin

Status:=-1;

Setclock.Enabled:=True;

Tick.Enabled:=True;

Start.Enabled:=True;

Stop.Enabled:=False;

end;

  1. Тепер розглянемо невізуальні компоненти, які нам знадобляться в програмі. Виберіть з палітри компонент системи таймер, перетягніть його на головну форму і встановіть для нього значення наступних властивостей:

Interval 1000

Name Clock

Також треба «приєднати» до таймера таку процедуру для його активізації:

procedure TLab1form.ClockTimer(Sender: TObject);

var

i: Integer;

begin

case Status of

-1: begin

for i:=0 to cn do

Draw(i, clAppWorkSpace);

Obj.Color:=clAppWorkSpace;

end;

0: begin

for i:=0 to cn do

Draw(i, clAppWorkSpace);

Draw(5, clActiveCaption);

Obj.Color:=clAppWorkSpace;

Status:=1;

end;

1: begin

for i:=0 to cn-1 do

Draw(i, clAppWorkSpace);

Draw(2, clActiveCaption);

Draw(4, clActiveCaption);

Obj.Color:=clActiveCaption;

Status:=2;

end;

2: begin

for i:=0 to cn-1 do

Draw(i, clAppWorkSpace);

for i:=0 to cn-1 do

Draw(i, clActiveCaption);

Obj.Color:=clActiveCaption;

Status:=3;

end;

3: begin

for i:=0 to cn-1 do

Draw(i, clAppWorkSpace);

Draw(2, clActiveCaption);

Draw(4, clActiveCaption);

Obj.Color:=clAppWorkSpace;

Status:=4;

end;

4: begin

for i:=0 to cn do

Draw(i, clAppWorkSpace);

Obj.Color:=clAppWorkSpace;

Status:=0;

end;

end;

end;

Інші компоненти є необов'язковими і використовуються виключно для зручності.