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

📄 main.pas

📁 多媒体视频程序设计--使用Delphi 第八章 源碼 ==== 8-1 静态图像采集 8-2 录像参数设置 8-3 录像控制 8-4 看边录手动录像
💻 PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,VFW, ExtCtrls, Menus,PreviewRateSet,VideoView,CapStatusWin,
  ExtDlgs,CapParmsForm, Buttons,AVITempAlloc,ManualCap;

type
  TForm1 = class(TForm)
    DriverIndexLabel    : TLabel;
    DriverIndexComboBox : TComboBox;

    ScaleCheckBox       : TCheckBox;
    PropCheckBox        : TCheckBox;

    MainMenu1           : TMainMenu;

    ParmsMenuItem       : TMenuItem;
     DriverNameMenuItem  : TMenuItem;
     DriverCapsMenuItem  : TMenuItem;

    SetupMenuItem       : TMenuItem;
     DisplayModeMenu     : TMenuItem;
     PreviewMode         : TMenuItem;
     OverlayMode         : TMenuItem;
     PreviewRateMenu     : TMenuItem;
     CompressionMenu     : TMenuItem;
     DisplayMenu         : TMenuItem;
     FormatMenu          : TMenuItem;
     VideoSourceMenu     : TMenuItem;
     AVITempMenu         : TMenuItem;

     ViewMenuItem        : TMenuItem;
     LiveWinMenu         : TMenuItem;
     StatusWinMenu       : TMenuItem;

    EditMenu            : TMenuItem;
     CopyMenu            : TMenuItem;
     SaveDIBMenu         : TMenuItem;
     capParmsMenu        : TMenuItem;

    SavePictureDialog1: TSavePictureDialog;


    RECGroupBox: TGroupBox;
    StartREC     : TSpeedButton;
    StopREC      : TSpeedButton;
    SaveAVIButton: TSpeedButton;

    RecTimer: TTimer;
    SaveAVIDialog: TSaveDialog;
    ManualCapBtn: TSpeedButton;




    procedure  FormCreate(Sender: TObject);
    procedure  FormClose(Sender: TObject; var Action: TCloseAction);

    procedure  DriverIndexComboBoxChange(Sender: TObject);

    procedure  DriverNameMenuItemClick(Sender: TObject);
    procedure  DriverCapsMenuItemClick(Sender: TObject);
    procedure  PreviewModeClick(Sender: TObject);
    procedure  OverlayModeClick(Sender: TObject);
    procedure  PreviewRateMenuClick(Sender: TObject);
    procedure  ScaleCheckBoxClick(Sender: TObject);
    procedure  CompressionMenuClick(Sender: TObject);
    procedure  DisplayMenuClick(Sender: TObject);
    procedure  FormatMenuClick(Sender: TObject);
    procedure  VideoSourceMenuClick(Sender: TObject);
    procedure PropCheckBoxClick(Sender: TObject);
    procedure LiveWinMenuClick(Sender: TObject);
    procedure StatusWinMenuClick(Sender: TObject);
    procedure CopyMenuClick(Sender: TObject);
    procedure SaveDIBMenuClick(Sender: TObject);
    procedure capParmsMenuClick(Sender: TObject);
    procedure SetRECStatus(Sender: TObject);
    procedure RecTimerTimer(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure AVITempMenuClick(Sender: TObject);
    procedure SaveAVIButtonClick(Sender: TObject);
    procedure ManualCapBtnClick(Sender: TObject);

  private
    { Private declarations }


    Function SetDisplayMode(ModeIndex:integer):Boolean;

    procedure ShowVideoViewForm(value:Boolean);
    procedure ShowVideoStatusForm(value:Boolean);
    procedure VideoViewHide(Sender:TObject);
    Procedure StatusWinHide(Sender:TObject);

    function ShowCapParmsDlg:Boolean;
    function CapParmsToStr:string;

    procedure BeginREC;
    procedure EndREC;
    procedure AllControlsEnable(en:Boolean);
    Function  SelectAVIFile:Boolean;

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin

 GetVideoDriverList(DriverIndexComboBox.Items );
 


 VideoViewForm:= TVideoViewForm.Create(self);
 VideoViewForm.OnHide:=VideoViewHide;
 VideoViewForm.Show;


 VideoStatusForm:=TVideoStatusForm.Create(self);
 VideoStatusForm.OnHide:=StatusWinHide;
 VideoViewForm.OnStatus:=VideoStatusForm.OnCapStatus;
 VideoStatusForm.Show;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 if assigned(VideoViewForm) then
 begin
   VideoViewForm.Free;
 end;

 if assigned(VideoStatusForm) then
 begin
   VideoStatusForm.Free;
 end;

end;




procedure TForm1.DriverIndexComboBoxChange(Sender: TObject);
begin

 VideoViewForm.DriverIndex := DriverIndexComboBox.ItemIndex;

 VideoViewForm.DriverOpen  := TRUE;

 PreviewModeClick(nil);


 RECGroupBox.Enabled := VideoViewForm.DriverOpen;

end;


procedure TForm1.DriverNameMenuItemClick(Sender: TObject);
begin

 if   VideoViewForm.DriverOpen then
 begin
    showMessage('ヘ玡硈钡

⌨️ 快捷键说明

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