Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C _Учебник_МОНУ

.pdf
Скачиваний:
199
Добавлен:
12.05.2015
Размер:
11.12 Mб
Скачать

Середовище програмування C++ Builder

49

винести на порожню форму з палітри компонентів усі потрібні компоненти для створення діалогового вікна програми;

задати на вкладці Properties (властивості) інспектора об‟єктів усі потрібні властивості для компонентів, розташованих на формі;

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

у вікні редактора кодів заповнити відгуки на події кодом, а також написати текст усіх потрібних програм. Перехід поміж вікном форми і вікном редактора можна здійснити клавішею <F12>;

зберегти створений проект за допомогою команди головного меню

File/Save Project All (рис. 2.6);

Рис. 2.6. Вікна зберігання файлів проекту

запустити проект на виконання одним зі способів: натиснути клавішу <F9>, виконати команду меню Run / Run, натиснути відповідну кнопку на панелі інструментів;

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

урозд. 15. Згадані помилки слід виправити, зберегти проект і знову запустити проект на виконання;

провести тестові розрахунки, для чого виконати відповідні дії (вводити дані, натискати потрібні кнопки тощо). Якщо при виконанні програми були виявлені алгоритмічні помилки їх, зрозуміло, слід виправити. Для довчасного припинення виконання програми, приміром, за її зависання, слід виконати ко-

манду Run / Program Reset;

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

50

Розділ 2

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

<F7> (покрокове трасування програми із заходом до підпрограм ) і <F8>

(те саме, але без заходу до підпрограм, – ). Для переглядання результатів покрокового виконання програми слід відкрити відповідне віконце командою Run / Add Watch. Щоб покрокове виконання програми здійснювати, розпочинаючи з певної команди програми, цю команду слід позначити так званою точкою зупину (Breakpoint) за допомогою команди меню Run / Add Breakpoint чи клавішею <F5>;

після налагодження й тестового виконання програми здійснити потрібні обчислення і вийти з C++ Builder. Сеанс завершено.

Рекомендуємо взяти за правило: перед кожним запуском програми обов‟язково її зберігати.

Приклади створювання програмних проектів

Приклад 2.1 Створити програму, в якій можна буде встановлювати колір форми натисканням кнопки. Слід передбачити можливість установлення чотирьох кольорів: жовтого, синього, зеленого, червоного.

Розв‟язок. На вікно форми слід встановити такі компоненти: один надпис (Label) і чотири кнопки (Button). Окрім того, створимо ще одну кнопку для виходу з програми. Дані компоненти розташовано на палітрі компонентів на вкладці Standard (див. табл. 2.2).

Для розміщення кожного компонента на форму треба:

1)на палітрі компонентів обрати потрібний компонент (клацанням лівої кнопки по його піктограмі);

2)клацнути лівою кнопкою миші у тому місці форми, де компонент має міститися;

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

задавши точні значення властивостей Top, Left, Width та Height компонентів у інспекторі об‟єктів.

Після того як ці дії повторити для розміщення всіх потрібних компонентів, форма набуде вигляду

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

Середовище програмування C++ Builder

51

вшись таким методом. На панелі компонентів обрати потрібний компонент та утримуючи <Shift> клацнути на нього. Далі при кожному клацанні всередині форми, на ній з‟являтиметься новий компонент.

Надписи, розмір, місце розташування на формі – все це властивості (Properties) компонентів, які можна встановити за допомогою інспектора об‟єктів (Object Inspector). Як вже зазначалось, щоб змінити властивості компонента, його треба виокремити, клацнувши по компонентові лівою кнопкою миші, потім перейти до вікна інспектора об‟єктів, на закладці Properties обрати потрібну властивість і встановити її нове значення. Отже, встановимо властивості компонентів згідно до таблиці, наведеної нижче.

Ім’я

Властивість

Значення

Пояснення

компонента

властивості

Button1

Caption

Жовтий

 

Button2

Caption

Синій

Надписи на кнопках

Button3

Caption

Зелений

 

 

 

 

 

Button4

Caption

Червоний

 

 

 

 

 

 

Caption

Вихід

Надпис на кнопці

Button5

Height

50

Висота кнопки

 

Width

170

Ширина кнопки

 

Alignment

taCenter

Горизонтальне вирівнювання тексту

 

AutoSize

false

Автоматичне змінювання розміру

 

компонента заборонено

 

 

 

 

Caption

"Змінення

Текст надпису

 

кольору форми"

 

 

 

 

 

 

 

Label1

Color

clBlack

