unitmain.~pa

来自「智能监控delphi源码, 操作说明 1. 在两台微机上分别运行文件夹中的可」· ~PA 代码 · 共 661 行 · 第 1/2 页

~PA
661
字号
  begin
    btnStartGet3.Caption := '开始录象';
    NStartGet3.Enabled := True;
    NStopGet3.Enabled := False;
  end;
  if (MoniterNo3.Checked) then //让子窗体的按钮也和主窗体的同步;
  begin
    //FormNo3.tmr1.Enabled := not FormNo3.tmr1.Enabled;
    FormNo3.btnStartGet3.Caption := btnStartGet3.Caption;
  end;
end;
//状态栏显示系统时间,监控模式,报警方式等信息;

procedure TFormMain.SysTimeTimer(Sender: TObject);
//var
 // panels: TStatusPanel;
begin
  stat1.Panels[3].Text :=
    TimeToStr(Time) + '          '
    + DateToStr(Date);
  if ManMode.Checked then stat1.Panels[2].Text := '您现在选择的是:' + ManMode.Caption
  else stat1.Panels[2].Text := '您现在选择的是:' + ComputerMode.Caption;
  if AlarmOn.Checked then stat1.Panels[1].Text := AlarmOn.Caption
  else stat1.Panels[1].Text := AlarmOff.Caption;

end;

//procedure TFormMain.N8Click(Sender: TObject);
//begin
//  Close;
//end;
//退出系统;

procedure TFormMain.Exit1Click(Sender: TObject);
begin
  Close;
end;
//人工模式和自动模式的选择

procedure TFormMain.ManModeClick(Sender: TObject);
begin
  ManMode.Checked := True;
  ComputerMode.Checked := False;
end;

procedure TFormMain.ComputerModeClick(Sender: TObject);
begin
  ComputerMode.Checked := True;
  ManMode.Checked := False;
end;
//启动报警和取消报警的选择

procedure TFormMain.AlarmOnClick(Sender: TObject);
begin
  AlarmOn.Checked := True;
  AlarmOff.Checked := False;
end;

procedure TFormMain.AlarmOffClick(Sender: TObject);
begin
  AlarmOff.Checked := True;
  AlarmOn.Checked := False;
end;
//点击菜单项中开始录象,要与窗口保持一直
//对1#开始录象菜单的处理

procedure TFormMain.NStartGet1Click(Sender: TObject);
begin
  tmr1.Enabled := not tmr1.Enabled;
  NStartGet1.Enabled := False;
  NStopGet1.Enabled := True;
  btnStartGet1.Caption := '停止录像';
  if (MoniterNo1.Checked) then
  begin
    FormNo1.btnStartGet1.Caption := btnStartGet1.Caption;
    FormNo1.tmr1.Enabled := not FormNo1.tmr1.Enabled;
  end;
end;
//对1#结束录象菜单的处理;

procedure TFormMain.NStopGet1Click(Sender: TObject);
begin
  tmr1.Enabled := not tmr1.Enabled;
  NStartGet1.Enabled := False;
  NStartGet1.Enabled := True;
  btnStartGet1.Caption := '开始录像';
  if (MoniterNo1.Checked) then
  begin
    FormNo1.btnStartGet1.Caption := btnStartGet1.Caption;
    FormNo1.tmr1.Enabled := not FormNo1.tmr1.Enabled;
  end;
end;
//对2#开始录象菜单的处理,与前面类似;

procedure TFormMain.NStartGet2Click(Sender: TObject);
begin
  tmr2.Enabled := not tmr2.Enabled;
  NStartGet1.Enabled := False;
  NStopGet1.Enabled := True;
  btnStartGet2.Caption := '停止录像';
  if (MoniterNo2.Checked) then
  begin
    FormNo2.btnStartGet2.Caption := btnStartGet2.Caption;
    FormNo2.tmr1.Enabled := not FormNo2.tmr1.Enabled;
  end;
end;
//对2#结束录象菜单的处理,与前面类似;

procedure TFormMain.NStopGet2Click(Sender: TObject);
begin
  tmr2.Enabled := not tmr2.Enabled;
  NStartGet2.Enabled := True;
  NStopGet2.Enabled := False;
  btnStartGet2.Caption := '开始录像';
  if (MoniterNo2.Checked) then
  begin
    FormNo2.btnStartGet2.Caption := btnStartGet2.Caption;
    FormNo2.tmr1.Enabled := not FormNo2.tmr1.Enabled;
  end;
end;
//对3#开始录象菜单的处理,与前面类似;

procedure TFormMain.NStartGet3Click(Sender: TObject);
begin
  tmr3.Enabled := not tmr3.Enabled;
  NStartGet3.Enabled := False;
  NStopGet3.Enabled := True;
  btnStartGet3.Caption := '停止录像';
  if (MoniterNo3.Checked) then
  begin
    FormNo3.btnStartGet3.Caption := btnStartGet3.Caption;
    FormNo3.tmr1.Enabled := not FormNo3.tmr1.Enabled;
  end;
end;
//对3#结束录象菜单的处理,与前面类似;

procedure TFormMain.NStopGet3Click(Sender: TObject);
begin
  tmr3.Enabled := not tmr3.Enabled;
  NStopGet3.Enabled := False;
  NStartGet3.Enabled := True;
  btnStartGet3.Caption := '开始录像';
  if (MoniterNo3.Checked) then
  begin
    FormNo3.btnStartGet3.Caption := btnStartGet3.Caption;
    FormNo3.tmr1.Enabled := not FormNo3.tmr1.Enabled;
  end;
end;

//打开打开对话框;

procedure TFormMain.Open1Click(Sender: TObject);
begin
  dlgOpen1.Execute;
end;
//打开保存对话框;

procedure TFormMain.Save1Click(Sender: TObject);
begin
  dlgsave1.Execute;
end;
//打开另存为对话框;

procedure TFormMain.SaveAs1Click(Sender: TObject);
begin
  dlgsave1.Execute;
end;
//开始运行系统时,系统处于3个摄像头同时监控模式;

procedure TFormMain.MoniterAllClick(Sender: TObject);
begin
  if MoniterNo2.Checked then //保证每次只可以监视一个摄像头窗口;
    FormNo2.Visible := False
  else if MoniterNo3.Checked then
    FormNo3.Visible := False
  else if MoniterNo1.Checked then
    FormNo1.Visible := False;
  MoniterAll.Checked := True;
  MoniterNo1.Checked := False;
  MoniterNo2.Checked := False;
  MoniterNo3.Checked := False;
end;
//当选择1#摄像头监控模式的情况;

procedure TFormMain.MoniterNo1Click(Sender: TObject);
begin
  if MoniterNo2.Checked then //保证每次只可以监视一个摄像头窗口;
    FormNo2.Visible := False
  else if MoniterNo3.Checked then
    FormNo3.Visible := False;
  MoniterNo1.Checked := True;
  MoniterAll.Checked := False;
  MoniterNo2.Checked := False;
  MoniterNo3.Checked := False;
  FormNo1.show; //显示1#摄像头的监控窗口;
  FormNo1.btnStartGet1.Caption := btnStartGet1.Caption; //和主窗体的显示同步;


  //FormNo1.tmr1.Enabled := not FormNo1.tmr1.Enabled;
  //if (btn1.Caption = '开始录像') then
    //FormNo1.tmr1.Enabled := False
  //else FormNo1.tmr1.Enabled := True ;
end;
//当选择2#摄像头监控模式的情况,处理方法和前面相同;

procedure TFormMain.MoniterNo2Click(Sender: TObject);
begin
  if MoniterNo1.Checked then //保证每次只可以监视一个摄像头窗口;
    FormNo1.Visible := False
  else if MoniterNo3.Checked then
    FormNo3.Visible := False;
  MoniterNo2.Checked := True;
  MoniterAll.Checked := False;
  MoniterNo1.Checked := False;
  MoniterNo3.Checked := False;
  FormNo2.Show; //显示2#摄像头的监控窗口;
  FormNo2.btnStartGet2.Caption := btnStartGet2.Caption;
