Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Вот для штатного виндусячего видео:

Отправлено Гудвин (78.138.171.167) 18 апреля 2010, г. 23:03
В ответ на: Ага, надо для юсб. отправлено skyspark 18 апреля 2010, г. 22:49


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls,Buttons, Menus, xTrayIcon;

type
TForm1 = class(TForm)
SaveBmp: TButton;
Button1: TButton;
Button2: TButton;
BitBtn1: TBitBtn;
xTrayIcon1: TxTrayIcon;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure SaveBMPClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormPaint(Sender: TObject);
function Get_Handle: THandle;
private
{ Private declarations }
hWndC: THandle;
CapturingAVI: bool; public
{ Public declarations }
end;

var
Form1: TForm1;
Flag: byte;
err: integer;
implementation

{$R *.DFM}
const
WM_CAP_START = WM_USER;
const
WM_CAP_STOP = WM_CAP_START + 68;
const
WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
const
WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
const
WM_CAP_SAVEDIB = WM_CAP_START + 25;
const
WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
const
WM_CAP_SEQUENCE = WM_CAP_START + 62;
const
WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;
const
WM_CAP_SET_PREVIEW = WM_CAP_START + 50;
const
WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52;
const
WM_CAP_EDIT_COPY = WM_CAP_START + 30;
const
WM_CAP_SET_CALLBACK_ERROR = WM_CAP_START + 2;
const
WM_CAP_SET_SCALE = WM_CAP_START + 53;


function capCreateCaptureWindowA(lpszWindowName: PCHAR;
dwStyle: longint;
x: integer;
y: integer;
nWidth: integer;
nHeight: integer;
ParentWin: HWND;
nId: integer): HWND;
stdcall external 'AVICAP32.DLL';

function TForm1.Get_Handle: THandle;
begin
Get_Handle:=hWndC;
end;

function capErrorCallbak(HWND: THandle; nID:integer; c:PChar):Integer; stdcall;
begin
If nID<>0 then err:=1;
end;

procedure TForm1.FormCreate(Sender: TObject);
var p: pointer;
begin
CapturingAVI := false;
hWndC := 0;

hWndC := capCreateCaptureWindowA('My Own Capture Window',
WS_CHILD or WS_VISIBLE,
100,
8,
320,
240,
Form1.Handle,
0);
if hWndC <> 0 then
begin
p:= Addr(capErrorCallbak);// Установим адрес Callback процедуры;
SendMessage(hWndC,WM_CAP_SET_CALLBACK_ERROR , 0, integer(p));

SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_SET_SCALE,1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE,10, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);

end;
end;

procedure TForm1.SaveBMPClick(Sender: TObject);
begin
if hWndC <> 0 then
begin

SendMessage(hWndC,
WM_CAP_SAVEDIB,
0,
longint(pchar('foto.bmp')));
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if hWndC <> 0 then SendMessage(hWndC,WM_CAP_START + 41, 0, 0);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if hWndC <> 0 then SendMessage(hWndC,WM_CAP_START + 42, 0, 0);

end;

procedure TForm1.N2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
Form1.Visible:=true;
if hWndC <> 0 then
begin
// SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);

end;
Flag:=1;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form1.Visible:=false;

end;

procedure TForm1.FormShow(Sender: TObject);
begin
if flag=0 then Form1.Visible:=false;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
if flag=0 then Form1.Visible:=false;
// messagebeep($ffffffff);
end;

end.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 123:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru