- •Палітра Компонентів Delphi
- •Редактор Коду Delphi
- •Конструктор Форм
- •Інспектор Об’єктів. Принцип візуальної розробки програм
- •Завершення роботи з проектом та створення нового проекту
- •Збереження проекту
- •Відкриття існуючого проекту
- •Робота з Delphi-програмою Структура Delphi-програм
- •Виконання Delphi-програми
- •Завершення виконання Delphi-програми
- •Лабораторна робота №1
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №2
- •Розробка проекту «Діалог»
- •Мал. Діалог Аналіз проекту
- •Хід роботи
- •Завдання для самостійного виконання
- •Лабораторна робота №3
- •Завдання
- •Теоретичні відомості
- •Лабораторна робота №4
- •Розробка проекту «Ваша вага»
- •Хід роботи
- •Розробка проекту «Обмін валюти»
- •Хід роботи
- •Лабораторна робота №5
- •Завдання
- •Хід роботи
- •Теоретичні відомості Оператори if і case мови Паскаль
- •Кнопки-перемикачі в Delphi|
- •Лабораторна робота №6
- •Завдання
- •Хід роботи
- •Теоретичні відомості Типи даних для роботи з|із| рядками Короткі рядки типу|типа| ShortString| і String|[n]
- •Довгий рядок типу|типа| String|
- •Компонент tComboBox|
- •Компонент tBitBtn|
- •Обробка подій
- •Лабораторна робота №7
- •Розробка проекту «Гороскоп»
- •Хід роботи
- •Розробка проекту «Фізичний конвектор»
- •Хід роботи
- •Лабораторна робота №8
- •Розробка проекту «Рейтинг країн за результатами олімпійських змагань»
- •Хід роботи
- •Лабораторна робота №9
- •Розробка проекту «Журнал олімпіади»
- •Хід роботи
- •Лабораторна робота №10
- •Завдання
- •Хід роботи
- •2. Установка
- •3. Тестування створеної компоненти
- •Лабораторна робота №11
- •Розробка проекту «Побудова графіка функції»
- •Хід роботи
- •Лабораторна робота №12
- •Розробка проекту «Графічний конструктор»
- •Хід роботи
- •Лабораторна робота №13
- •Розробка проекту «Чат для локальної та глобальної мережі»
- •Хід роботи
- •Розробка форми на настройок
- •Розробка програмного коду
- •Лабораторна робота №14.
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Етапи створення баз даних в Delphi.
- •Компонент тТаblе
- •Модуль даних
- •Лабораторна робота №15
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №16
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №17
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Лабораторна робота №18
- •Завдання
- •Хід роботи
- •Теоретичні відомості
- •Список літератури
Лабораторна робота №12
Тема: Створення програми з використанням мультимедіа.
Мета роботи: вивчити можливості мультимедіа в Delphi. Написати і налагодити програму побудови на екрані.
Розробка проекту «Графічний конструктор»
Завдання. Створити програму, за допомогою якої користувач зміг би із запропонованого набору фігур зібрати та розфарбувати машинку, повантажити на неї мишку та відправити її в дорогу. «Урочисту» подію старту відзначити святковим салютом
Аналіз проекту. Для створення графічного конструктора необхідно познайомитись із засобами Delphi, які забезпечують виведення анімованих стандартних зображень впродовж певного інтервалу часу, причому користувач повинен мати змогу спостерігати за ходом цього процесу.
Для розробки цього проекту скористаємось такими компонентами Delphi:
Animate (вкладка Win32 палітри компонентів) – анімація, що використовується для виведення стандартних відео кліпів ОС Windows та «німих» відеофайлів *.avi;
Timer (вкладка System палітри компонентів) – таймер. Використовується для відліку інтервалів реального часу;
ProgressBar (вкладка Win32 палітри компонентів) – індикатор процесу, за допомогою якого можна відображати перебіг виконання певного процесу.
Для збирання машинки основне поле форми відведемо під компонент Panel, з яким ви вже ознайомлені, але компонент Panel використовуватиметься для об'єднання кількох компонентів.
На цьому компоненті будемо розміщувати деталі конструктора: різні види компонента Shape (вкладка Additional палітри компонентів) – фігура, компонент Image та компонент Label. Для того, щоб ці компоненти були «прив'язані» до компонента Panel, необхідно спочатку розмістити на формі цей компонент, а потім з палітри компонентів розміщувати дочірні компоненти.
Для організації перетягування фігур скористаємось комбінацією обробки подій: «кнопка миші натиснута», «кнопки миші утримується», «кнопка миші відпущена».
Як відомо, до складу ОС Windows входять типові діалогові вікна (вікна вибору: файла, шрифту, кольору, настройки принтера тощо). У цьому проекті ми використаємо засіб Delphi, який дає змогу організувати виклик стандартних вікон Windows (додати до проекту невізуальні компоненти вкладки Dialogs).
Хід роботи
Алгоритм розробки проекту
Створити папку С:\Delphi\lab_12.
Створити новий проект.
Розмістити на формі компоненти Label1, Panell, BitBtnl. Встановити цим компонентам властивості за табл. 1.
Таблиця 1
Компонент |
Вкладка вікна «Інспектор об’єктів» (Object Inspector) |
Властивість (Properties)/ Подія (Events) |
Значення властивості/ обробка події (тіло процедури обробки події) |
Label1 |
Properties |
AutoSize |
False |
WordWrap |
True |
||
Caption |
Збери машинку. Повантаж мишку на машинку та натисни «Готово» |
||
Panel1 |
Properties |
Caption |
Чисте поле |
AutoSize |
False |
||
Ctl3D |
False (відключення тривимірного зображення) |
||
Color |
clBtnFace (колір об’єкта збігається з кольором форми) |
||
BitBtn1 |
Properties |
Kind |
blAll |
Caption |
Готово |
Пояснення. Кнопка «Готово» запускатиме салют і відправлятиме мишку в дорогу.
4. Компоненту Раnel1 надати такого розміру, щоб він зайняв всю форму від компонента Label1 до кнопки BitBtnl. На панелі Panell розмістити геометричні фігури Shapel-Shape3 (три прямокутника: кузов, кабіна, вікно кабіни) та Shape4, Shape5 – два кола (колеса). Для встановлення виду фігури використати властивість Shape, для встановлення стилю та кольору зафарбовування використати властивості Brush.Color, Brush.Style, для встановлення кольору та типу лінії контуру використати властивості Pen.Color, Pen.Style. На компоненті Panell розмістити такі об'єкти, як на табл. 2.
Таблиця 2
Компонент |
Вкладка вікна «Інспектор об’єктів» (Object Inspector) |
Властивість (Properties)/ Подія (Events) |
Значення властивості/ обробка події (тіло процедури обробки події) |
Label2 |
Properties |
Caption |
Миші (напис для кузова) |
Imagel |
Properties |
Picture |
Відкрити графічний файл із зображенням миші |
Зауваження. Якщо планується, що при конструюванні машинки одні об'єкти будуть накладатися на інші (наприклад, вікно кабіни на кабіну), то встановити порядок розташування об'єктів: активізувати об'єкт, викликати правою кнопкою миші контекстне меню, вибрати компонент. Зробити нижнім (верхнім).
5. Для всіх компонентів, розміщених на панелі Panel1, запрограмувати перетягування об'єктів по панелі. Для цього створити для цих компонентів процедури опрацювання подій OnMouseDown (кнопку натиснуто), OnMouseMove (кнопка миші утримується натиснутою), OnMouseUp (кнопку відпущено):
procedure TForml.Label2MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
begin
flag:=False;
end;
procedure TForml.Label2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) ;
begin
xl:=x;yl:=y; flag:=True;
end;
procedure TForml.Label2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if flag then with TShape (sender) do begin Left:=Left+x-xl;Top:=Top+y-yl; end;
end;
Пояснення. Якщо під час виконання програми кнопка миші буде натиснута в той час, коли її курсор знаходиться в області компонента Label2, змінні х1 і х2 запам'ятають координати розміщення фігури, а прапорець flag отримає значення True, що означатиме «перетягування почалось». Якщо кнопку миші не відпускати й рухатись, то працюватиме процедура TForml.Label2MouseMove, в якій відбуватиметься перерахування координат об'єкта Label2 стосовно системи координат форми.
Після того, як кнопка миші буде відпущена, спрацює процедура TForml.Label2MouseUp, де прапорець flag отримає значення False – перетягування закінчилось.
6. Зберегти проект у палці C:\Delphi\lab_l2.
7. Запустити проект та перевірити правильність його виконання: перетягуючи об'єкти на панелі – зібрати машинку та повантажити мишку на машинку. Кнопка «Готово» поки не працює.
8. Розмістити на формі об'єкт Animatel (праворуч або ліворуч від компонента Labell) – для відображення відеокліпу. Розмістити в будь-якому місці форми об'єкт Timerl – для відліку інтервалів часу. Таймер включається при присвоєнні значення True його властивості Enabled і виключається, коли виконується Timerl.Enabled:=False;
9. Поруч з кнопкою «Готово» розмістити об'єкт ProgressBarl – для відображення процесу анімації. Цей об'єкт використовується для відображення виконання тривалого процесу, який починається з моменту включення таймера. Його властивості Міn та Мах – значення діапазону зміни. Властивість Position містить поточне значення величини.
10. Встановити об'єктам такі властивості (табл. 3).
Таблиця 3
Компонент |
Вкладка вікна «Інспектор об’єктів» (Object Inspector) |
Властивість (Properties)/ Подія (Events) |
Значення властивості/ обробка події (тіло процедури обробки події) |
Animate1 |
Properties |
Active |
False |
AutoSise |
True |
||
Visible |
False |
||
Timer1 |
Properties |
Interval |
500 |
Enabled |
False |
||
ProgressBar1 |
Properties |
Visible |
False |
Max |
10 |
11. Для кнопки «Готово» створити процедуру обробки події OnClick:
Labell.Font.Color:=clblue;
Labell.Caption:='Щасливої дороги!';
Animate1.FileName:='bart.avi';
Animatel.Active:=True;
Animatel.visible:=True;
Timerl.Enabled:=True;
ProgressBar1.Visible:=True;
ProgressBarl.show;
12. Для таймера створити процедуру обробки події ОnТіmеr (для цього у вікні Інспектор об'єктів на вкладці Events (Події) двічі клікнути у полі праворуч від події ОnТіmеr):
ProgressBarl.Position:=ProgressBarl.Position+1;
if ProgressBarl.Position>=ProgressBarl.max then
begin
Timerl.enabled:=False;
ProgressBarl.Position:=0;
ProgressBarl.hide;
Animatel.Stop;
end;
13. Зберегти проект у палці C:\Delphi\lab_l2.
14. Запустити проект та перевірити правильність його виконання.
Питання для самоконтролю:
1. Які компоненти надає Delphi в розпорядження програміста, що дозволяють розробляти мультимедійні програми?
2. Який компонент дозволяє відтворювати просту анімацію, кадри якої знаходяться в Avi-файлі?
3. Яка властивість зберігає ім'я Avi-файла, в якому знаходиться анімація, що відображається за допомогою компоненту?
4. Яка властивість задає номер кадру, з якого починається відображення анімації?
5. Яка властивість задає номер кадру, на якому закінчується відображення анімації?
6. Яка властивість задає кількість повторів відображення анімації?
7. Який компонент дозволяє відтворювати відеоролики, звук і супроводжувану звуком анімацію?
8. Яка властивість визначає компонент, на поверхні якого відтворюється відеоролик?
9. Яка властивість визначає видимі кнопки компоненту, а також дозволяє зробити невидимими деякі кнопки?
10. Яка властивість задає ознаку автоматичного відкриття відразу після запуску програми, файла відеоролика або звукового фрагмента?
