⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_unit.pas

📁 DELPHI开发包
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -