📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TfrmMain = class(TForm)
Panel1: TPanel;
btnPlay: TButton;
btnStop: TButton;
lbl1: TLabel;
edtIP: TEdit;
lbl2: TLabel;
edtUser: TEdit;
edtPassword: TEdit;
lbl3: TLabel;
lbl4: TLabel;
cbb1: TComboBox;
cmdUp: TButton;
cmdLeft: TButton;
cmdRight: TButton;
cmdDown: TButton;
cmdZoomIn: TButton;
cmdZoomOut: TButton;
cmdFocusNear: TButton;
cmdFocusFar: TButton;
cmdIRISOpen: TButton;
cmdIRISClose: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button5: TButton;
txtYZD: TEdit;
Label5: TLabel;
Button12: TButton;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure btnPlayClick(Sender: TObject);
procedure btnStopClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cmdUpMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure cmdUpMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button5Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
iPlayHwnd:Integer;
iLoginID:Integer;
implementation
uses HikVisionSDK, UnitPlayBack;
{$R *.dfm}
procedure TfrmMain.FormCreate(Sender: TObject);
begin
iPlayHwnd :=-1;
iLoginID := -1;
NET_DVR_Init;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
NET_DVR_Cleanup;
end;
procedure TfrmMain.btnPlayClick(Sender: TObject);
var
// lpDeviceInfo:LPNET_DVR_DEVICEINFO ;
lpClientInfo :LPNET_DVR_CLIENTINFO ;
begin
//lpDeviceInfo := new (LPNET_DVR_DEVICEINFO );
//iLoginID :=NET_DVR_Login(PChar(edtIP.Text),8000,PChar(edtUser.text),PChar(edtPassword.text),lpDeviceInfo);
if iLoginID = -1 then
begin
Showmessage('未登录DVR,请先登录.');
end
else
begin
//播放
lpClientInfo :=new(LPNET_DVR_CLIENTINFO);
lpClientInfo.lChannel := cbb1.ItemIndex+1;
lpClientInfo.lLinkMode := 0;
lpClientInfo.hPlayWnd := Panel1.Handle ;
lpClientInfo.sMultiCastIP :=nil;
iPlayHwnd := NET_DVR_RealPlay(iLoginID,lpClientInfo);
if iPlayHwnd<0 then
begin
Showmessage('错误:无法得到该通道的图像.');
end;
Dispose(lpClientInfo);
btnPlay.Enabled:=false;
btnStop.Enabled:=true;
end;
//dispose(lpDeviceInfo) ;
end;
procedure TfrmMain.btnStopClick(Sender: TObject);
begin
if iPlayHwnd>=0 then
begin
NET_DVR_StopRealPlay(iPlayHwnd);
//NET_DVR_Logout(iLoginID);
iPlayHwnd :=-1;
//iLoginID :=-1;
btnPlay.Enabled:=true;
btnStop.Enabled:=false;
end;
end;
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
btnStop.Click;
end;
procedure TfrmMain.cmdUpMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//
NET_DVR_PTZControl(iPlayHwnd,(Sender as TButton).Tag,0);
end;
procedure TfrmMain.cmdUpMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//
NET_DVR_PTZControl(iPlayHwnd,(Sender as TButton).Tag,1);
end;
procedure TfrmMain.Button5Click(Sender: TObject);
begin
NET_DVR_PTZPreset(iPlayHwnd, GOTO_PRESET, StrToInt(txtYZD.Text));
end;
procedure TfrmMain.Button12Click(Sender: TObject);
begin
//远和回放
frmPlayBack.Show;
end;
procedure TfrmMain.Button1Click(Sender: TObject);
var
lpDeviceInfo:LPNET_DVR_DEVICEINFO ;
begin
lpDeviceInfo := new (LPNET_DVR_DEVICEINFO );
iLoginID :=NET_DVR_Login(PChar(edtIP.Text),8000,PChar(edtUser.text),PChar(edtPassword.text),lpDeviceInfo);
if iLoginID = -1 then
begin
Showmessage('登陆DVR失败,无法播放.');
Dispose(lpDeviceInfo) ;
exit;
end;
Dispose(lpDeviceInfo) ;
Button1.Enabled :=false;
Button2.Enabled :=true;
end;
procedure TfrmMain.Button2Click(Sender: TObject);
begin
NET_DVR_Logout(iLoginID);
iLoginID :=-1;
Button1.Enabled :=true;
Button2.Enabled :=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -