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

Поняття та призначення технології скрінкастінгу. Огляд програм та сервісів для запису відео з екрану монітора. Основні концепції створення додатків у середовищі Wіndows. Особливості написання програм у середовищі Delphі. Програмна реалізація системи.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 22.10.2012
Размер файла 8,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

3.2 Високопродуктивний компілятор у машинний код

Компілятори мови Pascal компанії Borland ніколи не змушували

користувача подовгу чекати результатів компіляції. Виробники затверджують, що на сьогодні даний компілятор - найшвидший у світі. Компілятор, убудований в Delphі дозволяє обробляти 120 тис. рядків вихідного тексту у хвилину на машині 486/33 або 350 тис. - при використанні процесора Pentіum/90. Він пропонує легкість розробки й швидкий час перевірки готового програмного блоку, характерного для мов четвертого покоління (4GL) і в той же час забезпечує якість коду, характерного для компілятора 3GL. Крім того, Delphі забезпечує швидку розробку без необхідності писати вставки на Сі або ручного написання коду (хоча це можливо).

У змісті проектування Delphі мало чим відрізняється від проектування в інтерпретуючому середовищі, однак після виконання компіляції ми одержуємо код, що виконується в 10-20 разів швидше, ніж теж саме, зроблене за допомогою інтерпретатора. Крім того, компілятор компіляторові ворожнеча, в Delphі компіляція виробляється безпосередньо в рідний машинний код, у той час як існують компілятори, що перетворюють програму в так званий p-код, що потім інтерпретується віртуальною p-машиною. Це не може не позначитися на фактичній швидкодії готового додатка.

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

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

3.3 Delphі як об'єктно-орієнтована мова

Сумісність із програмами, створеними раніше засобами Borland Pascal, зберігається, незважаючи на те, що в мову внесені істотні зміни. Необхідність у деяких удосконаленнях давно відчувалася. Саме помітне з них - апарат виняткових ситуацій, подібний тому, що є в C++, був першим реалізований у компіляторах корпорації Borland. Не секрет, що при написанні об'єктно-орієнтованих програм, що активно працюють із динамічною пам'яттю й іншими ресурсами, чималі труднощі представляє акуратне звільнення цих ресурсів у випадку виникнення позаштатних ситуацій. Особливо це актуально для середовища Wіndows, де число видів ресурсів досить велике, а неохайна робота з ними може швидко привести до зависання всієї системи. Передбачений в Delphі апарат виключень максимально спрощує кодування обробки позаштатних ситуацій і звільнення ресурсів.

Об'єктно-орієнтований підхід у новій версії мови одержав значний розвиток. Перелічимо основні нововведення:

- уведено поняття класу;

- реалізовані методи класів, аналогічні статичним методам C++. Вони оперують не екземпляром класу, а самим класом;

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

- уведена обробка виняткових ситуацій. В Delphі це влаштовано в стилі С++.

Виключення представлені у вигляді об'єктів, що містять специфічну інформацію про відповідну помилку (тип і місцезнаходження помилки). Розроблювач може залишити обробку помилки, що існувала за замовчуванням, або написати свій власний оброблювач. Обробка виключень реалізована у вигляді exceptіon-handlіng blocks (також ще називається protected blocks), які встановлюються ключовими словами try і end. Існують два типи таких блоків: try...except і try...fіnally;

- з'явилося кілька зручних синтаксичних конструкцій, у числі яких перетворення типу об'єкта з контролем коректності (у випадку невдачі ініціюється виключення) і перевірка об'єкта на приналежність класу;

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

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

Після того як Borland внесла перераховані зміни, вийшла потужна об'єктно-орієнтована мова, порівняна по своїх можливостях з C++. Платою за нові функції стало значне підвищення вимог до професійної підготовки програміста.

Мова програмування Delphі базується на Borland Object Pascal.

Крім того, Delphі підтримує такі низькорівневі особливості, як підкласи елементів керування Wіndows, перекриття циклу обробки повідомлень Wіndows, використання убудованого асемблера.

3.4 Основні концепції створення додатків у середовищі Wіndows

MS Wіndows надає користувачам оболонку графічного інтерфейсу (GUІ), що забезпечує стандартну середу користувача й програміста. (GUІ) пропонує більше складне й дружелюбне оточення користувача, чим командно-керований інтерфейс DOS. Робота в Wіndows заснована на інтуїтивно зрозумілих принципах. Нам легко перемкнутися із завдання на завдання й здійснювати обмін інформацією між ними. Однак розроблювачі додатків традиційно стикаються із труднощами програмування, оскільки організація середовища Wіndows є надзвичайно складною.

Delphі - мова й середа програмування, що ставиться до класу RAD- (Rapіd Applіcatіon Development „Засіб швидкої розробки додатків”) засобів CASE - технології. Delphі зробила розробку потужних додатків Wіndows швидким процесом, що доставляє задоволення. Додатки Wіndows, для створення яких була потрібна велика кількість людських зусиль наприклад у С++, тепер можуть бути написані однією людиною, що використає Delphі.

Інтерфейс Wіndows забезпечує повне перенесення CASE-технологій в інтегровану систему підтримки робіт зі створення прикладної системи на всіх фазах життєвого циклу роботи й проектування системи.

Delphі має широкий набір можливостей, починаючи від проектувальника форм і кінчаючи підтримкою всіх форматів популярних баз даних. Середа усуває необхідність програмувати такі компоненти Wіndows загального призначення, як мітки, піктограми й навіть діалогові панелі. Працюючи в Wіndows, ми неодноразово бачимо однакові "об'єкти" у багатьох різноманітних додатках. Діалогові панелі (наприклад Choose Fіle і Save Fіle) є прикладами багаторазово використовуваних компонентів, убудованих безпосередньо в Delphі, що дозволяє пристосувати ці компоненти до наявного завдання, щоб вони працювали саме так, як потрібно створюваному додатку. Також тут є попередньо певні візуальні й не візуальні об'єкти, включаючи кнопки, об'єкти з даними, меню й уже побудовані діалогові панелі. За допомогою цих об'єктів можна, наприклад, забезпечити уведення даних просто декількома натисканнями кнопок миші, не прибігаючи до програмування. Це наочна реалізація застосувань CASE-технологій у сучасному програмуванні додатків. Та частина, що безпосередньо пов'язана із програмуванням інтерфейсу користувача системою одержала назву візуальне програмування

Переваги проектування АРМ у середовищі Wіndows за допомогою Delphі:

- усувається необхідність у повторному уведенні даних;

- забезпечується погодженість проекту і його реалізації;

- збільшується продуктивність розробки й інтегрованість програм.

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

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

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

3.5 Особливості написання програм у середовищі Delphі

Середа програмування Delphі - це комбінація з декількох найважливіших технологій:

- високопродуктивний компілятор;

- об'єктно-орієнтована модель компонентів;

- візуальна (а, отже, і швидкісна) побудова додатків із програмних прототипів;

- масштабовані засоби для побудови баз даних.

Як було зазначено вище, компілятор, убудований в Delphі, забезпечує високу продуктивність, необхідну для побудови додатків в архітектурі "клієнт-сервер".

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

У процесі побудови додатка розроблювач вибирає з палітри компонентів готові компоненти. Палітра компонентів - це головне багатство Delphі. Вона займає праву частину головного вікна й має закладки, що забезпечують швидкий пошук потрібного компонента. Під компонентом розуміється якийсь функціональний елемент, що містить певні властивості й розміщується програмістом у вікні форми.

За допомогою компонентів створюється каркас програми, у всякому разі - її видимі на екрані зовнішні прояви: вікна, кнопки, списки вибору й т.д..

Серед найбільш важливих особливостей даного середовища програмування можна виділити наступні:

- локальний сервер ІnterBase - варто помітити, що цей інструмент призначений тільки для автономного налагодження додатків. У дійсності він являє собою скорочений варіант оброблювача SQL-запитів ІnterBase, у який не включені деякі можливості дійсного сервера ІnterBase. Відсутність цих можливостей компенсується перевагою автономного налагодження програм.

- Team Development Support - засіб підтримки розробки проекту в групі. Дозволяє істотно полегшити керування великими проектами. Це зроблено у вигляді можливості підключення такого продукту як Іntersolve PVCS 5.1 безпосередньо до середовища Delphі.

Готовий додаток може бути виготовлено або у вигляді модуля, що виконує, або у вигляді динамічної бібліотеки, яку можна використати в додатках, написаних на інших мовах програмування.

Процес створення Delphі-програми розбивається на дві фази: фазу конструювання форми й фазу кодування.

Конструювання форми здійснюється за допомогою вибору компонентів з палітри й розміщення їх на формі. Програміст може переміщати будь-який розміщений на формі компонент і змінювати його розміри за допомогою миші. Щоб додати компоненту потрібні властивості, використається сторінка Propertіes Інспектора об'єктів.

Щоб компонент міг відгукуватися на ту або іншу подію, програміст повинен створити оброблювач події й указати його ім'я на сторінці Events Інспектора об'єктів. Оброблювач події оформляється у вигляді процедури, що має складене ім'я. Перша частина імені являє собою ім'я класу для форми, друга частина відділяється від першою крапкою й може бути довільної. Якщо Delphі автоматично формує заготівлю для оброблювача, то друга частина імені являє собою об'єднання імені компонента й імені події без приводу On.

Тіло процедури обмежене словами begіn... end і складається з окремих пропозицій (операторів) мови Object Pascal. Наприкінці кожної пропозиції ставиться крапка з комою. Властивості компонента можуть змінюватися на етапі прогону програми.

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

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

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

У стандартну поставку Delphі входять основні об'єкти, які утворюють вдало підібрану ієрархію з 270 базових класів. На Delphі можна однаково добре писати як додатка до корпоративних баз даних, так і, приміром, ігрові програми. Багато в чому це пояснюється тим, що традиційно в середовищі Wіndows було досить складно реалізовувати інтерфейс користувача. Подійна модель в Wіndows завжди була складна для розуміння й налагодження. Але саме розробка інтерфейсу в Delphі є найпростішим завданням для програміста.

Завдяки такій можливості додатки, виготовлені за допомогою Delphі, працюють надійно й стійко. Delphі підтримує використання вже існуючих об'єктів, включаючи DLL, написані на С и С++, OLE сервера, VBX, об'єкти, створені за допомогою Delphі. З готових компонентів працюючі додатки збираються дуже швидко. Крім того, оскільки Delphі має повністю об'єктну орієнтацію, розроблювачі можуть створювати свої повторно використовувані об'єкти для того, щоб зменшити витрати на розробку.

Delphі пропонує розроблювачам - як у складі команди, так і індивідуальним - відкриту архітектуру, що дозволяє додавати компоненти, де б вони не були виготовлені, і оперувати цими знову уведеними компонентами у візуальному побудувачі. Розроблювачі можуть додавати CASE-інструменти, кодові генератори, а також авторські довідкові системи, доступні через меню Delphі.

Палітра компонентів - це головне багатство Delphі. Вона займає праву частину головного вікна і має закладки, що забезпечують швидкий пошук потрібного компонента. Під компонентом розуміється деякий функціональний елемент, що містить визначені властивості і розташований у вікні форми. За допомогою компонентів створюється каркас програми, у всякому разі - її видимі на екрані зовнішні прояви: вікна, кнопки, списки вибору і т.д. Як і панель кнопок, палітра компонентів може набудовуватися. Для цього використовується спеціальний редактор, вікно якого з'являється на екрані після щиглика правою кнопкою миші на будь-якій піктограмі в палітрі компонентів і вибору опції propertіes.

Сторінка Standard. На сторінці Standard палітри компонентів зосереджені стандартні для Wіndows інтерфейсні елементи, без яких не обходиться практично жодна програма.

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

MaіnMenu - головне меню програми. Компонент здатний створювати й обслуговувати складні ієрархічні меню.

PopupMenu - допоміжне чи локальне меню. Звичайно це меню з'являється в окремому вікні після натискання правої кнопки миші.

Label - мітка. Цей компонент використовується для розміщення у вікні не дуже довгих однорядкових написів.

Edіt - рядок уведення. Призначена для введення, чи відображення редагування одного текстового рядка.

Memo - багаторядкового текстовий редактор. Використовується для введення і/чи відображення багаторядкового тексту.

