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

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

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

Розділ 2

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

C++ Builder

2.1 Технологія створювання інтерфейсних програм

2.1.1 Засоби середовища C++ Builder

Кожна програма повинна мати зручний інтерфейс для спілкування з користувачем. Основним елементом інтерфейсу у Windows є вікна. Одним з різновидів вікон є форма, яка може містити кнопки, текстові поля, перемикачі тощо. Тому програми, написані для використання у Windows, зазвичай мають інтерфейс, подібний до вікон та форм. Для швидкого і зручного створювання програм з графічним інтерфейсом використовують спеціальні середовища візуального програмування. Майже кожна сучасна мова програмування має принаймні одне таке середовище: Object Pascal – Borland Delphi, Basic – Visual Basic, C++ –

Borland C++ Builder, Microsoft Visual C. Візуальне програмування ще називають Rapid Application Development (RAD), “швидка розробка додатків”. Технологія

RAD суттєво прискорює створення програм з графічним інтерфейсом. Інструментальна система Builder, подібно до інших систем візуального

програмування (Visual C, Visual Basic, Delphi тощо), насамперед є посередником поміж інтерфейсом прикладного програмування Windows (API – Application Program Interface) та програмістом, надаючи змогу навіть програмістампочатківцям оперативно створювати програмні проекти, які матимуть графічний інтерфейс користувача (GUI – Graphic User Interface) найрізноманітнішої спрямованості, від суто обчислювальних і логічних до графічних і мультимедійних.

C++ Builder – це технологія візуального програмування, де автоматизовано її трудомістку частину створювання інтерфейсних програм з діалоговими вікнами. Оболонка C++ Builder надає змогу замість повного самостійного написання програми використовувати великий набір готових візуальних об‟єктів, так званих компонентів, піктограми яких розміщені на відповідних вкладках палітри компонентів. В С++ Builder існує понад 100 компонентів. Всі компоненти зібрано у бібліотеці візуальних компонентів VCL – Visual Class Library.

С++ Builder призначено для написання програм мовою програмування C++ і поєднує VCL та середовище програмування (IDE – Integrated Development Environment), написані на Delphi з компілятором C++. Цикл створення програмних проектів у C++ Builder є аналогічний до Delphi, але із суттєвими поліпшеннями. Більшість компонентів, розроблених у Delphi, можна використовувати і в C++ Builder без модифікації, але, на жаль, зворотне твердження не слушне.

С++ Builder дозволяє методом drag-and-drop доволі просто розробляти інтерфейсні програми, що зумовлює підвищення ефективності та простоту програмування, оскільки програмістові не треба кожного разу створювати ті еле-

30

Розділ 2

менти власних програм, котрі може бути реалізовано за допомогою вже існуючих об‟єктів.

Основним будівельним об‟єктом візуального програмування є компонент. Компонентами в C++ Builder є об‟єкти чи класи об‟єктів, які є, у певному розумінні, об‟єктами “реального світу”. Їх безпосередньо видно на екрані (за винятком групи невидимих компонентів), їх можна пересувати мишею, вони можуть реагувати на клацання клавіш клавіатури і миші тощо. Своєю чергою, компонентам, на відміну від звичайних об‟єктів C++, притаманна наявність властивостей, подій та методів, які дозволяють здійснювати різноманітні операції з цими компонентами.

Властивості (Properties) дозволяють легко встановлювати різні характеристики компонентів, такі як назва, розміри, контекстні підказки чи джерела даних. Методи (функції-члени) виконують певні операції над компонентним об‟єктом, у тому числі й такі складні, як відтворювання чи перемотування пристрою мультимедіа. Події (Ivents) пов‟язують зовнішні впливи, на які реагують компоненти, такі як активізація, натиснення кнопок чи редаговане введення – з кодами реакції на ці впливи. Окрім того, події можуть виникати за таких специфічних змінювань стану компонента, як поновлення даних в інтерфейсних елементах доступу до баз даних.

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

Програмування в С++ Builder складається з двох етапів:

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

написання програмного коду, виконання команд якого забезпечить розв‟язок певної задачі.

Вікно середовища C++ Builder при завантаженні складається з таких елементів (рис. 2.1):

вікно форми;

вікно коду програми;

головне меню;