end;
//当选择3#摄像头监控模式的情况,处理方法和前面相同;

procedure TFormMain.MoniterNo3Click(Sender: TObject);
begin
  if MoniterNo2.Checked then //保证每次只可以监视一个摄像头窗口;
    FormNo2.Visible := False
  else if MoniterNo1.Checked then
    FormNo1.Visible := False;
  MoniterNo3.Checked := True;
  MoniterAll.Checked := False;
  MoniterNo1.Checked := False;
  MoniterNo2.Checked := False;
  FormNo3.Show; //显示3#摄像头的监控窗口;
  FormNo3.btnStartGet3.Caption := btnStartGet3.Caption;
end;
//驱动程序选择(来自串行通道那本书)
//procedure TFormMain.N9Click(Sender: TObject);
//var
//  drvlist:TStrings;
//begin
//  frmdriverselect:=tfrmdriverselect.create(Self );
//  try
//    //调用自己的成员函数getdriverlist;
//    drvlist :=GetDriverList ;
//    frmdriverselect.combobox1.items:=drvlist;
//    cap1 .DriverOpen :=False ;
//    //将combox.itemindex 初始化为当前的驱动器;
//    frmdriverselect.combobox1.itemindex:=cap1.driverindex;
//    if frmdriverselect.showmodal =mrok then
//    begin
//      cap1 .DriverIndex :=frmdriverselect.combobox1.itemindex;
//
//    end;
//    cap1 .DriverOpen :=True ;
//    frmdriverselect.free;
//    finally
//    //释放tstring 资源
//    drvlist .Clear ;
//    drvlist .Free ;
//
//end;

//系统开始运行的时候  显示3个摄像头同时监控的窗口,并对现场的情况进行实时监控
//同时创建Avi1,Avi2,Avi3和Inf文件夹,并检查是否存在n.txt,如果存在则读取其内容

procedure TFormMain.FormCreate(Sender: TObject);
begin
  if not DirectoryExists('Avi1') then MkDir('Avi1');
  if not DirectoryExists('Avi2') then MkDir('Avi2');
  if not DirectoryExists('Avi3') then MkDir('Avi3');
  if not DirectoryExists('Inf') then MkDir('Inf');
  if FileExists('.\Inf\n1.txt') then
  begin
    assignfile(f1, '.\Inf\n1.txt');
    Reset(F1);
    Readln(F1, Str1);
    n1 := StrToInt(str1);
    CloseFile(F1);
  end;
  if FileExists('.\Inf\n2.txt') then
  begin
    assignfile(f1, '.\Inf\n2.txt');
    Reset(F2);
    Readln(F2, Str2);
    n2 := StrToInt(str2);
    CloseFile(F2);
  end;
  if FileExists('.\Inf\n3.txt') then
  begin
    assignfile(f1, '.\Inf\n3.txt');
    Reset(F3);
    Readln(F3, Str3);
    n3 := StrToInt(str3);
    CloseFile(F3);
  end;
  videocap1.DriverIndex := 0;
  VideoCap1.DriverOpen := True;
  VideoCap1.VideoPreview := True;
  VideoCap1.visible := True;
  btnStartGet1.Enabled := True; //此时可以选择录象;
  videocap2.DriverIndex := 0;
  VideoCap2.DriverOpen := True;
  VideoCap2.VideoPreview := True;
  VideoCap2.visible := True;
  btnStartGet2.Enabled := True; //此时可以选择录象;
  videocap3.DriverIndex := 0;
  VideoCap3.DriverOpen := True;
  VideoCap3.VideoPreview := True;
  VideoCap3.visible := True;
  btnStartGet3.Enabled := True; //此时可以选择录象;
end;

procedure TFormMain.LvEventClick(Sender: TObject);
var
  mListItem: TListItem;
  mDataTime: TDataTime;
begin
  //显示打开对话框;
  dlgOpen1.Execute;
end;

//响应Tvideo的状态返回事件,该事件是Tvideo特有的事件。通过
//读取控件的属性,更新用户界面。代码如下:

//procedure TFormMain.VideoCap1Status(Sender: TObject);
//begin
  //if
  //end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?