Колір фону компонента

 

Font->Color

clWhite

Колір шрифту надпису

 

Font->Size

14

Розмір шрифту надпису

 

Height

50

Висота компонента

 

Layout

tlCenter

Вертикальне вирівнювання тексту

 

Width

400

Ширина компонента

Form1

Caption

Приклад

Надпис на формі

 

 

програми № 1

 

Після створення форми можна перейти до програмування. Колір форми має змінюватись при клацанні (Click) по відповідних кнопках. Для цього треба створити програми відгуків на подію OnClick для відповідних кнопок подвійним клацанням по цих кнопках. Після цього C++ Builder автоматично створить шаблон-заготовку в редакторі коду. Всі команди, які мають виконуватись при клацанні по кнопці, треба записати поміж операторних дужок { }. Програмний відгук на подію OnClick для кнопки Button1 остаточно матиме вигляд:

void __fastcall TForm1::Button1Click(TObject *Sender) { Form1->Color = clYellow;

}

52

Розділ 2

Програмний код для кнопок Button2, Button3, Button4 відрізнятиметься від вищенаведеного лише кольором. Синій колір задається як clBlue, зелений – clGreen, червоний – clRed.

Для кнопки Button5 (Вихід) програмний код міститиме команду закриття активної форми Close():

void __fastcall TForm1::Button5Click(TObject *Sender) { Close();

}

Перед запуском на виконання програмний проект слід зберегти в окремій теці командою File / SaveAll (чи то через ярлик , чи клавішами <Shift> + <Ctrl> + <S>). Внаслідок таких дій почергово з‟являться два діалогових вікна, в яких треба у власноруч створеній новій теці зберегти і Unit1 і Project1.

Для запуску проекту слід виконати команду меню Run / Run чи то натиснути на клавіатурі кнопку <F9>. Унаслідок цього має з‟явитися наведена нижче форма проекту (це означає, що програму написано без помилок).

Приклад 2.2 Створити програму, в якій зреалізувати кнопку-“втікача”, тобто кнопку, яка “втікатиме” за намагання натиснути її, окрім того, вивести поточну дату і час на форму.

Розв‟язок. Розташуємо на формі один надпис (Label), одну панель (Panel), дві кнопки (Button) і компонент таймер (Timer). Перші три компоненти містяться на палітрі компонентів на вкладці Standard (див. табл. 2.2), а компонент Timer – на вкладці System (див. табл. 2.4). Після розташування всіх компонентів форма матиме вигляд

 

 

Середовище програмування C++ Builder

53

 

 

Задамо властивості компонентів, наведені в таблиці.

 

 

 

 

 

 

 

 

 

 

Ім’я

Властивість

Значення

Пояснення

 

 

компонента

властивості

 

 

 

 

Caption

Приклад

Надпис на формі

 

 

 

 

програми № 2

 

 

 

Form1

 

 

 

 

 

 

 

 

 

 

 

Height

210

Висота форми

 

 

 

 

 

 

 

 

Width

695

Ширина форми

 

 

 

Panel1

Caption

Надпис на панелі

 

 

 

Button1

Caption

Натисни!

Надпис на кнопці

 

 

 

Button2

Caption

Вихід

Надпис на кнопці

 

 

 

Timer1

Interval

1000

Інтервал таймера, заданий

 

 

 

у мілісекундах

 

 

 

 

 

 

 

 

 

 

Alignment

taCenter

Горизонтальне вирівнювання тексту

 

 

 

AutoSize

false

Автоматичне змінювання розміру

 

 

 

 

заборонено

 

 

 

 

 

 

 

 

 

 

 

Спробуй

Текст надпису

 

 

 

 

Caption

натиснути

 

 

 

 

 

 

кнопку

 

 

 

 

Label1

Color

clBlue

Колір компонента

 

 

 

 

Font->Color

clWhite

Колір шрифту надпису

 

 

 

 

Font->Size

14

Розмір шрифту надпису

 

 

 

 

Height

50

Висота компонента

 

 

 

 

Layout

tlCenter

Розміщення тексту по вертикалі

 

 

 

 

Width

500

Ширина компонента

 

 

У віконці інспектора об‟єктів на вкладці подій (Events) задамо шаблон для відгуку на подію OnMouseMove (подія виникає за наведення на кнопку покажчика миші) для кнопки Button1. Для цього треба такі кроки:

1)виокремити компонент;

2)перейти до вікна Object Inspector;

3)відкрити вкладку Events;

4)двічі клацнути лівою кнопкою миші напроти назви потрібної події. Після виконання наведених чотирьох кроків C++ Builder автоматично створить шаблон-заготовку в редакторі коду. Після того як впишемо поміж операторних дужок наступний програмний код, програма відгуку набуде вигляду

void __fastcall TForm1::Button1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)

{ if (Button1->Left <= 0)

Button1->Left = Form1->Width - Button1->Width - 10; else Button1->Left = Button1->Left - 5; }

Отже, кнопка “втікає”, залишилось вивести дату й час на панель. Задамо для компонента Timer шаблон для події OnTimer (подія відбувається із заданим у властивості Interval інтервалом часу), в якому запишемо програмний код:

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{ Panel1->Caption=Now().DateString() + "/" + Now().TimeString();}

54

Розділ 2

Пояснення. Функція Now() повертає поточні дату й час. Метод DateString() перетворює дату на текст, метод TimeString() – час на текст. Докладніше ці функції розглянуто в розд. 10.

Перед запуском на виконання програмний проект слід зберегти в окремій теці командою File/SaveAll (чи то через “гарячу” кнопку , чи клавішами <Shift>+<Ctrl>+<S>). Внаслідок таких дій почергово з‟являться два діалогових вікна, в яких треба у власноруч створеній новій теці зберегти і Unit1 і Project1. Для запуску проекту на виконання слід здійснити команду меню Run/Run чи

натиснути на клавіатурі кнопку <F9> чи “гарячу” кнопку . Вікно форми під час роботи проекта матиме вигляд

Приклад 2.3 Створити програму, в якій, залежно від вибору користувача, можна встановлювати колір першої чи другої панелі. Здійснити можливість змішувати кольори: задавати складові трьох основних кольорів: червоного, зеленого, синього. Надати можливість вибору дозволу/заборони змінювання певної складової кольорів.

Розв‟язок. Із вкладки Standard на вікно форми слід встановити такі компоненти: три надписи (Label), два компоненти GroupBox, дві панелі (Panel), три смуги прокручування (ScrollBar). На компонент GroupBox1 розмістимо два компоненти RadioButton, а на GroupBox2 – три компоненти CheckBox.

Після розташування всіх компонентів форма матиме вигляд

 

 

Середовище програмування C++ Builder

55

 

 

Задамо властивості компонентів згідно таблиці, поданої нижче.

 

 

 

 

 

 

 

 

 

 

Компонент

Властивість

Значення властивості

Пояснення

 

 

 

 

 

 

 

 

 

 

Form1

Caption

Приклад програми № 3

Надпис на формі

 

 

 

Label1

Caption

R

Текст надпису

 

 

 

Label2

Caption

G

Текст надпису

 

 

 

Label3

Caption

B

Текст надпису

 

 

 

GroupBox1

Caption

Вибір панелі

Надпис компонента

 

 

 

Height

90

Висота компонента

 

 

 

 

 

 

 

 

Caption

Дозволити

Надпис компонента

 

 

 

GroupBox2

 

складову кольору

 

 

 

 

 

Height

90

Висота компонента

 

 

 

RadioButton1

Caption

Панель № 1

Надпис компонента

 

 

 

Checked

true

Стан вибору

 

 

 

RadioButton2

Caption

Панель № 2

Надпис компонента

 

 

 

ScrollBox1,

Max

255

Верхня межа

 

 

 

ScrollBox2,

прокручування

 

 

 

 

 

 

 

 

ScrollBox3

Width

550

Ширина смуги

 

 

 

CheckBox1

Caption

Червоний

Надпис компонента

 

 

 

Checked

true

Стан вибору

 

 

 

 

 

 

 

CheckBox2

Caption

Зелений

Надпис компонента

 

 

 

Checked

true

Стан вибору

 

 

 

 

 

 

 

CheckBox3

Caption

Синій

Надпис компонента

 

 

 

Checked

true

Стан вибору

 

 

 

 

 

 

 

Panel1

Caption

Панель № 1

Надпис панелі

 

 

 

Panel2

Caption

Панель № 2

Надпис панелі

 

 

При змінюванні позиції повзунка смуги прокручування виникатиме подія OnChange. У нашому прикладі треба, щоб у відгук на цю подію комп‟ютер змінював колір панелі Panel відповідно до вибору перемикача RadioButton. Новий колір визначається всіма трьома смугами прокручування: позиція повзунка кожної впливає на кількість відповідної складової частини кольору у результуючому кольорі при змішуванні. Для змішування трьох базових кольорів використовується функція RGB (Red-Green-Blue), параметрами якої є позиції повзунків кожного з трьох кольорів.

