📄 main_unit.pas
字号:
unit main_unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, HirkClient32, Spin, ComCtrls, ShellAPI;
type
Tmain = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
StatusBar1: TStatusBar;
Button17: TButton;
Button18: TButton;
Button19: TButton;
Button21: TButton;
Button45: TButton;
Button46: TButton;
Button47: TButton;
Panel1: TPanel;
Label6: TLabel;
SpinEdit1: TSpinEdit;
Label7: TLabel;
edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
CheckBox1: TCheckBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
SpinEdit4: TSpinEdit;
SpinEdit5: TSpinEdit;
SpinEdit6: TSpinEdit;
Button33: TButton;
Button35: TButton;
Button37: TButton;
Button38: TButton;
Button39: TButton;
Button40: TButton;
Button43: TButton;
Button44: TButton;
Label9: TLabel;
SpinEdit7: TSpinEdit;
Label10: TLabel;
SpinEdit8: TSpinEdit;
Button20: TButton;
Bevel1: TBevel;
Button48: TButton;
Button49: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button45Click(Sender: TObject);
procedure Button46Click(Sender: TObject);
procedure Button33Click(Sender: TObject);
procedure Button39Click(Sender: TObject);
procedure Button35Click(Sender: TObject);
procedure Button40Click(Sender: TObject);
procedure Button38Click(Sender: TObject);
procedure Button44Click(Sender: TObject);
procedure Button37Click(Sender: TObject);
procedure Button43Click(Sender: TObject);
procedure Button47Click(Sender: TObject);
procedure Button48Click(Sender: TObject);
procedure Button49Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
main : Tmain;
implementation
{$R *.dfm}
procedure Showmsg(Msg: PChar);
begin
Application.MessageBox(Msg, '信息', MB_OK + MB_ICONINFORMATION + MB_TOPMOST);
end;
procedure Express(Channels: Byte; War_Style: Byte; ReturnStr: string = ''); stdcall;
var
S : string;
begin
Application.ProcessMessages;
S := '第 ' + IntToStr(Channels) + ' 通道';
with main.StatusBar1.Panels[1] do
case War_Style of
0:
Text := '正在打开 ' + S;
1:
Text := S + '音频信号丢失';
2:
Text := S + '视频信号丢失';
3:
Text := S + '监控区域内有物体移动!';
4:
Text := S + '录像文件: ' + extractfilename(ReturnStr) + ' 到指定大小,自动分割生成新的录像文件';
5:
Text := S + '开始录像';
6:
Text := S + '停止录像';
7:
Text := S + '启动声音监听';
8:
Text := S + '关闭声音监听';
9:
Text := S + '启动视频预览';
10:
Text := S + '关闭视频预览';
11:
Text := S + '启动录像';
12:
Text := S + '关闭录像';
13:
Text := S + '启动视频报警';
14:
Text := S + '关闭视频报警';
15:
Text := S + '启动音频报警';
16:
Text := S + '关闭音频报警';
17:
Text := S + '启动移动侦测';
18:
Text := S + '关闭移动侦测';
19:
Text := S + '启动视频遮挡';
20:
Text := S + '关闭视频遮挡';
21:
Text := S + '开始屏幕输出';
22:
Text := S + '关闭屏幕输出';
23:
Text := S + '启动视频LOGO';
24:
Text := S + '关闭视频LOGO';
25:
Text := S + '开始视频OSD';
26:
Text := S + '关闭视频OSD';
27:
Text := S + '切换为黑白视频';
28:
Text := S + '切换为彩色视频';
29:
Text := S + '切换为黑屏显示';
30:
Text := S + '切换为白屏显示';
31:
Text := S + '视频色彩复位';
32:
Text := S + '启动全屏显示';
33:
Text := '采集卡已加载';
34:
Text := '采集卡已卸载';
35:
Text := '网络服务已启动';
36:
Text := '网络服务已停止';
37:
Text := '静音';
38:
Text := '音量恢复';
39:
Text := '云台控制命令发送';
40:
Text := '系统出现未知错误';
41:
if Channels = main.SpinEdit1.Value then
Text := S + '录像文件大小:' + ReturnStr + ' M';
42:
Text := '配置端口号成功...';
43:
Text := '连接服务端成功...';
44:
Text := '正在连接...';
45:
Text := '开始接收图象...';
46:
Text := '异常退出...';
47:
Text := '接收完毕,退出...';
48:
Text := '无法联系服务端...';
49:
Text := '服务端拒绝访问...';
50:
Text := '无效...';
51:
Text := '停止客户端连接...';
52:
Text := '图像抓取成功...';
53:
Text := '初始化服务端网络连接成功...';
end;
end;
procedure Tmain.Button1Click(Sender: TObject);
begin
//启动客户端并连接服务器(服务器IP地址,图像显示区域句柄,远程通道号,是否解码:默认解码)
Start_Client(PChar(Edit2.Text), Panel1.Handle, SpinEdit1.Value, CheckBox1.Checked);
end;
procedure Tmain.FormCreate(Sender: TObject);
begin
Set_CallBack_Func(@Express); //设置回调
Set_Client_NetPort(Handle, SpinEdit7.Value, SpinEdit8.Value); //配置端口号
edit1.Text := Get_UserID; //获取机器码
StatusBar1.Panels[3].Text := Get_SDK_Version(); //获取SDK版本号
if Get_SDK_Reg then
StatusBar1.Panels[4].Text := '已注册'
else
StatusBar1.Panels[4].Text := '未注册';
end;
procedure Tmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//停止客户端连接
Stop_Client()
end;
procedure Tmain.Button2Click(Sender: TObject);
begin
//停止客户端连接
Stop_Client();
//刷新显示区
Panel1.Repaint
end;
procedure Tmain.Button15Click(Sender: TObject);
begin
//对服务端的nChannel 通道网络连接初始化,结束当前所有用户对它的访问
Shut_Client
end;
procedure Tmain.Button3Click(Sender: TObject);
begin
//抓取服务器监控图像(保存文件名),抓图得到的图像数据保存成BMP文件
Start_Image_Capture('')
end;
procedure Tmain.Button4Click(Sender: TObject);
begin
//启动录像(通道号,保存录像文件名,自动停止录像时间:优先权低,自动录像大小:优先权高)
Start_Video_Capture('', 2, 3)
end;
procedure Tmain.Button5Click(Sender: TObject);
begin
//停止录像
Stop_Video_Capture()
end;
procedure Tmain.Button6Click(Sender: TObject);
begin
//启动音频预览
Start_Audio_Preview
end;
procedure Tmain.Button7Click(Sender: TObject);
begin
//停止音频预览
Stop_Audio_Preview
end;
procedure Tmain.Button8Click(Sender: TObject);
begin
//快速黑白、彩色图像切换(通道号,是否黑白)
Set_Video_NoColor()
end;
procedure Tmain.Button9Click(Sender: TObject);
begin
//快速黑白、彩色图像切换(通道号,是否黑白)
Set_Video_NoColor(False)
end;
procedure Tmain.Button10Click(Sender: TObject);
begin
//复位视频图像参数
Reset_Video_Para
end;
procedure Tmain.Button11Click(Sender: TObject);
begin
//黑屏
Set_Video_Black
end;
procedure Tmain.Button12Click(Sender: TObject);
begin
//白屏
Set_Video_White
end;
procedure Tmain.Button13Click(Sender: TObject);
begin
//静音自动切换
Set_Volume_Mute
end;
procedure Tmain.Button14Click(Sender: TObject);
begin
//开始屏幕输出(通道号,输出内容,输出左上角座标位置,是否透明输出,输出字体颜色RGB,是否输出时间)
Start_Screen_Draw('海康威视开发包')
end;
procedure Tmain.Button16Click(Sender: TObject);
begin
//停止屏幕输出(通道号)
Stop_Screen_Draw
end;
procedure Tmain.Button17Click(Sender: TObject);
begin
//调用全屏窗口(是否自动巡回显示各通道监控画面,默认不自动切换,值=0)
Start_Video_FullScreen()
end;
procedure Tmain.Button18Click(Sender: TObject);
begin
//获取服务端的通道数(服务器IP地址)
Showmsg(PChar('正在连接的服务器端共有 ' + IntToStr(Get_Server_ChanNum()) + ' 个通道。'));
end;
procedure Tmain.Button19Click(Sender: TObject);
begin
//获取工作状态
Showmsg(Get_Client_State)
end;
procedure Tmain.Button20Click(Sender: TObject);
begin
ShowMessage('SDK版本号为: ' + Get_SDK_Version()); //获取SDK版本号;
end;
procedure Tmain.Button21Click(Sender: TObject);
begin
//获取已经解码的总帧数
Showmsg(PChar('已经解码的总帧数为:' + IntToStr(Get_Client_FrameNum())));
end;
procedure Tmain.Button45Click(Sender: TObject);
begin
ShowMessage('您的机器码是: ' + Get_UserID); //获取机器码
end;
procedure Tmain.Button46Click(Sender: TObject);
begin
if Get_SDK_Reg then //获取注册状态
ShowMessage('已注册')
else
ShowMessage('未注册');
end;
procedure Tmain.Button33Click(Sender: TObject);
begin
SpinEdit2.Value := Get_Volume_Master //获取Master音量
end;
procedure Tmain.Button39Click(Sender: TObject);
begin
SpinEdit2.Value := Get_Volume_WaveOut //获取WaveOut音量
end;
procedure Tmain.Button35Click(Sender: TObject);
begin
Set_Volume_Mute //静音自动切换
end;
procedure Tmain.Button40Click(Sender: TObject);
begin
SpinEdit2.Value := Get_Volume_Synth //获取Synth音量
end;
procedure Tmain.Button38Click(Sender: TObject);
var
Ld, Dbd, Bhd, Sd : Integer;
begin
//获取视频参数(通道号,亮度,对比度,饱和度,色度)
Get_Video_Para(Ld, Dbd, Bhd, Sd);
SpinEdit3.Value := Ld;
SpinEdit4.Value := Dbd;
SpinEdit5.Value := Bhd;
SpinEdit6.Value := Sd;
end;
procedure Tmain.Button44Click(Sender: TObject);
begin
//设置视频参数(通道号,亮度,对比度,饱和度,色度)
Set_Video_Para(SpinEdit3.Value, SpinEdit4.Value, SpinEdit5.Value, SpinEdit6.Value)
end;
procedure Tmain.Button37Click(Sender: TObject);
begin
//快速黑白、彩色图像切换(通道号,是否黑白)
Set_Video_NoColor(True)
end;
procedure Tmain.Button43Click(Sender: TObject);
begin
//快速黑白、彩色图像切换(通道号,是否黑白)
Set_Video_NoColor(False)
end;
procedure Tmain.Button47Click(Sender: TObject);
begin
//发送邮件:请正确填写再发送
//Send_Mail('smtp.163.com','用户名','邮件密码','发送人邮箱','收件人邮箱','邮件主题','邮件正文')
end;
procedure Tmain.Button48Click(Sender: TObject);
begin
Application.MessageBox('海康视频采集卡三次开发包示例' + #13#10#13#10 +
'支持DS-40xxHC、DS-40xxHC+、' + #13#10 + '40xxMD卡,具体请阅读本开发' +
#13#10 + '包附带的说明文档。' + #13#10#13#10 + '注册软件请联系:' + #13#10 + 'QQ:366733082' +
#13#10 + 'Mail:366733082@163.com', '关于客户端', MB_OK + MB_ICONINFORMATION +
MB_TOPMOST);
end;
procedure Tmain.Button49Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', PChar('http://www.prowt.com/SDK2/'), nil, nil, SW_SHOW);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -