Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л4.doc
Скачиваний:
6
Добавлен:
30.10.2018
Размер:
77.82 Кб
Скачать

Лекція №4

Тема 2. Інтегроване середовище розробки C++Builder (продовження)

План

1. Управління формами у проекті C++Builder.

2. Розміщення компонентів на формі.

3. Депозитарій — сховище форм і проектів.

4. Інструментальні засоби підтримки розробки коду.

1. Управління формами у проекті C++Builder

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

Для всіх форм, що включаються в проект, навіть якщо у проекті всього одна форма, задавайте унікальні імена (властивість Nаme), змінюючи встановлені C++Builder за умовчанням. Це істотно полегшить повторне використання форм, оскільки дозволить уникнути дублювання імен при включенні колишньої форми в новий проект.

Включення в проект нової форми може проводитися різними способами.

Якщо ви хочете включити нову порожню форму то потрібно виконати команду File/New Form або натиснути відповідну швидку кнопку.

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

Можна включити готову форму в проект командою Project/Add to Project або відповідною швидкою кнопкою. При цьому якщо форма, що включається, має те ж ім'я, яке має одна з вже наявних в проекті форм (наприклад Form1), то ви отримаєте попередження вигляду: «The project already contains а form or module named Form1» — «Проект вже містить форму або модуль з ім'ям Form1». В результаті форма в проект не включиться. Аналогічний варіант буде, якщо в проекті вже є модуль Unit1 і ви намагаєтеся включити з іншого каталогу модуль форми, що теж має ім'я Unit1, то вам буде видано таке ж попередження і новий модуль в проект не включиться.

Вирішити подібні конфлікти можна таким чином. Перейменуйте у вашому проекті форму, що викликала конфлікт (задайте для неї нове ім'я у властивості Nаme). Якщо конфлікт викликаний збігом імен модулів, то збережете конфліктуючий модуль командою File/SaveAs, давши йому нове ім'я. Після цього можете повторити спробу додавання в проект нової форми.

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

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

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

Щоб уникнути сумісного володіння формою декількома проектами, після того, як ви включили в новий проект форму з іншого, перейдіть у вікні Редактора Коду в модуль цієї форми і виконайте команду File/Save As, зберігши модуль в каталозі нового проекту і, якщо хочете, під іншим ім'ям (ім'я змінювати не обов'язково). В цьому випадку різні проекти використовуватимуть абсолютно різні копії однієї форми і зміни однієї з них не торкнуться інших проектів.

Можна, звичайно, створити копію форми і іншими способами. По-перше, можна просто скопіювавши відповідні файли з одного каталогу в іншій. Тільки не забудьте при цьому, що форма — це не тільки файл модуля .срр, але ще його заголовний файл .h і файл зображення .dfm. Отже копіювати треба всі три файли. Файл об'єктного модуля можна не копіювати, оскільки він буде створений C++Builder в процесі компіляції.

Ще один спосіб створення автономної копії форми — використання меню С++Builder. Ви можете у будь-який момент послідовно виконати команди File/ Open, вказавши файл форми, що відкривається, і команду File/SaveAs. Перша з цих команд відкриє форму, а друга збереже її у вказаному каталозі під вказаним ім'ям. Перевага такої операції полягає в тому, що не потрібно думати про сукупність файлів, що зберігаються. C++Builder автоматично скопіює не тільки файл .срр, але і файли .h і .dfm.

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