Задамо шаблон для відгуку на подію OnChange для смуги прокручування ScrollBar1. Коли виконаємо чотири кроки, наведені у прикладі 2.2, матимемо шаблон у редакторі коду. Впишемо поміж операторних дужок такий програмний код:

void __fastcall TForm1::ScrollBar1Change(TObject *Sender) { if(RadioButton1->Checked)

Panel1->Color = RGB(ScrollBar1->Position, ScrollBar2->Position,ScrollBar3->Position);

else Panel2->Color = RGB(ScrollBar1->Position, ScrollBar2->Position,ScrollBar3->Position);

}

56

Розділ 2

Програми для відгуку на подію OnChange для компонентів ScrollBar1 та ScrollBar2 є аналогічні, але щоб не писати зайвого коду, зазначимо для ScrollBar2 вже наявну програму-відгук ScrollBar1Change. Для цього:

виокремимо компонент ScrollBar2;

у вікні Object Inspector перейдемо до вкладки Events;

оберемо для події OnChange зі списку ScrollBar1Change:

Натискаємо стрілочку

Обираємо потрібний відгук

Аналогічно встановимо для смуги прокручування ScrollBar3 програмувідгук для події OnChange.

Щоб дозволити чи заборонити змінення будь-якої складової кольорів, на формі є три відповідні “прапорці” (CheckBox). Якщо “прапорець” обрано (властивість Checked), то змінювати складову кольору можна, в іншому разі – ні. Стан “прапорця” змінюється за його натискання. Отже, для компонентів CheckBox1, CheckBox2, CheckBox3 створимо програми опрацювання події OnClick, в яких запишемо:

для CheckBox1: ScrollBar1->Enabled = CheckBox1->Checked; для CheckBox2: ScrollBar2->Enabled = CheckBox2->Checked; для CheckBox3: ScrollBar3->Enabled = CheckBox3->Checked;

Після написання коду програми слід зберегти (File/SaveAll ) і запустити (<F9>) проект.

Вигляд форми під час роботи проекту:

Середовище програмування C++ Builder

57

2.1.4 Створення проектів з декількома формами

За замовчуванням проект містить файли для однієї форми та вихідного коду одного модуля. Однак більшість більш-менш серйозних проектів містять декілька форм і модулів. Щоби створити новий модуль чи то форму у проекті, треба скористатись командою File / New… та обрати відповідний ярличок створюваного елемента проекту у вікні New Items (див. далі рис. 2.7).

Крім стандартної форми на закладці Forms цього вікна пропонується декілька різновидів створюваних форм:

Більше того, на закладці Dialogs існують зручні засоби створення формдіалогів з готовим інтерфейсом:

Крім команди File / New… для створення нових форм чи модулів проекту можна скористатись відповідними “гарячими” кнопками або відкрити командою View / Project Manager менеджер проектів, в якому скористатись кнопкою New. Також вікно менеджера проектів надає можливість за потреби видалити елемент проекту (проект, форму, модуль тощо) за допомогою кнопки Remove.

Залучити заголовний файл нової форми чи модуля можна виконавши команду File / Include Unit Hdr чи то самостійно прописавши директиву include.

Коли у подальшій роботі виникає потреба відкрити файл долученого модуля, можна скористатись клавішами <Ctrl> + <Enter>, попередньо встановив-

58

Розділ 2

ши курсор на ім‟я цього модуля у директиві include. Аналогічну дію можна виконати командою контекстного меню Open File at Cursor.

Нагадаємо, що комбінацією <Сtrl> + <F6> чи то командою контекстного меню редактора Open Source/Header File користуються для перемикання поміж cppта h-файлами, а для переходу поміж відповідною формою та її cppфайлом можна скористатись клавішею <F12>.

При застосуванні клавіш <Shift> + <F12> відкривається вікно зі списком форм проекту для зручного перемикання поміж ними особливо при великій кількості форм у проекті.

Оскільки вікно редактора коду при створенні програмного проекту потребує на екрані значного місця, то воно, зазвичай, перекриває собою більш дрібні вікна IDE, приміром вікно інспектора об‟єктів, вікно treeview, редактор форми чи то інші. Щоби побачити “приховані” вікна, можна скористатись поєднанням клавіш <Alt> + <0> для виведення списку відкритих вікон IDE.

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

Приклад програмного проекту з трьома формами, у тому числі форми AboutBox, наведено у прикладі 9.3.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]