“гарячі” кнопки інструментальних панелей;

палітра компонентів;

вікно інспектора об‟єктів.

Вікно форми займає найбільше місце і є прямокутним сірим “контейнером” (рис. 2.1), на який при проектуванні форми розміщують компоненти (кнопки, надписи, панелі, вікна редакторів тощо). Форма сама є компонентом з назвою Form. Без додаткових вказівок заголовок компонента (властивість Caption) збігається з його назвою (властивість Name), до якої додається порядковий номер, розпочинаючи з 1 (приміром Button1, Button2). Але заголовок

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

31

можна змінити за допомогою властивості Caption. Розміри форми також можна змінювати чи то за допомогою вікна Object Inspector, чи просто “зачепивши” мишкою за лінію межі форми (цього моменту курсор набуває вигляду двонапрямленої стрілки).

Головне меню

Палітра компонентів

“Гарячі” кнопки

 

 

Вікно форми

Вікно інспектора

 

 

 

 

об‟єктів

 

 

 

 

 

Рис. 2.1. Вигляд головного вікна середовища C++ Builder

Для розміщених на формі компонентів можна викликати контекстну довідку, для чого слід виокремити потрібний компонент і натиснути клавішу <F1>. Якщо клацнути на самій формі і натиснути клавішу <F1>, відкриється довідка по класу форми TForm.

Вікно редактора коду програми Unit1.cpp подано на рис. 2.2. Саме у цьому вікні прописують текст програми. Зазвичай вікно редактора коду перекривається вікном форми. Перемикання поміж вікнами форми й редактора можна здійснювати клавішею <F12> чи то натисненням миші на видимій частині обраного вікна.

Рис. 2.2. Вигляд вікна редактора коду

32

Розділ 2

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

У вікно редактора коду, як і в інші вікна С++ Builder, вбудовано контекстну довідку. Щоб отримати довідку стосовно певного слова (терміну) коду, достатньо встановити курсор на це слово і натиснути клавішу <F1>.

Головне меню міститься у верхній частині основного вікна (див. рис. 2.1). Воно надає можливість доступу до всіх інструментальних засобів створювання, модифікації та керування проектом. Меню містить багато підменю (File, Edit, Search тощо). Слід звернути увагу лише на основні, найбільш використовувані опції:

Підменю File (Файл) містить команди для виконування операцій з проектами, модулями та файлами. Його основними опціями є:

New Application – створити новий проект;

New Form*

– створити й долучити до проекту нову форму;

Save*

– зберегти відкритий активний модуль (unit);

Save As

– зберегти активний модуль (unit) під іншим ім‟ям;

Save Project As – зберегти проект під іншим ім‟ям;

Save All*

– зберегти файл проекту та всі його модулі;

Close

– закрити поточний модуль і відповідну форму;

Close All

– закрити усі відкриті вікна проекту.

Примітка. Опції, позначені символом *, також можна реалізовувати за допомогою “гарячих” кнопок, розглянутих нижче в табл. 2.1.

Підменю Edit (Правка) містить команди редагування, роботи з областю обміну даними, відміни дій і керування відображенням компонентів. Його ос-

новними опціями є:

 

 

Undo, Redo

– відмінити чи відновити останню зміну (еквівалентні дії

 

викликаються комбінаціями клавіш: <Ctrl>+<Z> і

 

<Shift>+<Ctrl>+<Z>);

 

Cut, Copy

– вирізати чи лише скопіювати компоненти чи фрагмент

 

тексту з модуля до буфера (<Ctrl>+<X> і <Ctrl>+<C>);

Paste

– вставити з буфера дані (<Ctrl>+<V>), які були до цього

 

скопійовані чи вирізані в буфер;

 

Delete

– вилучити виокремлені компоненти форми

чи тексту

 

(клавіша <Delete>);

 

Select All

– виокремити всі компоненти форми чи увесь текст по-

 

точного модуля;

 

Aline*

– викликати вікно вирівнювання виокремлених компоне-

 

нтів форми;

 

BringToFront*

– перемістити виокремлений компонент на

передній

 

план;

 

SendToBack*

– перемістити виокремлений компонент на задній план;

 

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

33

Scale*

– викликати вікно для пропорційного змінення масштабу

виокремлених компонентів.

