Розробка програмного забезпечення для роботи з веб-камерою

Створення програми для роботи з веб-камерою з автоматичним визначенням встановленої камери на комп'ютері. Характеристика апаратної конфігурації програми. Опис мови і середовища програмування. Розробка алгоритму, інструкції для програміста та користувача.

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

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

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

Размещено на http://www.allbest.ru/

Зміст

  • Перелік скорочень, умовних позначень і термінів
  • Вступ
  • 1. Загальна частина
  • 1.1 Постановка задачі
  • 1.2 Опис предметної області
  • 1.3 Характеристика апаратно-програмної частини
  • 1.4 Опис мови і середовища програмування
  • 1.4.1 Список використаних компонентів в програмі
  • 2. Спеціальна частина
  • 2.1 Розробка алгоритму та його опис
  • 2.2 Створення та тестування програми
  • 2.3 Керівництво програміста
  • 2.4 Керівництво користувача
  • Висновки
  • Список літератури
  • Додаток
  • програма веб камера комп'ютер

Перелік скорочень, умовних позначень і термінів

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

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

Вступ

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

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

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

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

Серед користувачів персональних комп'ютерів у даний час найбільш популярне сімейство операційних систем Windows, а також набирають популярність дистрибутиви Linux, зокрема сімейства Debian.

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

Embarcaderro RAD Stusio - це інтегроване середовище програмування. Створення цієї програми було лише на ОС Windows. За допомогою нього створюються різні програми, віруси, ігри, гаджети і так далі.

1. Загальна частина

1.1 Постановка задачі

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

1.2 Опис предметної області

На даний час створено багато програм для запису відео, його обробки та інше. З появою веб-камер призначення відео набуло сенсу як транслювання відео іншій особі. Наприклад по мережі інтернет - Skype. Саме тому мною і була створена програма для запису відео з веб-камери, його збереженню та відправці.

1.3 Характеристика апаратно-програмної частини

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

Таблиця 1.1

Характеристика

Значення

Апаратна конфігурація

Тип центрального процесора

Intel Pentium B980, 2.4Ghz

Чіпсет системної плати

Intel HM65

Системна пам'ять

4 Gb DDR3-1600

Тип BIOS

X55A.413, 20.08.2012

Відеоадаптер

Intel HD Graphics 2000 512 Mb

Жорсткий диск

Hitachi HTS545050A7E380, 500 Gb

Програмна конфігурація

Операційна система

Microsoft Windows 7 Ultimate

Версія ОС

6.1.7601

Тип ядра ОС

64-bit

Пакет оновлення

Service Pack 1

Дата інсталяції

16.05.2013

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

Embarcadeo RAD Studio XE3

Версія середовища програмування

17.0.4625.53395

1.4 Опис мови і середовища програмування

3 вересня 2012 компанія Embarcadero представила нову версію пакету візуальної розробки додатків - RAD Stuido XE3. Як і попередня версія, XE3 включає в себе чотири основних інструменти - Delphi, C + + Builder, Embarcadero Prism і HTML5 Builder (раніше називався RAD PHP). Природно, Delphi, як найбільш популярний продукт даної серії, викликає найбільший інтерес. Разом з попередньою версією Delphi і C + + Builder була випущена нова платформа розробки бізнес додатків - FireMonkey. Програми, створені за допомогою даної платформи, могли компілюватися не тільки під Windows, але і під MacOS і навіть iOS (із застереженнями). Надалі передбачалося розширення списку підтримуваних платформ, в тому числі і за рахунок мобільних платформ (повна підтримка iOS і Android). Минула версія RAD Studio виявилася багатою на нововведення не тільки в плані функціоналу. Крім звичайних ліцензій (Professional, Enterprise і Architect) була введена ще одна, призначена для розробників, щільно працюють з БД (Ultimate). Напередодні ж виходу XE3 поширилася інформація про нібито підготовлювані зміни в EULA Professional ліцензії. Однак до випуску релізу було прийнято остаточне рішення залишити підтримку клієнт-серверних СУБД в Professional редакції. Що ж ми отримали в даному релізі?

· Metropolis UI для FireMonkey і VCL додатків;

· Вдосконалену версію FireMonkey (TActionList, програвачі медіа файлів, удосконалення в IDE для FM проектів та багато іншого);

· Оновлений механізм LiveBindings (включаючи візуальний дизайнер LiveBindings);

· Зміни в IDE для MacOS проектів.

На відміну від попередньої версії до складу студії не увійшов Embarcadero Prism.

Опис мови Delphi

