📄 main_unit.pas
字号:
unit main_unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Spin, ComCtrls, HikServer32, Buttons, ShellAPI;
type
Tmain = class(TForm)
Panel1: TPanel;
Button1: TButton;
Button2: TButton;
SpinEdit1: TSpinEdit;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
StatusBar1: TStatusBar;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button17: TButton;
Button18: TButton;
Button19: TButton;
Button20: TButton;
Button21: TButton;
Button22: TButton;
Button23: TButton;
Button24: TButton;
Button25: TButton;
Button26: TButton;
Button27: TButton;
Button28: TButton;
Button29: TButton;
Button31: TButton;
Button30: TButton;
Button32: TButton;
Button34: TButton;
Button36: TButton;
Button41: TButton;
Button42: TButton;
Memo1: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: 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;
Label6: TLabel;
Button45: TButton;
Button46: TButton;
Button47: TButton;
edit1: TEdit;
Label7: TLabel;
Label8: TLabel;
Edit2: TEdit;
Label9: TLabel;
SpinEdit7: TSpinEdit;
Label10: TLabel;
SpinEdit8: TSpinEdit;
Button48: TButton;
Button49: TButton;
Bevel1: TBevel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton15: TSpeedButton;
SpeedButton16: TSpeedButton;
SpeedButton17: TSpeedButton;
SpeedButton18: TSpeedButton;
SpeedButton19: TSpeedButton;
Label21: TLabel;
Label22: TLabel;
Label11: TLabel;
cbb_Com: TComboBox;
se_Addr: TSpinEdit;
cb_NameList: TComboBox;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(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 Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button32Click(Sender: TObject);
procedure Button30Click(Sender: TObject);
procedure Button34Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button27Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button26Click(Sender: TObject);
procedure Button29Click(Sender: TObject);
procedure Button36Click(Sender: TObject);
procedure Button33Click(Sender: TObject);
procedure Button39Click(Sender: TObject);
procedure Button40Click(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure Button38Click(Sender: TObject);
procedure Button44Click(Sender: TObject);
procedure Button37Click(Sender: TObject);
procedure Button43Click(Sender: TObject);
procedure Button28Click(Sender: TObject);
procedure Button31Click(Sender: TObject);
procedure Button42Click(Sender: TObject);
procedure Button41Click(Sender: TObject);
procedure Button35Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button47Click(Sender: TObject);
procedure Button46Click(Sender: TObject);
procedure Button45Click(Sender: TObject);
procedure Button48Click(Sender: TObject);
procedure Button49Click(Sender: TObject);
procedure SpeedButton1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SpeedButton1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SpeedButton14Click(Sender: TObject);
procedure SpeedButton15Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
main : Tmain;
implementation
{$R *.dfm}
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
Set_CallBack_Func(@Express); //设置回调
if Load_Board(2) <> 0 then //板卡初始化(通道被除数,此处为2,表示为8路作4路用)
main.StatusBar1.Panels[1].Text := '加载采集卡成功!'
else
main.StatusBar1.Panels[1].Text := '加载采集卡失败!'
end;
procedure Tmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnLoad_Board() //卸载板卡
end;
procedure Tmain.Button2Click(Sender: TObject);
begin
//启动预览(通道号,预览句柄,预览区域,是否设置预览用 Overlay 方式(MD卡兼容))
Start_Video_Preview(SpinEdit1.Value, Panel1.Handle, Panel1.ClientRect)
end;
procedure Tmain.Button3Click(Sender: TObject);
begin
//停止预览(通道号)
Stop_Video_Preview(SpinEdit1.Value);
Panel1.Refresh //刷新显示区域
end;
procedure Tmain.Button4Click(Sender: TObject);
begin
//启动录像(通道号,保存录像文件名)
Start_Video_Capture(SpinEdit1.Value, '', 1, 3);
end;
procedure Tmain.Button5Click(Sender: TObject);
begin
//停止录像(通道号)
Stop_Video_Capture(SpinEdit1.Value)
end;
procedure Tmain.Button6Click(Sender: TObject);
begin
//视频截图(通道号,保存截图文件名,是否JPEG格式,JPEG 图片质量:1 到 100,1 最差,100 最好)
Start_Image_Capture(SpinEdit1.Value, '', False)
end;
procedure Tmain.Button7Click(Sender: TObject);
begin
//显示OSD(通道号,第一行座标,内容,第二行座标,内容,是否自动进行颜色翻转,OSD显示亮度:255 最亮0 最暗,是否显示时间)
Start_Video_OSD(SpinEdit1.Value, 12, 8, 'OSD1内容', 12, 530, 'OSD2内容', True, 255, False)
end;
procedure Tmain.Button8Click(Sender: TObject);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -