📄 main_unit.pas
字号:
unit main_unit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, HikClient32, Spin, ComCtrls, ShellAPI;
type
Tmain = class(TForm)
StatusBar1: TStatusBar;
GroupBox9: TGroupBox;
Panel1: TPanel;
GroupBox2: TGroupBox;
Label15: TLabel;
Label6: TLabel;
Label1: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
SpinEdit1: TSpinEdit;
Edit2: TEdit;
CheckBox1: TCheckBox;
SpinEdit7: TSpinEdit;
SpinEdit8: TSpinEdit;
Edit3: TEdit;
Edit4: TEdit;
edit1: TEdit;
Label14: TLabel;
Label21: TLabel;
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Button8: TButton;
Button9: TButton;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
SpinEdit4: TSpinEdit;
SpinEdit5: TSpinEdit;
SpinEdit6: TSpinEdit;
Button33: TButton;
Button35: TButton;
Button38: TButton;
Button39: TButton;
Button40: TButton;
Button44: TButton;
GroupBox3: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button10: TButton;
Button11: TButton;
Button12: TButton;
Button14: TButton;
Button15: TButton;
Button16: TButton;
Button17: TButton;
Button18: TButton;
Button19: TButton;
Button21: TButton;
Button45: TButton;
Button46: TButton;
Button47: TButton;
Button20: TButton;
GroupBox7: TGroupBox;
Label7: TLabel;
Label16: TLabel;
Edit5: TEdit;
Button61: TButton;
Edit6: TEdit;
GroupBox4: TGroupBox;
Memo1: TMemo;
GroupBox6: TGroupBox;
Label19: TLabel;
Button53: TButton;
Button54: TButton;
Button55: TButton;
Button56: TButton;
Button57: TButton;
Button58: TButton;
Button49: TButton;
Button59: TButton;
Button60: TButton;
Button63: TButton;
Button64: TButton;
Button65: TButton;
Button66: TButton;
Button67: TButton;
Button68: TButton;
Label13: TLabel;
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 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 Button47Click(Sender: TObject);
procedure Label21Click(Sender: TObject);
procedure Button61Click(Sender: TObject);
procedure Button53Click(Sender: TObject);
procedure Button54Click(Sender: TObject);
procedure Button68Click(Sender: TObject);
procedure Button60Click(Sender: TObject);
procedure Button67Click(Sender: TObject);
procedure Button55Click(Sender: TObject);
procedure Button56Click(Sender: TObject);
procedure Button59Click(Sender: TObject);
procedure Button66Click(Sender: TObject);
procedure Button65Click(Sender: TObject);
procedure Button49Click(Sender: TObject);
procedure Button58Click(Sender: TObject);
procedure Button57Click(Sender: TObject);
procedure Button63Click(Sender: TObject);
procedure Button64Click(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 CallWorkState(Channels: Byte; War_Style: Byte; ReturnStr: string = ''); stdcall;
begin
main.StatusBar1.Panels[1].Text := '第 ' + Format('%.2d', [Channels]) + ' 通道' + StateString[War_Style + 1] + ' ' + ReturnStr;
end;
procedure Tmain.Button1Click(Sender: TObject);
begin
Set_Client_NetPort(Handle, SpinEdit7.Value, SpinEdit8.Value); //配置端口号
//停止客户端连接
Stop_Client();
//启动客户端并连接服务器(服务器IP地址,图像显示区域句柄,用户名,密码,远程通道号,是否解码:默认解码)
Start_Client(PChar(Edit2.Text), Panel1.Handle, PChar(Edit3.Text), PChar(Edit4.Text), SpinEdit1.Value, CheckBox1.Checked);
end;
procedure Tmain.FormCreate(Sender: TObject);
begin
Set_CallBack_Func(@CallWorkState); //设置回调
edit1.Text := Get_UserID; //获取机器码
Edit2.Text := Get_LocalIP; //本地IP
Edit5.Text := Edit2.Text;
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(SpinEdit1.Value, '', 0, 700) //此处为满700M自动分割一个录像文件
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(SpinEdit1.Value)
end;
procedure Tmain.Button9Click(Sender: TObject);
begin
//快速黑白、彩色图像切换(通道号,是否黑白)
Set_Video_NoColor(SpinEdit1.Value, False)
end;
procedure Tmain.Button10Click(Sender: TObject);
begin
//复位视频图像参数
Reset_Video_Para(SpinEdit1.Value)
end;
procedure Tmain.Button11Click(Sender: TObject);
begin
//黑屏
Set_Screen_Black(SpinEdit1.Value)
end;
procedure Tmain.Button12Click(Sender: TObject);
begin
//白屏
Set_Screen_White(SpinEdit1.Value)
end;
procedure Tmain.Button14Click(Sender: TObject);
begin
//开始屏幕输出(通道号,输出内容,输出左上角座标位置,是否透明输出,输出字体颜色RGB,是否输出时间)
Start_Screen_Draw(SpinEdit1.Value, '欢迎使用HIKSDK-2开发包')
end;
procedure Tmain.Button16Click(Sender: TObject);
begin
//停止屏幕输出(通道号)
Stop_Screen_Draw
end;
procedure Tmain.Button17Click(Sender: TObject);
begin
//调用全屏窗口(是否自动巡回显示各通道监控画面,默认不自动切换,值=0)
Start_Video_FullScreen(SpinEdit1.Value)
end;
procedure Tmain.Button18Click(Sender: TObject);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -