Главная страница
Навигация по странице:

  • ІІІ. Виклад нового матеріалу План лекції 1. Компонент Chart 2. Компонент Animate 3. Компонент І. Узагальнення та систематизація знань.

  • Контрольні питання

  • Зміст лекції

  • Лекції_1_ІЗВП. Коледж промислової автоматики та інформаційних технологій


    Скачать 1.63 Mb.
    НазваниеКоледж промислової автоматики та інформаційних технологій
    Дата07.09.2021
    Размер1.63 Mb.
    Формат файлаpdf
    Имя файлаЛекції_1_ІЗВП.pdf
    ТипРобоча програма
    #230328
    страница6 из 7
    1   2   3   4   5   6   7
    Лекція №1.3.2 Тема Компоненти для побудови графіків та відображення мультімедіа
    Мета: ознайомитися з відображенням графічної інформації, такої як графіки та діаграми, відеоінформація; познайомитися з компонентами та їх властивостями, принципами використання
    Література
    1.Б.Страуструп Программирование. Принципы и практика с использованием C++» Вильямс 2016 2. Стивен Прата Язык программирования С Вильямс 2013 3. Cухарев М. C++ Builder Полное руководство Наука и техника 2008
    Хід заняття І. Організаційний момента) готовність групи до заняття; б) психоемоційний настрій; в) перевірка присутніх.
    ІІ. Актуалізація опорних знань студентів а) повідомлення теми та мети заняття; б) відповіді на запитання:
    - Які є засоби роботи з графічними зображеннями?
    - Назвіть 3 основні властивості компонента Shape.
    - Що являє собою холст в програмуванні?
    - Які є методи у об’єктів класа TCanvas?
    ІІІ. Виклад нового матеріалу План лекції
    1. Компонент Chart
    2. Компонент Animate
    3. Компонент І. Узагальнення та систематизація знань.

    V. Підведення підсумків заняття. І. Домашнє завдання:

    Ознайомитись з теоретичними відомостями лекції 1.3.2

    Вивчити основні поняття лекції

    72

    Дати відповіді на контролдьні питання
    Контрольні питання:
    1.
    Який компонент дозволяє побудувати графіки та діаграми?
    2.
    Які властивості компонента Chart?
    3. У чому різниця між компонентами Animate та MediaPlayer?
    4. За що відповіда властивість CommonAvi компонента Animate?
    Зміст лекції
    Тепер розглянемо компонент Chart. Цей компонент дозволяє будувати різні діаграми та графіки, які виглядають дуже ефектно. Компонент Chart має безліч властивостей, методів, подій, так що якщо всі їх розглядати, то цьому довелося б присвятити цілий розділ. Тому обмежимося розглядом тільки основних характеристик Chart. Аз рештою ви можете ознайомитися у вбудованій довідці
    C++ Builder або просто випробувати їх, експериментуючи з діаграмами. Компонент Chart є контейнером об'єктів типу серії TChartSeries - серій даних, що характеризуються різними стилями відображення. Кожен компонент може включати кілька серій. Якщо ви хочете відображати графік, то кожна серія буде відповідати одній кривій на графіку. Якщо ви хочете відображати діаграми, то для деяких видів діаграм можна накласти один на одного кілька різних серій, для

    73
    інших (наприклад, для кругових діаграм) це, ймовірно, буде виглядати непривабливо. Однак, і в цьому випадку ви можете задати для одного компонента
    Chart кілька серій однакових даних з різним типом діаграми. Тоді, роблячи в кожний момент часу активною одну з них, ви можете надати користувачеві вибір типу діаграми, що відображає його цікавлять дані. Компонент Animate Компонент Animate значок якого знаходиться на вкладці Win32 (мал. 3.2.1.), дозволяє відтворювати просту, не супроводжувану звуком анімацію, кадри якої знаходяться в файле. Рис. 3.2.1. Значок компоненту Animate Компонент Animate додається до форми звичайним способом. Після того, як компонент буде доданий до форми, слід виконати його налаштування — встановити значення властивостей. Властивості компоненту перераховані в таблиці. 3.2.1.
    Таблиця 3.2.1. Властивості компоненту Animate
    Властивість
    Опис
    Name
    Ім'я компоненту. Використовується для доступу до властивостей компоненту і для управління його поведінкою
    Filename
    Ім'я файла, в якому знаходиться анімація, що відображається за допомогою компоненту
    Framewidth
    Ширіна кадрів анімації
    Frameheight
    Висота кадрів анімації
    Framecount
    Кількість кадрів анімації

    74
    Autosize
    Ознака автоматичної зміни розміру компоненту відповідно до розміру кадрів анімації
    Cente-r
    Ознака центрування кадрів анімації в полі компоненту. Якщо значення властивості рівне true і розмір компоненту більше розміру кадрів (Autosize = false), кадри анімації розташовуються в центрі поля компоненту
    Startframe Номер кадру, з якого починається відображення анімації
    Stopframe Номер кадру, на якому закінчується відображення анімації
    Active
    Ознака активізації процесу відображення анімації
    Color
    Колір фону компоненту (колір "екрану"), на якому відтворюється анімація
    Transparent Режим використання "прозорого" кольору при відображенні анімації
    Repetitions
    Кількість повторів відображення анімації
    COMMONAVI Визначає стандартну анімацію Windows (див. таблиці. 3.2.2) Компонент Animate дозволяє програмістові використовувати в своїх програмах стандартні анімації
    Windows. Вид анімації визначається значенням властивості COMMONAVI. Значення властивості задається за допомогою
    іменованої константи. У таблиці. 3.2.2 приведені деякі константи, вид анімації і опис процесів, для ілюстрації яких використовуються ці анімації.
    Таблиця 3.2.2. Значення властивості conwonavI визначає анімацію
    Значення
    Анімація
    Процес avicopyfiles
    Копіювання файлів avideletefile
    Видалення файлу avirecyclefile
    Видалення файлу в корзину

    75
    Слід ще раз звернути увагу, що компонент Animate призначений для відтворення файлов, які містять тільки анімацію. При спробі записати у властивість Filename ім'я файлу, в якому знаходиться супроводжувана звуком анімація, виникає виключення і C++ Builder виводить повідомлення про помилку Cannot open AVI.
    Наступна програма (вид її діалогового вікна приведений на мала текст в лістингу 3.2.1) демонструє використання компоненту Animate для проглядання анімації. Рис. 3.2.2. Форма програми "Проглядання анімації"
    Після запуску програми у формі буде виведений перший кадр анімації, яка знаходиться в каталозі проекту. Якщо жодного файлу з розширенням avi у каталозі проекту немає, те поле компоненту Animate залишиться порожнім.
    Ім'я файлу, в якому знаходиться анімація, можна ввести в поле Edit1 або вибрати в стандартному діалоговому вікні Відкрити файл яке стає доступним в результаті клацання на кнопці Вибрати. Доступ до стандартного діалогового вікна Відкрити файл забезпечує компонент opendialog1.

    76 Значок компоненту opendialog знаходиться на вкладці Dialogs.
    Програма "Проглядання анімації" забезпечує два режими перегляду: безперервний і по кадрах. Кнопка Button1 використовується як для ініціалізації процесу відтворення анімації, так і для його припинення. Процес безперервного відтворення анімації ініціює процедура обробки події onclick на кнопці Пуск яка привласнює значення true властивості Active. Ця ж процедура замінює текст на кнопці Button1 з "Пуск" на "Стоп. Режим відтворення анімації вибирається за допомогою перемикачів Radiobutton1 і Radiobutton2.
    Процедури обробки події Onclick на цих перемикачах зміною значення властивості Enabled блокують або, навпаки, роблять доступними кнопки управління: активізації відтворення анімації (Buttoni), переходу до наступного (Button2) і попереднього (Buttons) кадру.
    Під час безперервного відтворення анімації процедура обробки події onckick на кнопці Стоп (Buttoni) привласнює значення false властивості Active і тим самим зупиняє процес відтворення анімації.
    Лістинг 3.2.1. Використання компоненту Animate
    // обробка події Oncreate void__fastcall Tforml::formcreate(Tobject *Sender)
    {
    Tsearchrec sr; // містить інформацію про файл, знайдений функцією Findfirst
    // знайдемо файл в поточному каталозі if (Findfirst("*.avi",faAnyFile, sr) == 0)
    {
    Editl->text = sr.Name;
    /* якщо анімація містить звук, то при try
    Animatel->filename = sr.Name;
    } catch (Exception &e)
    { return;
    }

    77
    Radiobuttonl->enabled = true;
    Radiobutton2->enabled = true;
    Buttonl->enabled = true; } }
    // клацання на кнопці Вибрати void __fastcall Tforml::button4click(Tobject *Sender)
    {
    Opendialogl->initialdir = "";
    // відкрити каталог, з якого запущена програма
    Opendialogl->filename = "*.avi";
    // вивести список файлов if ( Opendialogl->execute()) {
    // користувач вибрав файл і натиснув кнопку Відкрити Компонент Animate може відображати тільки просту не супроводжувану звуком анімацію. Тому при виконанні наступної інструкції можлива помилка try
    {
    Animatel->filename = Opendialogl->filename;
    } catch (Exception &e)
    {
    Editl-xtext = "";
    // зробимо недоступними кнопки управління
    Radiobuttonl->enabled = false;
    Radiobutton2->enabled = false;
    Buttonl->enabled = false;
    Button2->enabled = false;
    Button3->enabled = false;
    // повідомлення про помилку Ansistring msg =
    "Помилка відкриття файлу " +
    Opendialogl->filename +
    Showmessage(msg); return;
    }

    78
    Editl-xtext = Opendialogl->filename;
    // відобразити ім'я файлу
    Radiobuttonl->checked = true;
    // режим перегляду — безперервно
    Buttonl->enabled = true;
    // кнопка Пуск доступна Button2->enabled = false;
    // кнопка Попередній кадр недоступна
    Button3->enabled = false;
    // кнопка Наступний кадр недоступна
    Radiobuttonl->enabled = true;
    Radiobutton2->enabled = true;
    }
    }
    // клацання на кнопці Пуськ/стоп void__fastcall Tforml::buttonlclick(Tobject *Sender)
    { if (Animatel->active)
    {
    // анімація відображається, клацання на кнопці Стоп
    Animatel->active = false; Buttonl->
    Caption = "Пуск
    Radiobutton2->enabled = true;
    } else // клацання на кнопці Пуск
    (
    // активізувати відображення анімації
    Animatel->startframe = 1;
    // з першого кадру
    Animatel->stopframe = Animatel->framecount;
    // по останній кадр
    Animatel->active = true;
    Buttonl->caption = "Стоп

    79
    Radiobutton2->enabled = false;
    } }
    // вибір режиму проглядання всієї анімації void __fastcall Tforml::radiobuttonlclick(Tobject *Sender)
    {
    Buttonl->enabled = true; // кнопка Пуськ/стоп доступна
    // зробити недоступними кнопки режиму перегляду по кадрах
    Button2->enabled = false;
    Button3->enabled = false;
    Animatel->active = false; }
    // вибір режиму перегляду по кадрах void __fastcall Tforml::radiobutton2click(Tobject *Sender)
    {
    Buttonl->enabled = false; // кнопка Пуськ/стоп недоступна
    Button2->enabled = true; // кнопка Наступний кадр доступна
    Button3->enabled = false; // кнопка Попередній кадр недоступна
    // відобразити перший кадр
    Animatel->startframe =1;
    Animatel->stopframe = 1;
    Animatel->active = true;
    Cframe =1; // запам'ятаємо номер кадру, що відображається
    }
    // клацання на кнопці Наступний кадр void__fastcall Tforml::button2click(Tobject *Sender)
    {
    Cframe++;
    // відобразити кадр
    Animatel->startframe = Cframe;
    Animatel->stopframe = Cframe;
    Animatel->active = true; if (Cframe > 1)
    Button3->enabled = true;

    80 if (Cframe == Animatel->framecount)
    // відобразили останній кадр
    Button2->enabled = false;
    // кнопка Наступний кадр недоступна }
    // клацання на кнопці Попередній кадр void__fastcall Tforml::button3click(Tobject *Sender)
    { if (Cframe == Animatel->framecount)
    // останній кадр Button2->enabled = true;
    Cframe—;
    // відобразити кадр
    Animatel->startframe = Cframe;
    Animatel->stopframe = Cframe;
    Animatel->active = true; if (Cframe == 1)
    Button3->enabled = false;
    // кнопка Наступний кадр недоступна Компонент Mediaplayer Компонент Mediaplayer забезпечує відтворення звукових файлів різних форматів (WAV, MID, RMI, МРЗ), повноцінної, супроводжуваної звуком анімації і відеороликів (AVI) і музичних компакт-дисків. Значок компоненту Mediaplayer знаходиться на вкладці System (мал. 3.2.3). Рис. 3.2.3. Значок компоненту Mediaplayer Компонент Mediaplayer є групою кнопок (мал. 3.2.4), подібних тим, які можна бачити на звичайному аудіо- або відеоплеєрі. Призначення цих кнопок пояснене в таблиці. 3.2.3. Властивості компоненту Mediaplayerдоступні під час розробки форми, приведені в таблиці. 3.2.4.

    81 Рис. 3.2.4. Компонент Mediaplayer
    Таблиця 3.2.3. Кнопки компоненту Mediaplayer Кнопка
    Позначення Дія
    Відтворення btplay
    Відтворення звуку або відео Пауза btpause
    Припинення відтворення Стоп btstop
    Зупинка відтворення
    Наступний btnext
    Перехід до наступного кадру
    Попередній btprev
    Перехід до попереднього кадру
    Крок btstep
    Перехід до наступного звукового фрагмента, наприклад, до наступної пісні на CD Назад btback
    Перехід до попереднього звукового фрагмента, наприклад, до попередньої пісні на CD
    Запис btrecord
    Активізує процес запису
    Відкрити bteject
    Відкриває дисковод комп'ютера
    Таблиця 3.2.4. Властивості компоненту Mediaplayer
    Властивість Опис
    Name
    Ім'я компоненту. Використовується для доступу до властивостей компоненту і для управління роботою плеєра
    Devicetype Тип пристрою.
    Визначає конкретний пристрій, який є компонентом Mediaplayer. Тип пристрою задається іменованою константою dtautoselect — тип пристрою визначається автоматично по розширенню файлу dtvaweaudio — програвач звуку dtavlvideo—

    82 відеопрогравач; dtcdaudio — проигрыватель
    Filename
    Ім'я файлу, в якому знаходиться відтворний звуковий фрагмент або відеоролик
    Autoopen
    Ознака автоматичного завантаження відразу після запуску програми, файлу відеоролика або звукового фрагмента
    Display
    Визначає компонент, поверхня якого використовується як екран для відтворення відеоролика (зазвичай як екран для відображення відео використовують компонент Panel)
    Visiblebuttons
    Складена властивість. Визначає видимі кнопки компоненту.
    Дозволяє зробити невидимими деякі кнопки
    Окрім властивостей, доступних в процесі розробки форми, компонент Mediaplayer надає властивості, доступні під час роботи програми
    (таблиця. 3.2.5), які дозволяють отримати інформацію про стан медіаплєєра, відтворний файл або трек Audio CD. Слід звернути увагу, що значення властивостей, що містять інформацію про тривалість, можуть бути представлені в різних форматах. Найбільш універсальним форматом є формату якому тривалість виражається в мілісекундах. Деякі пристрої підтримують декілька форматів. Наприклад, якщо Mediaplayer використовується для відтворення Audio
    CD, то інформація про відтворний трек може бути представлена у форматі tftmsf (Track, Minute, Second, Frame — трек, хвилина, секунда, кадр. Для перетворення мілісекунд в хвилини і секунди треба взкористуватися відомими співвідношеннями. Якщо значення властивості представлене у форматі tftmsf то для перетворення можна скористатися макросами Mci_tmsf_track,
    Mci_tmsf_second і Mci_tmsf_ MINUTE. Оголошення цих і інших корисних макросів можна знайти у файлі mmsystem.h.

    83
    Таблиця 3.2.5. Властивості компоненту Mediaplayerдоступні під час роботи програми
    Властивість Опис
    Length
    Довжина (час, необхідний для відтворення) відкритого файлу
    (наприклад, WAV або AVI) або всіх треків Audio CD
    Tracks
    Кількість треків на відкритому пристрої (кількість композицій на
    Audio CD)
    Tracklength Довжина (тривалість) треків. Властивістю є масив
    Position
    Позиція (час від початку) в процесі відтворення трека
    Timeformat Формат представлення значень властивостей Length, Tracklength і Position. Найбільш універсальним є формат tfmilliseconds . Якщо медіаплєєр є програвачем звукових CD, то зручно використовувати формат tftmsf
    Mode Стан пристрою відтворення. Пристрій може знаходитися в стані відтворення (mpplaying). Процес відтворення може бути зупинений
    (mpstopped) або припинений (mppaused). Пристрій може бути не готове до роботи (mpnotready) або в пристрої (дисководе) може бути відсутнім носій (mpopen)
    Display
    Екран — поверхня, на якій здійснюється відображення кліпу. Якщо значення властивості не задане, то відображення здійснюється в окремому, створюваному під час роботи програми вікні
    Displayrect Розмір і положення області відображення кліпу на поверхні ачрана Компонент Mediaplayer надає методи (таблиця. 3.2.6), використовуючи які можна управляти роботою медіаплєєра з програми так, як ніби це робить користувач.

    84
    Таблиця 3.2.6. Методи компоненту Mediaplayer Метод
    Дія
    Play()
    Активізує процес відтворення. Дія методу аналогічно клацанню на кнопці Play
    Stop ( )
    Зупиняє процес відтворення
    Pause ( )
    Припиняє процес відтворення
    Next ( )
    Перехід до наступного трека, наприклад до наступної композиції на
    Audio CD
    Previous (
    )
    Перехід до попереднього трека, наприклад до наступної композиції на
    Audio CD
    Step ( )
    Перехід до наступного кадру
    Back ( )
    Перехід до попереднього кадру
    Відтворення звуку Як приклад використання компоненту Mediapiayer для відтворення звуку розглянемо програму, використовуючи яку, можна прослуховувати звукові фрагменти, супроводжуючі події Windows, — такі, як почало і завершення роботи, появу діалогового вікна і ін. Форма і діалогове вікно програми "Звуки Windows" представлені на мал. 3.2.5, текст — в лістингу 3.2.2, а значення властивостей компоненту Mediapiayer1 — в таблиці. 3.2.7.

    85 Рис. 3.2.5. Форма і діалогове вікно програми "Звуки Windows"
    Таблиця 3.2.7. Значення властивостей компоненту Mediaplayer1 Компонент
    Значення
    Devicetype dtautoselect
    Visiblebuttons .btNext false
    Visiblebuttons . Btprev false
    Visiblebuttons .btStep false
    Visiblebuttons. btback false
    Visiblebuttons .btRecord false
    Visiblebuttons. bteject false
    Помімо доомпонента Mediaplayer на формі знаходиться компонент Listbox який використовується для вибору звукового файлу, і два компоненти перший з яких використовується для виведення інформаційного повідомлення, другий — для відображення імені файлу, вибраного користувачем.
    Лістинг 3.2.2. Використання компоненту Mediaplayer для відтворення звуку
    void __fastcall Tforml::formcreate(Tobject *Sender)
    { char *wd; // каталог Windows

    86 wd = (char*)Allocmem(Max_path);
    Getwindowsdirectory(wd,max_path);
    Soundpath = wd;
    // звукові файли знаходяться в підкаталозі Media
    Soundpath = Soundpath + "\\media\\";
    // сформуємо список звукових файлів
    1   2   3   4   5   6   7


    написать администратору сайта