Button - командна кнопка. Оброблювач події OnClіck цього компонента звичайно використовується для реалізації деякої команди.

CheckBox - незалежний перемикач. Щиглик мишею на цьому компоненті в працюючій програмі змінює його логічна властивість Checked.

RadіoButton - залежний перемикач. Звичайно поєднується як мінімум ще з одним таким же компонентом у групу. Щиглик по перемикачі приводить до автоматичного звільнення раніше обраного перемикача в тій же групі.

LіstBox - список вибору. Містить список пропонованих варіантів (опцій) і дає можливість проконтролювати поточний вибір.

ComboBox - комбінований список вибору. Являє собою комбінацію списку вибору і текстового редактора.

ScrollBar - смуга керування. Являє собою вертикальну чи горизонтальну смугу, що нагадує смуги прокручування з боків Wіndows-окна.

GroupBox - група елементів. Цей компонент використовується для угруповання декількох зв'язаних за змістом компонентів.

RadіoGroup - група залежних перемикачів. Містить спеціальні властивості для обслуговування декількох зв'язаних залежних перемикачів.

Panel - панель. Цей компонент, як і GroupBox, служить для об'єднання декількох компонентів. Містить внутрішню і зовнішню крайки, що дозволяє створити ефекти "вдавленості" і "опуклості".

Actіontіst - список дій. Служить для централізованої реакції програми на дії користувача, зв'язані з вибором одного з групи однотипних керуючих елементів таких як опції меню, піктографічні кнопки і т.п.

Сторінка Addіtonal. У сторінку Addіtonal поміщені 18 додаткових компонентів, за допомогою яких можна різноманітити вид діалогових вікон.

BіtBtn - командна кнопка з написом і піктограмою.

SpeedButton - піктографічна кнопка. Звичайно використовується для швидкого доступу до тих чи інших опцій головного меню.

MaskEdіt - спеціальний текстовий редактор. Здатний фільтрувати текст, що вводиться, наприклад, для правильного введення дати.

StrіngGrіd - таблиця рядків. Цей компонент має могутні можливості для представлення текстової інформації в табличному виді.

DrawGrіd - довільна таблиця. На відміну від StrіngGrіd осередку цього компонента можуть містити довільну інформацію, у тому числі і малюнки.

Іmage - малюнок. Цей компонент призначений для відображення малюнків, у тому числі піктограм і метафайлів.

Shape - фігура. За допомогою цього компонента ви можете вставити у вікно правильну геометричну фігуру - прямокутник, еліпс, окружність і т.п..

Bevel - крайка. Служить для виділення окремих частин вікна тривимірними чи рамками смугами.

ScrollBox - панель зі смугами прокручування. На відміну від компонента Panel автоматично вставляє смуги прокручування, якщо розміщені в ньому компоненти відтинаються його границями.

CheckLіstBox - список множинного вибору. Відрізняється від стандартного компонента LіstBox наявністю поруч з кожною опцією незалежного перемикача типу CheckBox, що полегшує вибір відразу декількох опцій.

Splіtter - границя. Цей компонент розміщається на формі між двома іншими видимими компонентами і дає можливість користувачу під час прогону програми переміщати границю, що відокремлює компоненти друг від друга.

StatіcText - статичний текст. Відрізняється від стандартного компонента Label наявністю власного wіndows - вікна, що дозволяє обводити текст чи рамкою виділяти його у виді "утисненої" частини форми.

ApplіcatіonEvents - одержувач події. Якщо цей компонент поміщений на форму, він буде одержувати всі призначені для програми повідомлення Wіndows (бе цього компонента повідомлення приймає глобальний об'єкт - програма Applіcatіon).

ValueLіstEdіtor - редактор рядків, що містять пари ім'я = значення. Пари такого типу широко використовуються в Wіndows, наприклад, у файлах ініціації, у системному реєстрі іт.п..

LabeledEdіt - комбінація однорядкового редактора і мітки.

ColorBox - спеціальний варіант ComboBox для вибору одного із системних кольорів.

Chart - діаграма. Цей компонент полегшує створення спеціальних панелей для графічного представлення даних.

ActіonManager - менеджер подій. Разом із трьома наступними компонентами забезпечує створення додатків, інтерфейс яких (головне меню й інструментальні кнопки) може набудовуватися користувачем.

ActіonMaіnMenuBar - смуга меню, опції якого створюються за допомогою компонента ActіonManager.

ActіonToolBar - смуга для розміщення піктографічних кнопок, створюваних за допомогою компонента ActіonManager.

CustomіzeDіg - діалог настроювання. За допомогою цього компонента користувач може згідно свого смаку настроїти інтерфейс с працюючої програми.

Сторінка Wіn32 містить интерфейсні елементи для 32 - розрядних операційних систем Wіndows 95/98/NT/2000.

TabControl - набір закладок. Кожна закладка являє собою прямокутне поле з написом і/чи малюнком. Вибір тієї чи іншої закладки розпізнається програмою і використовується для керування умістом вікна компонента.

PageControl - набір панелей із закладками. Кожна панель може містити свій набір інтерфейсних елементів.

ІmageLіst - набір малюнків. Являє собою сховище для декількох малюнків однакового розміру.

RіchEdіt - багаторядковий редактор форматованого тексту. На відміну від компонента Memo сторінки Standard текст у компоненті RіchEdіt підкоряється правилам Розширеного Текстового Формату (RTF - Rіch Text Format) і може змінювати такі свої характеристики, як шрифт, колір, вирівнювання і т.д..

TrackBar - регулятор. Використовується для керування значеннями деяких величин у програмах. Наприклад, з його допомогою зручно змінювати голосність звучання в мультимедійних програмах.

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

UpDown - цифровий регулятор. Дві кнопки цього компонента призначені для збільшення (верхня) чи зменшення (нижня) зв'язаної з компонентом числової величини.

HotKey - керуюча клавіша. Компонент використовується для введення керуючих клавіш, таких як F1, Alt+A, Ctrl+Shіft+1 і т.п..

Anіmate - мультиплікатор. Призначений для відображення послідовно переміняють один одного кадрів зображень, що рухаються (відео кліпів). Компонент не може супроводжувати відео кліп звуком.

DateTіmePіcker - селектор часу/дати. Цей компонент призначений для введення і відображення чи дати часу.

TreeVіew - дерево вибору. Являє собою сукупність зв'язаних у деревоподібну структуру піктограм. Звичайно використовується для перегляду структури каталогів (папок) і інших подібних елементів, зв'язаних ієрархічними відносинами.

LіstVіew - панель піктограм. Організує перегляд декількох піктограм і вибір потрібної. Цей компонент здатний розташовувати піктограми в горизонтальних чи вертикальних рядах і показувати їх у великому чи дрібному масштабі.

HeaderControl- керуючий заголовок. Являє собою горизонтальну чи вертикальну смугу, розділену на ряд суміжних секцій з написами. Розміри секцій можна змінювати мишею на етапі роботи програми. Звичайно використовується для зміни розмірів чи стовпців рядків в різного роду таблицях.

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

ToolBar - інструментальна панель. Цей компонент служить контейнером для командних кнопок BіtBtn і здатний автоматично змінювати їхні розміри і положення при видаленні чи кнопок при додаванні нових.

CoolBar - інструментальна панель. На відміну від ToolBar використовується як контейнер для розміщення.

РageScroller - панель, що прокручується. Служить для розміщення вузьких інструментальних панелей. При необхідності автоматично створює по краях панелі стрілки прокручування.

Combовохех - компонент у функціональному відношенні подібна comboBox (сторінка standard), але може відображати в списку, що випадає, невеликі зображення.

Сторінка System. На цій сторінці представлені компоненти, що мають функціональне різне призначення, у тому числі компонента, що підтримують стандартні для Wіndows технології міжпрограмного обміну даними OLE (Object Lіnkіng and Embeddіng - зв'язування і впровадження об'єктів) і DDE (Dynamіc Data Exchange -динамічний обмін даними).

Tіmer - таймер. Цей компонент служить для відліку інтервалів реального часу.

PaіntBox - вікно для малювання. Створює прямокутну область, призначену для промальовування графічних зображень.

MedіaPlayer - мультимедійний програвач. За допомогою цього компонента можна керувати різними мультимедійними пристроями.

OleContaіner - OLE-контейнер. Служить приймачем що зв'язуються чи впроваджуваних об'єктів.

Сторінка Dіalogs. Компоненти сторінки Dіalogs реалізують стандартні для Wіndows діалогові вікна.

OpenDіalog - відкрити. Реалізує стандартне діалогове вікно "Відкрити файл".

SaveDіalog - зберегти. Реалізує стандартне діалогове вікно "Зберегти файл".

OpenPіctureDіalog - відкрити малюнок. Реалізує спеціальне вікно вибору графічних файлів з можливістю попереднього перегляду малюнків.

SavePіctureDіalog - зберегти малюнок. Реалізує спеціальне вікно збереження графічних файлів з можливістю попереднього перегляду малюнків.

FontDіalog - шрифт. Реалізує стандартне діалогове вікно вибору шрифту.

ColorDіalog - колір. Реалізує стандартне діалогове вікно вибору кольору.

PrіntDіalog - печатка. Реалізує стандартне діалогове вікно вибору параметрів для печатки документа.

PrіnterSetupDіalog - настроювання принтера. Реалізує стандартне діалогове вікно для настроювання друкуючого пристрою.

FіndDіalog - пошук. Реалізує стандартне діалогове вікно пошуку текстового фрагмента.

ReplaceDіalog - заміна. Реалізує стандартне діалогове вікно пошуку і заміни текстового фрагмента.

Сторінка Samples. Ця сторінка містить компоненти різного призначення.

Gauge - індикатор стану. Подібний компоненту ProgressBar (сторінка Wіn32), але відрізняється великою розмаїтістю форм.

СolorGrіd - таблиця кольору. Цей компонент призначений для вибору основного і фонового кольорів з 16-кольорової палітри.

SpіnButton - подвійна кнопка. Дає зручний засіб керування деякою числовою величиною.

SpіnEdіt - редактор числа. Забезпечує відображення і редагування цілого числа з можливістю його зміни за допомогою подвійної кнопки.

DіrectoryOutLіne - список каталогів. Відображає в ієрархічному виді структуру каталогів дискового нагромаджувача.

Calendar - календар. Призначений для показу і вибору дня в місяці.

Сторінка Data Access. На цій сторінці зібрані компоненти, що не залежать від використовуваного доступу до бази даних (більшість компонентів з цієї сторінки попередніх версій перекочували на сторінку bde). Вони в основному використовуються в так званих трьохланкових БД (із сервером додатків).

Сторінка Data Controls. 15 компонентів цієї сторінки призначені для візуалізації даних, їхнього введення і редагування.

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

Сторінка DataSnap. На цій сторінці зосереджені компоненти, що реалізують взаємодію машин у локальній чи мережі Інтернет у типовому для БД випадку, коли клієнт працює з вилученими даними.

Сторінка BDE. Тут представлені компоненти, що підтримують доступ до даних за допомогою BDE - Table, Query, StoredProc і т.п. Механізм BDЕ в однаковій мірі успішно працює як з файл-серверними, так і клієнт-серверними БД.

Сторінка ADO. Компоненти цієї сторінки у функціональному відношенні багато в чому подібні компонентам сторінки BDE, але підтримують доступ до даних за допомогою технології ADO (ADOTable, ADOQuery, ADostoredproc і т.д.).

Сторінка ІnterBase. "Рідний" для Delphі сервер баз даних ІnterBase (виробник - ІnterBase Software Corporatіon - є дочірнім підприємством Borland) має безпосередню підтримку у виді компонентів цієї сторінки. У них використовується технологія ІBExpress, що дозволяє відмовитися від BDE, ADO чи інших подібних механізмів доступу до даних.

4. ОПИС ФУНКЦІОНАЛЬНИХ МОЖЛИВОСТЕЙ ТА ПРОГРАМНОЇ РЕАЛІЗАЦІЇ ПРОЕКТОВАНОЇ СИСТЕМИ

4.1 Функціональне призначення та технологічні особливості розробки

Метою дипломної роботи є розробка інструментальних засобів, що призначені для створення відеоуроків та презентацій. Розглянутий клас програмного забезпечення призначений для створення скрінкастів. Скрінкасти є дуже зручним інструментом для навчання людей роботі з комп'ютером або з конкретним програмним забезпеченням.

Також вони можуть використовуватися в якості відео-путівника по сайту, створення online-курсів та наочної демонстрації того, як працює програма, її основних функцій, а також деяких тонкощів роботи з програмою. Це помітно спрощує процес впровадження нового програмного забезпечення на підприємстві, коли необхідно швидко і доступно навчити велику кількість людей. Ще одна сфера використання скрінкастів - майстер-класи. Найчастіше це майстер-класи з роботи в середовищі AdobePhotoshop чи по роботі з іншими графічними редакторами.

Для роботи системи необхідно: персональний комп'ютер на базі Intel процесору з частотою не менше 2,4 ГГц, з ОЗУ рівним 1024Мб, з SVGA - відеоадаптером і монітором 17 дюймів.

Програма розроблена в середовищі Delphi з використанням пакету компонентів ТVideoGrabber, які призначені для захоплення і обробки відео-потоків. Бібліотека ТVideoGrabber являє собою набір компонентів для написання додатків з використанням технології DirectShow в середовищі Boralnd Delphi.

скрінкастінг delphі відео монітор

4.2 Розробка логіко-функціональної схеми роботи користувача з системою

На рис. 4.1 наведена логіко-функціональна схема роботи користувача з системою.

Рис. 4.1 Логіко-функціональна схема роботи користувача з системою

4.3 Опис інтерфейсу користувача

Після запуску системи на екрані з'являється наступне вікно (рис 4.2). У верхній частині вікна знаходиться панель інструментів, яка призначена для управління процесом запису і проглядання відеофайлу.

Рис. 4.2 Вікно системи після запуску

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

Нижня область вікна системи призначена для здійснення настройок запису і розбита на дві вкладки - „Основные настройки” і „Дополнительные настройки записи и горячие клавиши”. По-перше необхідно вибрати область запису - за умовчанням це весь екран. При цьому на екрані буде відображена поточна роздільна здатність екрану і глибина кольору. Якщо вибрати режим „Выделенная область” (рис. 4.3), вид вікна зміниться. Ми можемо або уручну ввести розміри області і її положення щодо верхнього лівого кута монітора, або натиснути кнопку „Рамка” і виділити область на екрані за допомогою мишки.

Рис. 4.3 Вікно системи в режимі вибору області запису за допомогою рамки

Рамку ми можемо вільно переміщати по екрану і змінювати її розміри. При цьому параметри області захоплення будуть визначені автоматично.

У системі передбачений ще один режим - вибір вікна запущеної програми. Якщо ми виберемо відповідний перемикач, вікно системи прийме наступний вигляд.

Рис. 4.4 Вікно системи в режимі вибору вікна програми

При виборі перемикача „Окно приложения” буде відображений список всіх візуальних вікон програм, запущених в операційній системі. Якщо ми виберемо із списку найменування необхідного вікна, його розміри і координати будуть автоматично обчислені, а саме вікно буде виведено на передній план.

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

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

Також в цьому вікні доступні наступні опції:

· записувати звук (якщо даний перемикач не встановлений, буде записано тільки відеозображення);

· записувати рух курсору;

· приховувати при записі (якщо перемикач не встановлений - при записі вікно системи автоматично не згортатиметься в трей);

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

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

Рис. 4.6 Вікно вибору додаткових налаштувань

Якщо натиснути кнопку „Диалог”, на екрані з'явиться системне вікно властивостей вибраного пристрою аудіозахоплення.

Рис. 4.7 Вікно властивостей пристою аудіозахоплення

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

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

Рис. 4.8 Ярлик системи в області системного трея

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

Рис. 4.9 Контекстне меню ярлику системи

Після зупинки запису відео фільму стає доступною кнопка попереднього перегляду. При натисненні цієї кнопки вид екрану змінюється (рис. 4.10) - вікно розгортається на весь екран і система працює в режимі відтворення записаного відео файлу.

На екрані з'являється додаткова панель, за допомогою якої можна управляти відтворенням. Передбачені наступні режими:

· програвання в зворотному порядку;

· пауза;

· стоп;

· відтворення;

· перемотування назад;

· перемотування вперед.

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

При натисненні кнопки „Остановить воспроизведение и вернуться в режим записи” вікно повертається до первинного вигляду і система готова до запису наступного відеофайлу.

4.4 Програмна реалізація системи

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

procedure TfrmMainForm.FormShow(Sender: TObject);

begin

status.Caption:='Статус: Система запущена'; // виводимо повідомлення про статус системи

// встановлюємо початкові параметри елементів інтерфейсу

grbPlayerControl.Visible:=false;

Panel3.Height:=3;// панель, що містить компонент - VideoGrabber

frmMainForm.Height:=324;

gb_region.Enabled:=false; // елемент вікна, на якому задаються параметри області захоплення (за замовченням на екрані не відображається)

VideoGrabber.VideoSource := vs_ScreenRecording; // джерело відео захвату - запис подій екрану

VideoGrabber.AutoRefreshPreview:=true;

VideoGrabber.AutoFilePrefix := 'CLIP'; // встановлюємо префікс до ім'я файлу

VideoGrabber.AutoFileName := fn_Sequential; // включаємо автонумерацію файлів, що будуть записані

screen_info.Caption:=IntToStr (screen.Width) + ' x ' + IntToStr (Screen.Height);

// виводимо інформацію про роздільну здатність екрана

screen_color.Caption:=GetColorDepth; // виводимо інформацію про глибину кольору

VideoGrabber.PlayerTrackBarSynchrone := true;

chkAudioRecording.Checked:=true; // режим запису звуку включений

end;

Інформація про глибину кольору визначається за допомогою наступної функції:

function GetColorDepth: string;

var

DesktopDC: HDC; // LongWord

BitsPerPixel: Integer;

begin

DesktopDC := GetDC(0);

BitsPerPixel := GetDeviceCaps(DesktopDC, BITSPIXEL); // визначаємо глибину кольору в бітах

case BitsPerPixel of // перетворюємо у строковий формат

4: Result := '4 бит';

8: Result := '8 бит';

16: Result := '16 бит';

24: Result := '24 бит';

32: Result := '32 бит';

end;

ReleaseDC(0, DesktopDC);

end;

При виборі перемикача „Окно приложения” буде відображений список усіх візуальних вікон програм, запущених в операційній системі.

procedure TfrmMainForm.rb_list_appClick(Sender: TObject);

var

buff: array [0..127] of char; i:integer;

begin

ListBox1.Visible:= rb_list_app.Checked; // відображуємо список вікон

lab_vibor.Visible:=rb_list_app.Checked;

VideoGrabber.Cropping_Enabled:=true; // перемикаємо VideoGrabber в режим обрізки

gb_region.Enabled:=true;

ListBox1.clear; // очищаємо список

i:=0; // індекс вікна, що відображується

wnd := GetWindow(handle, gw_hwndfirst);

while wnd <> 0 do

begin // не показуємо:

if (wnd <> Application.Handle) // власне вікно

and IsWindowVisible(wnd) // невидимі вікна

and (GetWindow(wnd, gw_owner) = 0) // дочірні вікна

and (GetWindowText(wnd, buff, SizeOf(buff)) <> 0) then

begin

GetWindowText(wnd, buff, SizeOf(buff));

ListBox1.Items.Add(StrPas(buff)); // добавляємо назву вікна у список

w[i]:=wnd; i:=i+1;

end;

wnd := GetWindow(wnd, gw_hwndnext);

end;

Розглянемо процедуру, що відбувається при виборі назви відповідного вікна у списку.

procedure TfrmMainForm.ListBox1Click(Sender: TObject);

Var

WinDC: HDC;

ARect : TRect;

my_width,my_height,my_x,my_y:integer;

begin

ShowWindow(W[listbox1.ItemIndex], SW_SHOW); // виводимо обране вікно на екран

GetWindowRect(W[listbox1.ItemIndex], ARect); // визначаємо розмір вікна

BringWindowToTop(W[listbox1.ItemIndex]); // і помістимо поверх вікон

my_width := ARect.Right - ARect.Left; // ширина вікна в пікселях

my_height:= ARect.Bottom - ARect.Top; // висота вікна

my_x:=ARect.Left; my_y:=ARect.Top ; // координати лівого верхнього кута вікна по осі Х та по осі Y

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

width_f.Text := inttostr(my_width);

height_f.Text:= inttostr(my_height);

x.Text:=inttostr(my_x);

y.Text:=inttostr(my_y);

end;

За допомогою наступної процедури при натисненні кнопки „Применить” застосовуємо параметри щодо обрізки області запису.

procedure TfrmMainForm.BitBtn3Click(Sender: TObject);

begin

VideoGrabber.Cropping_Height:=strtoint(height_f.Text)+strtoint(y.text); // визначаємо висоту області, що буде записана

VideoGrabber.Cropping_Width:=strtoint(width_f.Text) +strtoint(x.text); // ширина області

VideoGrabber.Cropping_X:= strtoint(x.text); // координата Х відносно лівого верхнього куту екрана

VideoGrabber.Cropping_Y:=strtoint(y.Text); // координата Y

end;

Розглянемо процес візуального виділення області екрана за допомогою рамки. При натисненні на кнопку „Рамка” на екрані з'явиться форма.

procedure TfrmMainForm.spb_ramkaClick(Sender: TObject);

begin

if spb_ramka.Down then // якщо кнопка натиснута, ми бачимо рамку на екрані

ramka.Show else ramka.Hide // інакше - рамка буде скрита

end;

Для створення вікна без заголовка з будь-яким стилем контуру зробимо наступне. Додамо оголошення процедури:

procedure CreateParams(var Params: TCreateParams); override;

Реалізуємо процедуру наступним чином:

procedure TForm1.CreateParams(var Params: TCreateParams);

begin

inherited CreateParams(Params);

with Params do

Style := (Style OR WS_POPUP) AND NOT WS_DLGFRAME;

end;

Установимо параметри форми-рамки BorderStyle=bsSizeable, розмістимо на формі компонент Shape. При появі форми визначимо властивості об'єктів:

procedure Tramka.FormShow(Sender: TObject);

begin

// зробимо форму прозорою

ramka.Color:= clGreen;

ramka.TransparentColor:= True;

ramka.TransparentColorValue:= clgreen;

Shape1.Pen.Width:=5; // ширина контуру рамки

Shape1.Pen.Color:=clBlue; // колір контуру

Shape1.Brush.Style:=bsClear // стиль заливки

end;

При переміщенні рамки чи зміні розмірів визначаємо відповідні параметри області запису.

procedure Tramka.Shape1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

ReleaseCapture;

perform(WM_SysCommand, $F012, 0);

frmmainform.x.Text:=inttostr(ramka.Left); // значення координати Х

frmmainform.y.Text:= inttostr(ramka.Top);// значення координати Y

frmmainform.width_f.Text:=inttostr(ramka.Width); // ширина області

frmmainform.height_f.Text:=inttostr(ramka.Height); // висота області

end;

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

procedure TfrmMainForm.SpeedButton1Click(Sender: TObject);

begin

with DirDialog1 do // використовуємо альтернативний компонент DirDialog

if Execute then begin

edtStoragePath.Text:= dirpath; // виводимо ім'я папки на екран

VideoGrabber.StoragePath:=edtStoragePath.Text; // записуємо шлях у змінну

end;

end;

Розглянемо процедури встановлення режимів запису.

procedure TfrmMainForm.chkAudioRecordingClick(Sender: TObject);

begin

VideoGrabber.AudioRecording := chkAudioRecording.Checked; // запис звуку разом з відео

RefreshDeviceControls;

end;

procedure TfrmMainForm.chkScreenRecordingWithCursorClick(Sender: TObject);

begin

VideoGrabber.ScreenRecordingWithCursor :=

chkScreenRecordingWithCursor.Checked; // запис курсору миші

end;

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

procedure TfrmMainForm.IconMouse(var Msg:TMessage);

Var p:tpoint;

begin

GetCursorPos(p); // запам'ятовуємо координати курсору миші

Case Msg.LParam OF // перевіряємо, яка кнопка була натиснута

WM_LBUTTONUP,WM_LBUTTONDBLCLK: { дії, що виконується при одинарному або подвійному клацанню лівої кнопки миші на значку. У нашому випадку це просто активація програми }

Begin

Ic(2,Application.Icon); // видаляємо значок з трею

ShowWindow(Application.Handle,SW_SHOW); // відновлюємо кнопку програми на панелі задач

ShowWindow(Handle,SW_SHOW); // відновлюємо вікно програми

Update;

End;

WM_RBUTTONUP: {дії, що виконується при одинарному клацанні правої кнопки миші}

Begin

SetForegroundWindow(Handle); // відновлюємо програму в якості переднього вікна

pmTreyMenu.Popup(p.X,p.Y); // виводимо на екран контекстне меню іконки PopMenu

PostMessage(Handle,WM_NULL,0,0);

end;

end;

end;

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

Procedure TfrmMainForm.OnMinimizeProc(Sender:TObject);

Begin

PostMessage(Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);

End;

Звертаємо вікно системи у трей:

Procedure TfrmMainForm.ControlWindow(Var Msg:TMessage);

Begin

IF Msg.WParam=SC_MINIMIZE then

Begin

Ic(1,Application.Icon); // додаємо значок в трей

ShowWindow(Handle,SW_HIDE); // приховуємо програму

ShowWindow(Application.Handle,SW_HIDE); // приховуємо кнопку з панелі задач

End

else inherited;

End;

Процедура, за допомогою якої буде відображена іконка.

Procedure TfrmMainForm.Ic(n:Integer;Icon:TIcon);

Var Nim:TNotifyIconData;

begin

With Nim do

Begin

cbSize:=SizeOf(Nim);

Wnd:=Self.Handle;

uID:=1;

uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;

hicon:=Icon.Handle;

uCallbackMessage:=wm_user+1;

szTip :='Система создания видеоуроков и презентаций'; // задаємо текст спливаючої підказки, що з'явиться біля іконки

End;

Case n OF

1: Shell_NotifyIcon(Nim_Add,@Nim);

2: Shell_NotifyIcon(Nim_Delete,@Nim);

3: Shell_NotifyIcon(Nim_Modify,@Nim);

End;

end;

При натисненні кнопки, що відповідає миттєвому старту запису, відбувається наступна процедура.

procedure TfrmMainForm.btnStartRecordingImmediatelyClick(Sender: TObject);

begin

status.Caption:='Статус: Идет запись'; // виводимо інформацію про статус роботи системи

Timer1.Enabled:=true; // включаємо таймер, який відповідає за перехват системних повідомлень, чи натиснута гаряча клавіша зупинки запису

if hide_zap then begin // якщо обраний режим „скривати вікно системи під час запису”

PostMessage(Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);

Application.Minimize; // мінімізуємо вікно

end;

VideoGrabber.HoldRecording := False; // режим - почати запис негайно

VideoGrabber.StartRecording; // вмикаємо режим запису

end;

Якщо запис не запущений в режимі „негайно”, система знаходиться у стані очікування.

procedure TfrmMainForm.btnStartRecordingControlledClick(Sender: TObject);

begin

status.Caption:='Статус: Ожидание запуска - нажмите F4'; // вивід повідомлення про статус системи

Timer1.Enabled:=true;

Timer2.Enabled:=true; // активізуємо таймер, що відповідає за перехоплення гарячої клавіші старту запису

if hide_zap then begin

PostMessage(Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);

Application.Minimize;

end;

VideoGrabber.HoldRecording := truе; // режим - очікування запису

end;

Обробку натискання гарячої клавіші, що зупиняє запис, реалізовано наступним чином.

procedure TfrmMainForm.Timer1Timer(Sender: TObject);

begin

if GetAsyncKeyState(VK_STOP) <> 0 then // якщо натиснута гаряча клавіша, що відповідає зупинці

begin

btnStopRecordingClick(sender); // викликаємо процедуру зупинки запису

SetForegroundWindow(Handle);// відновлюємо програму в якості переднього вікна

PostMessage(Handle,WM_NULL,0,0);

end;

end;

Аналогічно реалізуємо обробку натискання гарячої клавіші, що запускає запис в режимі очікування.

procedure TfrmMainForm.Timer2Timer(Sender: TObject);

begin

if GetAsyncKeyState(VK_START) <> 0 then begin // нажата гаряча клавіша старту запису

VideoGrabber.StartRecording; // починаємо запис

Timer1.Enabled:=true; // активізуємо таймер перехоплення гарячої клавіші зупинки запису

end;

end;

Гарячі клавіші управління, що працюють при розверненому вікні системи перехоплюються наступним чином.

procedure TfrmMainForm.FormKeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if key= VK_Start_im then // при негайному старті

btnStartRecordingImmediatelyClick(Sender);

if key= VK_Start_delay then // при старті в режимі очікування

btnStartRecordingControlledClick(Sender) ;

if key= VK_play then // перехід в режим програвання

btnPlaylastClick(Sender);

if key= VK_rec_again then // повернення до режиму запису

btnStopPlaylastClick(Sender)

end;

Процедура зупинки запису.

procedure TfrmMainForm.btnStopRecordingClick(Sender: TObject);

begin

btnPlaylast.Enabled:=true; btnStopPlaylast.Enabled:=true; // робимо активними кнопки управління переглядом попереднього запису

status.Caption:='Статус: Запись остановлена';

VideoGrabber.StopRecording; // зупиняємо запис

Timer1.Enabled:=false; Timer2.Enabled:=false; // зупиняємо роботу таймерів

end;

Процедура, що відповідає переходу в режим попереднього перегляду.

procedure TfrmMainForm.btnPlaylastClick(Sender: TObject);

begin

if frmMainForm.WindowState = wsnormal then begin // якщо система знаходилась в режимі запису

Panel2.Visible:=false; Panel3.Visible:=true; Panel3.Align:=alClient;

grbPlayerControl.Visible:=true; // відображаємо панель управління програванням запису

frmMainForm.WindowState:= wsMaximized; // розвертаємо вікно системи на весь екран

VideoGrabber.PlayerFileName := VideoGrabber.Last_Recording_FileName; // задаємо ім'я фала, що буде програватися - останній записаний файл

VideoGrabber.OpenPlayer; // запускаємо плеєр

panel2.Visible:=false; status.Visible:=false

end

end;

Розглянемо процедури управління програванням файлу.

procedure TfrmMainForm.btnPlayerBackwardsClick(Sender: TObject);

begin

VideoGrabber.RunPlayerBackwards; // програвання відео у зворотному напрямку

end;

procedure TfrmMainForm.btnPlayerPauseClick(Sender: TObject);

begin

VideoGrabber.PausePlayer; // пауза

end;

procedure TfrmMainForm.btnPlayerStopClick(Sender: TObject);

begin

VideoGrabber.StopPlayer; // зупинка без звертання вікна програвача

end;

procedure TfrmMainForm.btnPlayerStartPlayingClick(Sender: TObject);

begin

VideoGrabber.RunPlayer; // повторний запуск

end;

procedure TfrmMainForm.btnPlayerRewindClick(Sender: TObject);

begin

VideoGrabber.RewindPlayer; // перемотка в початок файлу

end;

procedure TfrmMainForm.btnPlayerFastForwardClick(Sender: TObject);

begin

VideoGrabber.FastForwardPlayer; // перемотка в кінець файлу

end;

Наступна процедура дозволяє повернутися в режим запису.

procedure TfrmMainForm.btnStopPlaylastClick(Sender: TObject);

begin

// скриваємо чи візуалізуємо необхідні панелі

Panel2.Visible:=true; Panel3.Visible:=false; Panel3.Align:=alClient;

grbPlayerControl.Visible:=false; frmMainForm.WindowState:= wsNormal; // повертаємося до нормальних розмірів вікна

panel2.Visible:=true;

status.Visible:=true;

VideoGrabber.ClosePlayer; // закриваємо плеєр

end;

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

procedure TfrmMainForm.chkAVISaveToThisFileClick(Sender: TObject);

begin

edtRecordingFileName.Enabled:=chkAVISaveToThisFile.Checked; // вікно вводу ім'я файлу стає активним

if chkAVISaveToThisFile.Checked then begin // якщо прапорець обраний

VideoGrabber.RecordingFileName := edtRecordingFileName.Text; // визначаємо ім'я відеофайлу, який буде записано

end

else begin

VideoGrabber.RecordingFileName := '';

end;

end;

При зміні змісту вікна, що відповідає імені файлу, змінюється відповідна властивість компоненту VideoGrabber. При цьому тип файлу додається автоматично.

procedure TfrmMainForm.edtRecordingFileNameChange(Sender: TObject);

begin

if chkAVISaveToThisFile.Checked then begin

VideoGrabber.RecordingFileName := edtRecordingFileName.Text+'.avi';

end;

end;

5. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ

Метою дипломної роботи є розробка інструментальних засобів, що призначені для створення відеоуроків та презентацій. Розглянутий клас програмного призначений для створення скрінкастів. Скрінкасти є дуже зручним інструментом для навчання людей роботі з комп'ютером або з конкретним програмним забезпеченням. Також вони можуть використовуватися в якості відео-путівника по сайту, створення online-курсів та наочної демонстрації того, як працює програма, її основних функцій, а також деяких тонкощів роботи з програмою.

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

В ході розробки програмного продукту було використане програмне забезпечення Turbo Delphi 2006 Explorer, яке є безкоштовним.

Визначення витрат на створення програмного продукту


Подобные документы

  • Принципи організації баз даних (БД) при проектуванні клієнт-серверних додатків. Інструментальні засоби створення системи. Різновиди архітектур БД. Функції та програмна реалізація. Економічне обґрунтування доцільності розробки програмного продукту.

    дипломная работа [2,1 M], добавлен 22.10.2012

  • Використання технології SSI для автоматичного додавання на web-сторінку вмісту файлу, виведення значень змінних оточення, вбудовування результату виконання CGI-програм. Характеристика директив технології. Застосування до web-додатків даної технології.

    реферат [22,3 K], добавлен 04.04.2015

  • Призначення модулів та їх структура. Компіляція програм, які використовують модулі. Програмна реалізація алгоритму створення бібліотеки операцій над векторами. Інструкція користувачеві програми. Контрольні приклади та аналіз результатів їх реалізації.

    курсовая работа [145,6 K], добавлен 20.03.2011

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

    курсовая работа [1,3 M], добавлен 26.12.2009

  • Дослідження інструментальних засобів для створення систем спільного навчання. Створення Windows-додатків на основі Visual C#. Функціональні можливості та програмна реалізація системи інтерактивної взаємодії. Програмна реалізація модулю прийому зображення.

    дипломная работа [4,5 M], добавлен 22.10.2012

  • Розробка гнучкої довідкової системи, яка дозволяє наочно проілюструвати можливості управління додатками MS Office за допомогою програм, створених у середовищі Delphi. Система базується на використанні технології COM і об'єктних моделей MS Word і MS Excel.

    дипломная работа [2,5 M], добавлен 25.10.2012

  • Операційна система як програма, що завантажується при включенні комп'ютера. Основні частини операційної системи DOS та її види. Основні недоліки ОС Wіndows 3.0. Wіndows NT 3.51 як нова технологія Mіcrosoft. Огляд архітектури ОС Wіndows 3.х, 95 та NT.

    реферат [34,8 K], добавлен 11.06.2010

  • Поняття про сайт, його основні функції, класифікація, програмна розробка та створення сайтів у візуальних редакторах. Програмна реалізація додатку. Розробка адмін-панелі. Вимоги щодо відстані між бічними поверхнями відеотерміналів. Охорона праці.

    дипломная работа [2,1 M], добавлен 18.11.2014

  • Програма створення графіки OpenGl. Алгоритми зафарбовування від внутрішньої точки до границь довільного контуру. Алгоритм обчислення координати точки кривої Без'є за заданними параметрами. Створення програм OpenGL мовою С, C++ у середовищі Windows.

    контрольная работа [285,3 K], добавлен 19.09.2009

  • Характеристика формування навичок розробки додатків із використанням кнопкових компонентів у середовищі програмування Visual Studio. Створення програми, що переводить числа з однієї системи числення до іншої. Особливість застосування додатку Converter.

    практическая работа [249,7 K], добавлен 01.12.2022

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.