Delphi - імперативна, структурована, об'єктно орієнтована мова програмування, діалект Object Pascal. Починаючи з середи розробки Delphi 7 в офіційних документах Borland стала використовувати назву Delphi для позначення мови Object Pascal. Починаючи з 2007 року вже мова Delphi почала жити самостійним життям і зазнала різких змін, пов'язаних з сучасними тенденціями розвитку мов програмування : з'явивилися class helpers, перевантаження операторів та інше.

Object Pascal - результат розвитку мови Турбо Паскаль, який, у свою чергу, розвинувся з мови Паскаль. Паскаль був повністю процедурною мовою, Турбо Паскаль, починаючи з версії 5.5, додав до Паскаль об'єктно-орієнтовані властивості, а в Object Pascal - динамічну ідентифікацію типу даних з можливістю доступу до метаданих класів (тобто до опису класів та їх членів) у скомпільованому коді. також званому інтроспекцією - дана технологія отримала позначення RTTI. Так як всі класи успадковують функції базового класу TObject, то будь-який покажчик на об'єкт можна перетворити до нього, після чого скористатися методом ClassType і функцією TypeInfo, які й забезпечать інтроспекцію. Також відмітною властивістю Object Pascal від С + + є те, що об'єкти за замовчуванням розташовуються у динамічній пам'яті. Однак можна перевизначити віртуальні методи NewInstance і FreeInstance класу TObject. Таким чином, абсолютно будь-який клас може здійснити "бажання" "де хочу - там і буду лежати". Object Pascal (Delphi) є результатом функціонального розширення Turbo Pascal.

1.4.1 Список використаних компонентів в програмі

TForm1 = class(TForm)

Button1: TButton;

ListBox1: TListBox;

Panel1: TPanel;

Button2: TButton;

ListBox2: TListBox;

Button3: TButton;

Button4: TButton;

Button5: TButton;

SaveDialog1: TSaveDialog;

Panel2: TPanel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

function CreateGraph: HResult;

function Initializ: HResult;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure Button3Click(Sender: TObject);

function DisplayPropertyFrame(Filter: IBaseFilter; Handle: THandle): HResult;

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure ListBox1DblClick(Sender: TObject);

procedure ListBox2DblClick(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

2. Спеціальна частина

2.1 Розробка алгоритму та його опис

Рис 2.1. Алгоритм роботи программи

2.2 Створення та тестування програми

Створювалася програма в середовищі програмування Embarcadeo RAD Studio XE3.

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

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

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

2.3 Керівництво програміста

Таблиця 2.1

Характеристика

Значення

Назва програми

Camera_Pro

Версія

1

Автор

Овчаренко Микола Станіславович

Мова програмування

Delphi

Рядків коду

397

Розмір виконуваного файлу

1.97 mb

Мінімальні системні вимоги

Процесор

x86-64 сумісний

Оперативна пам'ять

128 Mb RAM

Операційна система

1. Windows XP x32-64 bit

2. Windows 7 Ultimate x32-64 bit

2.4 Керівництво користувача

Програма Camera_Pro була створена для запису та збереження відео з вашої веб-камери.

Запуск програми здійснюється з меню пуск ОС Windows. Пуск -> Camera_Pro.

Рис 2.2. Головне вікно програми.

Елементи інтерфейсу (див. рис 2.2.):

1. Область відображення веб-камери

2. Кнопка запису відео

3. Кнопка закінчення запису відео

4. Головне меню програми

5. Параметри камери

6. Параметри відео

7. Параметри звуку

8. Перелік можливих використаних камер та мікрофонів

Рис 2.3. Налаштування камери.

Рис 2.4. Налаштування відео.

Рис 2.5. Налаштування мікрофону.

Користування програмою:

1. Запустити програму

2. Вибрати зі списку веб-камеру та мікрофон(якщо їх декілька)

3. Налаштувати під себе камеру, відео та мікрофон

4. Почати запис відео

5. Зберегти відео

6. Поторити пункт 2,3,4,5 заново обо закрити програму

Висновки

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

Середовище програмування Rad Studio xe3 та сама мова Delphi дає змогу швидко, практично, зрозуміло та якісно зробити певну програму або інший об'єкт для взаємодії з користувачем. Вся справа створення об'єкту дуже легка і не потребує велику кількість часу. Тому ця мова програмування являється однією з перших, яку має вивчити програміст на початковій стадії свого життєвого шляху.

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

Список літератури

1. Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. Самоучитель по программированию на Free Pascal и Lazarus. - Донецк.: ДонНТУ, Технопарк ДонНТУ УНИТЕХ, 2011.

2. Википедия -- свободная энциклопедия: [Електрон. ресурс]. -- Режим доступу: http://www.wikipedia.org

3. Документація Rad Studio XE3.

Додаток

Текст програми

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, directshow9, ActiveX, Vcl.Menus, ShellApi;

type

TForm1 = class(TForm)

Button1: TButton;

ListBox1: TListBox;

Panel1: TPanel;

Button2: TButton;

ListBox2: TListBox;

Button3: TButton;

Button4: TButton;

Button5: TButton;

SaveDialog1: TSaveDialog;

Panel2: TPanel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

function CreateGraph: HResult;

function Initializ: HResult;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure Button3Click(Sender: TObject);

function DisplayPropertyFrame(Filter: IBaseFilter; Handle: THandle): HResult;

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure ListBox1DblClick(Sender: TObject);

procedure ListBox2DblClick(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

FileName:string;

RecMode: Boolean = False;

DeviceName:OleVariant;

PropertyName:IPropertyBag;

pDevEnum:ICreateDEvEnum;

pEnum:IEnumMoniker;

pMoniker:IMoniker;

MArray1,MArray2: array of IMoniker;

FGraphBuilder: IGraphBuilder;

FCaptureGraphBuilder: ICaptureGraphBuilder2;

FMux: IBaseFilter;

FSink: IFileSinkFilter;

FMediaControl: IMediaControl;

FVideoWindow: IVideoWindow;

FVideoCaptureFilter: IBaseFilter;

FAudioCaptureFilter: IBaseFilter;

FVideoRect: TRect;

implementation

{$R *.dfm}

function TForm1.Initializ: HResult;

begin

Result:=CoCreateInstance(CLSID_SystemDeviceEnum, NIL, CLSCTX_INPROC_SERVER,

IID_ICreateDevEnum, pDevEnum);

if Result<>S_OK then EXIT;

Result:=pDevEnum.CreateClassEnumerator(CLSID_VideoInputDeviceCategory, pEnum, 0);

if Result<>S_OK then EXIT;

setlength(MArray1,0);

while (S_OK=pEnum.Next(1,pMoniker,Nil)) do

begin

setlength(MArray1,length(MArray1)+1);

MArray1[length(MArray1)-1]:=pMoniker;

Result:=pMoniker.BindToStorage(NIL, NIL, IPropertyBag, PropertyName);

if FAILED(Result) then Continue;

Result:=PropertyName.Read('FriendlyName', DeviceName, NIL);

if FAILED(Result) then Continue;

Listbox1.Items.Add(DeviceName);

end;

Result:=pDevEnum.CreateClassEnumerator(CLSID_AudioInputDeviceCategory, pEnum, 0);

if Result<>S_OK then EXIT;

setlength(MArray2,0);

while (S_OK=pEnum.Next(1,pMoniker,Nil)) do

begin

setlength(MArray2,length(MArray2)+1);

MArray2[length(MArray2)-1]:=pMoniker;

Result:=pMoniker.BindToStorage(NIL, NIL, IPropertyBag, PropertyName);

if FAILED(Result) then Continue;

Result:=PropertyName.Read('FriendlyName', DeviceName, NIL);

if FAILED(Result) then Continue;

Listbox2.Items.Add(DeviceName);

end;

if ListBox1.Count=0 then

begin

ShowMessage('Камера не обнаружена');

Result:=E_FAIL;;

Exit;

end;

Listbox1.ItemIndex:=0;

if ListBox2.Count=0 then

begin

ShowMessage('Микрофон не обнаружен');

end

else Listbox2.ItemIndex:=0;

Result:=S_OK;

end;

function TForm1.CreateGraph:HResult;

var

pConfigMux: IConfigAviMux;

begin

FAudioCaptureFilter := NIL;

FVideoCaptureFilter := NIL;

FVideoWindow := NIL;

FMediaControl := NIL;

FSink := NIL;

FMux := NIL;

FCaptureGraphBuilder := NIL;

FGraphBuilder := NIL;

Result:=CoCreateInstance(CLSID_FilterGraph, NIL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, FGraphBuilder);

if FAILED(Result) then EXIT;

Result:=CoCreateInstance(CLSID_CaptureGraphBuilder2, NIL, CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, FCaptureGraphBuilder);

if FAILED(Result) then EXIT;

Result:=FCaptureGraphBuilder.SetFiltergraph(FGraphBuilder);

if FAILED(Result) then EXIT;

if Listbox1.ItemIndex>=0 then

begin

MArray1[Listbox1.ItemIndex].BindToObject(NIL, NIL, IID_IBaseFilter, FVideoCaptureFilter);

FGraphBuilder.AddFilter(FVideoCaptureFilter, 'VideoCaptureFilter');

end;

if Listbox2.ItemIndex>=0 then

begin

MArray2[Listbox2.ItemIndex].BindToObject(NIL, NIL, IID_IBaseFilter, FAudioCaptureFilter);

FGraphBuilder.AddFilter(FAudioCaptureFilter, 'AudioCaptureFilter');

Result:=FCaptureGraphBuilder.RenderStream(@PIN_CATEGORY_PREVIEW, @MEDIATYPE_Audio,

FAudioCaptureFilter, NIL, NIL);

if FAILED(Result) then EXIT;

end;

Result:=FCaptureGraphBuilder.RenderStream(@PIN_CATEGORY_PREVIEW, @MEDIATYPE_Video, FVideoCaptureFilter, NIL, NIL);

if FAILED(Result) then EXIT;

Result:=FGraphBuilder.QueryInterface(IID_IVideoWindow, FVideoWindow);

if FAILED(Result) then EXIT;

FVideoWindow.put_WindowStyle(WS_CHILD or WS_CLIPSIBLINGS);

FVideoWindow.put_Owner(Panel1.Handle);

FVideoRect:=Panel1.ClientRect;

FVideoWindow.SetWindowPosition(FVideoRect.Left,FVideoRect.Top, FVideoRect.Right - FVideoRect.Left,FVideoRect.Bottom - FVideoRect.Top);

FVideoWindow.put_Visible(TRUE);

if RecMode then

begin

Result:=FCaptureGraphBuilder.SetOutputFileName(MEDIASUBTYPE_Avi, PWideChar(FileName), FMux, FSink);

if FAILED(Result) then EXIT;

Result:=FCaptureGraphBuilder.RenderStream(@PIN_CATEGORY_CAPTURE, @MEDIATYPE_Video, FVideoCaptureFilter, Nil, FMux);

if FAILED(Result) then EXIT;

if Listbox2.ItemIndex>=0 then

begin

Result:=FCaptureGraphBuilder.RenderStream(@PIN_CATEGORY_CAPTURE, @MEDIATYPE_Audio, FAudioCaptureFilter, Nil, FMux);

if FAILED(Result) then EXIT;

pConfigMux := NIL;

Result:=FMux.QueryInterface(IID_IConfigAviMux, pConfigMux);

if FAILED(Result) then EXIT;

begin

pConfigMux.SetMasterStream(1);

pConfigMux := NIL;

end;

end;

end;

Result:=FGraphBuilder.QueryInterface(IID_IMediaControl, FMediaControl);

if FAILED(Result) then Exit;

FMediaControl.Run();

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

if Listbox1.Count=0 then

Begin

ShowMessage('Внимание! Камера не обнаружена.');

Exit;

End;

If RecMode then Exit;

SaveDialog1.InitialDir:=GetCurrentDir;

SaveDialog1.DefaultExt := 'avi';

if not (SaveDialog1.Execute) then exit;

FileName:=SaveDialog1.FileName;

RecMode:=True;

if FAILED(CreateGraph) then

Begin

ShowMessage('Внимание! Произошла ошибка при построении графа фильтров');

RecMode:=False;

Exit;

End;

Panel2.Caption:='Идет запись';

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

If not(RecMode) then Exit;

FMediaControl.Stop;

RecMode:=False;

if FAILED(CreateGraph) then

Begin

ShowMessage('Внимание! Произошла ошибка при построении графа фильтров');

Exit;

End;

Panel2.Caption:='Режим просмотра';

end;

procedure TForm1.Button3Click(Sender: TObject);

var

StreamConfig: IAMStreamConfig;

PropertyPages: ISpecifyPropertyPages;

Pages: CAUUID;

begin

If RecMode then Exit;

if FVideoCaptureFilter = NIL then EXIT;

FMediaControl.Stop;

try

if SUCCEEDED(FCaptureGraphBuilder.FindInterface(@PIN_CATEGORY_CAPTURE,

@MEDIATYPE_Video, FVideoCaptureFilter, IID_IAMStreamConfig, StreamConfig)) then

begin

if SUCCEEDED(StreamConfig.QueryInterface(ISpecifyPropertyPages, PropertyPages)) then

begin

PropertyPages.GetPages(Pages);

PropertyPages := NIL;

OleCreatePropertyFrame(

Handle,

0,

0,

PWideChar(ListBox1.Items.Strings[listbox1.ItemIndex]),

1,

@StreamConfig,

Pages.cElems,

Pages.pElems,

0,

0,

NIL

);

StreamConfig := NIL;

CoTaskMemFree(Pages.pElems);

end;

end;

finally

FMediaControl.Run;

end;

end;

function TForm1.DisplayPropertyFrame(Filter: IBaseFilter; Handle: THandle): HResult;

var

PropertyPages: ISpecifyPropertyPages;

Pages: CAUUID;

FilterInfo: TFilterInfo;

pfilterUnk: IUnknown;

begin

Result := E_FAIL;

if Filter = NIL then EXIT;

Result := Filter.QueryInterface(ISpecifyPropertyPages, PropertyPages);

if (SUCCEEDED(Result)) then

begin

Filter.QueryFilterInfo(FilterInfo);

Filter.QueryInterface(IUnknown, pfilterUnk);

PropertyPages.GetPages(Pages);

PropertyPages := NIL;

OleCreatePropertyFrame(

Handle,

0,

0,

FilterInfo.achName,

1,

@pfilterUnk,

Pages.cElems,

Pages.pElems,

0,

0,

NIL

);

pfilterUnk := NIL;

FilterInfo.pGraph := NIL;

CoTaskMemFree(Pages.pElems);

end;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

If RecMode then Exit;

DisplayPropertyFrame(FVideoCaptureFilter, Handle);

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

If RecMode then Exit;

DisplayPropertyFrame(FAudioCaptureFilter, Handle);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

CoInitialize(nil);

if FAILED(Initializ) then

Begin

ShowMessage('Внимание! Произошла ошибка при инициализации');

Exit;

End;

if Listbox1.Count>0 then

Begin

if FAILED(CreateGraph) then

Begin

ShowMessage('Внимание! Произошла ошибка при построении графа фильтров');

Exit;

End;

Panel2.Caption:='Режим просмотра';

end else

Begin

ShowMessage('Внимание! Камера не обнаружена.');

End;

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

pEnum := NIL;

pDevEnum := NIL;

pMoniker := NIL;

PropertyName := NIL;

DeviceName:=Unassigned;

CoUninitialize;

end;

procedure TForm1.ListBox1DblClick(Sender: TObject);

begin

if ListBox1.Count=0 then

Begin

ShowMessage('Камера не найдена');

Exit;

End;

if FAILED(CreateGraph) then

Begin

ShowMessage('Внимание! Произошла ошибка при построении графа фильтров');

Exit;

End;

Panel2.Caption:='Режим просмотра';

end;

procedure TForm1.ListBox2DblClick(Sender: TObject);

begin

if ListBox1.Count>0 then

begin

if FAILED(CreateGraph) then

Begin

ShowMessage('Внимание! Произошла ошибка при построении графа фильтров');

Exit;

End;

Panel2.Caption:='Режим просмотра';

end else

Begin

ShowMessage('Камера не выбрана');

Exit;

End;

end;

procedure TForm1.N1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

ShellExecute(Handle, 'open', 'Справка користувача.pdf', nil, nil, SW_Restore);

end;

end.

Размещено на Allbest.ru


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

  • Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.

    курсовая работа [991,4 K], добавлен 06.08.2013

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

    курсовая работа [343,9 K], добавлен 24.08.2012

  • Розробка та схема алгоритму проектованої гри. Особливості мови програмування та середовища "Microsoft Visual Studio C++ 2008 Express Edition". Лістинг програми та загальний опис її роботи, аналіз отриманих результатів та оцінка практичної ефективності.

    курсовая работа [762,8 K], добавлен 03.05.2015

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

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

  • Аналіз етапів шифрування тексту. Програмно-апаратна характеристика комп’ютера. Створення кнопкової форми в Delphi. Розробка і опис алгоритму. Діаграма прецедентів проектованої системи. Інструкція роботи користувача з системою. Керівництво програміста.

    курсовая работа [999,1 K], добавлен 03.12.2014

  • Розробка програми для вирішення графічної задачі. При вирішенні задачі необхідно cтворювати програму у середовищі програмування Turbo Pascal. Розробка алгоритму функціонування програми і надання блок-схеми алгоритму. Демонстрація роботи програми.

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

  • Проектування архітектури гри "Тетріс". Аналіз вимог до неї. Вивчення особливостей реалізації, кодування та тестування програми. Алгоритм побудови робочого поля. Вибір мови програмування. Розробка і налагодження тексту програми. Інструкції з експлуатації.

    курсовая работа [460,9 K], добавлен 04.03.2014

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