Примітка. Опції, позначені символом *, також можна реалізовувати за допомогою допоміжного меню, котре відкривається за натиснення правої кнопки миші на виокремленому компонентові.

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

Підменю Search (Пошук) містить команди для пошуку (<Ctrl>+<F>) і заміни (<Ctrl>+<R>) фрагментів тексту, а також покрокового пошуку рядків з помилками компілювання. Також можна здійснювати пошук за номером сторінки чи за певною послідовністю символів. Окрім того, існує доволі зручний спосіб пошуку у документі. Просто натиснути <Ctrl>+<Е> і почати набирати потрібну фразу для пошуку. По ходу набирання, будуть висвічуватись віднайдені результати. Для пошуку наступного результату, слід натиснути <F3>.

Підменю View (Вид) містить команди для виклику менеджера проектів, інспектора об‟єктів (<F11>), браузера об‟єктів, вікон налагодження та інших інформаційних утиліт.

Підменю Project (Проект) містить команди компіляції (<Ctrl>+<F9>) та конструювання проектів, а також встановлення опцій поточного проекту.

Підменю Run (Пуск) містить команди для запуску проекта на виконання (<F9>), засобів контролю покрокового виконування і налагоджування програм.

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

Підменю DataBase (Бази даних) містить команди виклику інструментальних засобів для роботи з базами даних.

Підменю Tools (Інструменти) містить команди для налаштування середовища та виклику додаткових утиліт, у тому числі вікно редактора графічних зображень, інструменти обслуговування бази даних і вікно для редагування під-

меню Tools.

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

“Гарячі” кнопки інструментальних панелей призначені для швидкого запуску найчастіше використовуваних команд головного меню (див. рис. 2.3).

Рис. 2.3. Піктографічні кнопки

34

Розділ 2

Клацання лівою кнопкою миші на якій завгодно “гарячій” кнопці спричинить виконання відповідної функції головного меню. Функції основних “гарячих” кнопок наведені у табл. 2.1.

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

Таблиця 2.1

Функції “гарячих” кнопок

Кнопка

Назва та призначення

New – створити новий елемент проекту (проект, форму, модуль тощо)

Open – відкрити файл

Save – зберегти файл на диску

SaveАll – зберегти усі файли проекту на диску

Open project – відкрити проект

Add file to project – долучити файл до проекту

Remove file from project – вилучити файл з проекту

Help – виклик довідкової системи

Select unit from list – обрати модуль зі списку модулів, пов‟язаних з проектом

Select form from list – обрати форму зі списку форм, пов‟язаних з проектом

Toggle form/unit – змінити місцями вікно форми й вікно модуля

New form – створити нову порожню форму й долучити її до проекту

Run – компілювати і виконати програму

Pause – зреалізувати паузу в роботі програми

Trace info – покрокове трасування програми із заходом до підпрограм

Step over – те саме, але без заходу до підпрограм

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

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

35

а

б

Рис. 2.4. Палітра компонентів:

а – сторінки Standard; б – сторінки Additional

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

Component / Configure Palette, чи опцією Properties з контекстного меню.

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

Сторінка Standard

На цій сторінці палітри компонентів містяться базові для Windows елементи, наведені в табл. 2.2.

 

 

Таблиця 2.2

 

Компоненти сторінки Standard

 

 

 

Кнопка

Назва

Призначення

 

Frame

Окремий контейнер у вигляді окремого вікна

 

(Фрейм – рамка)

для компонентів з можливостями наслідування

 

MainMenu

Панель команд головного меню. Ідентифікатори

 

(Головне меню)

всіх команд меню визначаються властивістю

 

 

Items, яка має доступ до кожної команди меню

 

PopupMenu

Контекстне меню для форми чи для іншого

 

(Допоміжне меню)

компонента, котре зазвичай з‟являється у вигляді

 

 

окремого вікна після натискання правої кнопки

 

 

миші. Саме для цього кожен компонент має

 

 

властивість PopupMenu, в якій можна задати

 

 

посилання на пов‟язане з ним меню

 

Label

Надпис на формі, текст якого задається властивістю

 

(Надпис – позначка)

Caption. Зазвичай використовується для

 

 

пояснювальних надписів. Властивість AutoSize

 

 

є ознакою того, що розмір поля визначається його

 

 

вмістом. Значення true властивості WordWrap

 

 

надає можливість перенесення тексту надпису

 

 

по словах. Властивість Alignment визначає спосіб

 

 

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

36

 

Розділ 2

 

 

 

 

Продовження табл. 2.2

 

 

 

 

 

Кнопка

Назва

Призначення

 

 

 

Edit

Відображення, введення та виведення лише одного

 

 

 

(Однорядковий

рядка тексту; цей рядок зберігається у властивості

 

 

 

редактор)

Text. Параметри шрифту: назва, розмір, колір,

 

 

 

 

стиль визначається за допомогою властивості Font

 

 

 

Memo

Багаторядкове текстове вікно для відображення,

 

 

 

(Багаторядковий

введення чи виведення тексту та значень даних

 

 

 

текстовий редактор)

програми; текст зберігається у властивості Lines

 

 

 

Button

Прямокутна кнопка, натискання якої ініціює

 

 

 

(Кнопка)

задані дії у програмі; надпис на кнопці задається

 

 

 

 

властивістю Caption

 

 

 

CheckBox

Квадратний індикатор дозволяє користувачу

 

 

 

(Індикатор

вмикати/вимикати опції програми, оскільки

 

 

 

з прапорцем)

компонент передбачає два стани:

 

 

 

 

“ввімкнено” і “вимкнено” (властивість State)

 

 

 

RadioButton

Кругла кнопка з двома станами і текстом опису,

 

 

 

(Радіокнопка)

який специфікує її призначення. Радіокнопки –

 

 

 

 

набір взаємовиключних варіантів вибору: лише

 

 

 

 

одна кнопка може бути обрана на даний момент

 

 

 

 

часу (позначається внутрішнім чорним

 

 

 

 

кружечком), а з попередньо обраної кнопки вибір

 

 

 

 

автоматично знімається. При натисканні

 

 

 

 

радіокнопки властивість Checked змінюється

 

 

 

 

і виникає подія OnClick

 

 

 

ListBox

Список текстових варіантів для вибору. Елементи

 

 

 

(Список вибору)

списку містяться у властивості Items, а номер

 

 

 

 

обраного під час виконання програми елемента –

 

 

 

 

у властивості Itemlndex. Можна динамічно

 

 

 

 

долучати, вилучати, вставляти і переміщувати

 

 

 

 

елементи списку за допомогою методів Add,

 

 

 

 

Delete, Insert та Append об‟єкта Items.

 

 

 

 

Значення true властивості Sorted встановлює

 

 

 

 

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

 

 

 

ComboBox

Список елементів (властивість Items) розкрива-

 

 

 

(Комбінований

ється (випадає) для вибору. Значення обраного

 

 

 

список)

елемента надається властивості Text. Компонент

 

 

 

 

поєднує в собі два компоненти: ListBox та Edit.

 

 

 

 

Значення true властивості Sorted встановлює

 

 

 

 

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

 

 

 

Panel

Платформа для розміщення компонентів. Може

 

 

 

(Панель)

використовуватися для побудови смуги стану,

 

 

 

 

панелей інструментів

 

 

 

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

37

 

 

 

 

Закінчення табл. 2.2

 

 

 

 

 

 

Кнопка

Назва

Призначення

 

 

 

 

ScrollBar

Смуга прокручування з бігунком для керування

 

 

 

 

(Смуга

перегляданням видимої частини форми чи вмісту

 

 

 

 

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

іншого компонента, приміром для переміщування

 

 

 

 

всередині заданого інтервалу значень певного

 

 

 

 

 

параметра. Значення властивостей Min та Мах

 

 

 

 

 

встановлюють інтервал припустимих переміщувань

 

 

 

 

бігунка. Можна програмно встановлювати бігунок

 

 

 

 

у позицію, задану значенням властивості Position

 

 

 

RadioGroup

Є комбінацією групового вікна GroupBox і групи

 

 

 

 

(Група

залежних радіокнопок RadioButton. Лише одну

 

 

 

 

радіокнопок)

кнопку з групи може бути обрано. Перелік кнопок

 

 

 

 

задається властивістю Items. Значення властивості

 

 

 

 

Itemlndex зумовлює, яку саме радіокнопку обрано

 

 

 

 

на цей момент. Можна групувати радіокнопки

 

 

 

 

 

у кілька стовпчиків за допомогою властивості

 

 

 

 

 

Columns

 

 

 

 

 

 

 

 

 

 

GroupBox

Контейнер, який поєднує на формі групу логічно

 

 

 

 

(Група елементів)

пов‟язаних компонентів

 

 

 

 

ActionList

Містить список дій компонентів,

 

 

 

 

(Список дій)

таких як пункти меню чи кнопки

 

 

Сторінка Additional

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

 

 

Таблиця 2.3

 

Основні компоненти сторінки Additional

 

 

 

Кнопка

Назва

Призначення

 

 

 

 

BitBtn

Командна кнопка із зображенням бітового образу

 

(Кнопка

(піктограмою) і надписом. Властивість Kind

 

з графікою)

містить набір стандартизованих стилів кнопки

 

 

з відповідними надписами та графікою: ОК, Cancel,

 

 

Hello тощо. Властивість Glyph дозволяє обрати

 

 

для зображення на кнопці який завгодно файл

 

 

формату bmp

 

SpeedButton

Графічна швидка кнопка для створювання

 

(Кнопка з фіксацією

у програмі панелей з “гарячих” кнопок

 

та графікою)

 

 

MaskEdit

Дозволяє вводити текст (властивість Text)

 

(Вікно маскованого

відповідно до заданого шаблона

 

редагування)

(властивість EditMask)

 

38

 

Розділ 2

 

 

 

 

Закінчення табл. 2.3

 

 

 

 

 

Кнопка

Назва

Призначення

 

 

 

 

 

 

StringGrid

Таблиця для відображення текстової інформації

 

 

(Таблиця рядків)

в її рядках та стовпчиках. Властивість Cells

 

 

 

дозволяє програмне звертання до комірок

 

 

 

компонента. Властивість ColCountзадає кількість

 

 

 

стовпчиків, а RowCount – кількість рядків

 

 

DrawGrid

Таблиця для відображення графічної інформації

 

 

(Таблиця рисунків)

в її рядках та стовпчиках

 

 

Image

Контейнер для відображення графіки:

 

 

(Зображення)

піктограм, рисунків та метафайлів

 

 

Shape

Прості геометричні фігури – коло та еліпс,

 

 

(Фігура)

квадрат та прямокутник (можна із заокругленими

 

 

 

кутами). Вигляд обраної геометричної фігури

 

 

 

задається властивістю Shape, а колір та спосіб

 

 

 

її забарвлення – двома вкладеними до Brush

 

 

 

властивостями: Color та Style

 

 

Bevel

Рамки та лінії з об‟ємним виглядом. Властивість

 

 

(Кромка)

Shape визначає вигляд компонента, а значення

 

 

 

властивості Style задає опуклу чи угнуту форму

 

 

 

об‟єкта

 

 

ScrollBox (Вікно

Контейнер для відображення зі смугами

 

 

з прокручуванням)

прокручування за потреби

 

 

CheckListBox

Компонент є комбінацією списку ListBox

 

 

(Список

та індикаторів CheckBox і забезпечує вибір

 

 

з індикаторами)

кількох опцій водночас

 

 

Splitter

Відокремлювач використовується для створення

 

 

(Відокремлювач)

панелей зі змінними розмірами

 

 

 

для відокремлення компонентів один від одного

 

 

StaticText

Надпис є подібний до компонента Label, але

 

 

(Надпис

забезпечує можливість задавати стиль бордюру.

 

 

з бордюром)

Основна властивість – Caption

 

 

ControlBar

Застосовується для розміщення компонентів

 

 

(Інструментальна

інструментальної панелі

 

 

панель)

 

 

 

 

ApplicationEvents

Компонент перехоплює події на рівні додатка

 

 

(Події додатка)

 

 

 

 

Chart

Різноманітні тривимірні діаграми й графіки

 

 

(Діаграми

 

 

 

 

та графіки)

 

 

Палітри компонентів відрізняються у різних версіях C++ Builder і можуть бути налаштовані відповідно до вимог розробника. Кількість компонентів вимірюється сотнями. У табл. 2.4 наведено ще деякі широко поширені

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