📄 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)
StatusBar1: TStatusBar;
GroupBox1: TGroupBox;
Memo1: TMemo;
GroupBox2: TGroupBox;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label12: TLabel;
Label13: TLabel;
SpinEdit1: TSpinEdit;
edit1: TEdit;
Edit2: TEdit;
SpinEdit7: TSpinEdit;
SpinEdit8: TSpinEdit;
Memo2: TMemo;
Memo3: TMemo;
Button48: TButton;
Button50: TButton;
Button51: TButton;
Button52: TButton;
GroupBox3: TGroupBox;
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;
GroupBox4: TGroupBox;
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;
GroupBox5: TGroupBox;
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;
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;
Button45: TButton;
Button46: TButton;
Button47: TButton;
GroupBox6: TGroupBox;
Button53: TButton;
Button54: TButton;
Button55: TButton;
Button56: TButton;
Button57: TButton;
Button58: TButton;
Button49: TButton;
Button59: TButton;
Button60: TButton;
Label14: TLabel;
GroupBox7: TGroupBox;
Label15: TLabel;
Edit3: TEdit;
Label16: TLabel;
Button61: TButton;
Button63: TButton;
Button64: TButton;
Button65: TButton;
Button66: TButton;
Button67: TButton;
Button68: TButton;
GroupBox8: TGroupBox;
SpinEdit10: TSpinEdit;
Label18: TLabel;
Memo4: TMemo;
SpeedButton12: TSpeedButton;
SpeedButton13: TSpeedButton;
Memo5: TMemo;
Label19: TLabel;
GroupBox9: TGroupBox;
Panel1: TPanel;
Edit4: TEdit;
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 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);
procedure Button50Click(Sender: TObject);
procedure Button48Click(Sender: TObject);
procedure Button52Click(Sender: TObject);
procedure Button51Click(Sender: TObject);
procedure Button53Click(Sender: TObject);
procedure Button54Click(Sender: TObject);
procedure Button55Click(Sender: TObject);
procedure Button56Click(Sender: TObject);
procedure Button57Click(Sender: TObject);
procedure Button58Click(Sender: TObject);
procedure Label14Click(Sender: TObject);
procedure Button49Click(Sender: TObject);
procedure Button59Click(Sender: TObject);
procedure Button60Click(Sender: TObject);
procedure Button68Click(Sender: TObject);
procedure Button63Click(Sender: TObject);
procedure Button64Click(Sender: TObject);
procedure Button65Click(Sender: TObject);
procedure Button66Click(Sender: TObject);
procedure Button67Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton13Click(Sender: TObject);
procedure Button61Click(Sender: TObject);
private
{ Private declarations }
procedure FUpdateOnMOve(var Msg: TMsg); message WM_MOVE; //收到移动消息
public
{ Public declarations }
end;
var
main : Tmain;
CruTD : Byte = 0;
Iplst : TStringList;
Userlst : TStringList;
implementation
{$R *.dfm}
//数据接收事件,在接收到数据时触发
procedure TCPDataReceiveNotification
(
SocketHandle: Integer; //套接字句柄
Data: Pointer; //接收到的数据
NumberBytes: Integer; //数据的长度
FromIP: PChar; //源地址
Port: Word //源端口
); stdcall;
begin
main.Memo4.Lines.Append(FromIP + ':' + inttostr(Port) + #13#10 + PChar(Data))
end;
//启动TCP监听(打开端口)事件
procedure ServerStartNotification
(
SocketHandle: Integer; //套接字句柄
LocalDotAddr: PChar; //IP地址
LocalPort: Word //本地端口
); stdcall;
begin
main.Memo4.Lines.Append('TCP服务已经启动');
end;
//停止TCP监听(关闭端口)事件
procedure ServerStopNotification
(
SocketHandle: Integer; //套接字句柄
LocalDotAddr: PChar; //IP地址
LocalPort: Word //本地端口
); stdcall;
begin
main.Memo4.Lines.Append('TCP服务已经停止');
end;
procedure Tmain.FUpdateOnMOve(var Msg: TMsg); //收到移动消息
begin
inherited;
//停止预览(当前通道号)
Stop_Video_Preview(CruTD);
if SpinEdit1 = nil then Exit;
CruTD := SpinEdit1.Value;
//启动预览(通道号,预览句柄,预览区域,是否设置预览用 Overlay 方式(MD卡兼容))
Start_Video_Preview(CruTD, Panel1.Handle, Panel1.ClientRect);
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);
var
MachineID : string;
begin
if Load_Board(Application.Handle, main.Handle) <> 0 then //板卡初始化(请查看该函数的接口单元,此处默认自启动视频服务)
begin
Get_MachineID(MachineID); //获取机器码
edit1.Text := MachineID;
if Get_SDK_Reg then
StatusBar1.Panels[4].Text := '已注册'
else
StatusBar1.Panels[4].Text := '未注册';
end
else
main.StatusBar1.Panels[1].Text := '加载采集卡失败!'
end;
procedure Tmain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnLoad_Board(); //卸载板卡
try
Iplst.Free;
Userlst.Free;
except
end;
end;
procedure Tmain.Button2Click(Sender: TObject);
begin
//停止预览(当前通道号)
Stop_Video_Preview(CruTD);
CruTD := SpinEdit1.Value;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -