📄 main.~pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, OleCtrls, HVDEVICELib_TLB, ExtCtrls,Properties;
type
TfrmMain = class(TForm)
HVDevice: THVDevice;
MainMenu1: TMainMenu;
StatusBar1: TStatusBar;
File1: TMenuItem;
SaveImage1: TMenuItem;
Exit1: TMenuItem;
Camera1: TMenuItem;
SingleGrab1: TMenuItem;
ContinousGrab1: TMenuItem;
CancelGrab1: TMenuItem;
AutoWhiteBalance1: TMenuItem;
Properties1: TMenuItem;
SaveDialog1: TSaveDialog;
procedure FormResize(Sender: TObject);
procedure SingleGrab1Click(Sender: TObject);
procedure SaveImage1Click(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure ContinousGrab1Click(Sender: TObject);
procedure CancelGrab1Click(Sender: TObject);
procedure AutoWhiteBalance1Click(Sender: TObject);
procedure Properties1Click(Sender: TObject);
procedure HVDeviceGrabContinuousChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
bIsGrabContinous:boolean;
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.FormCreate(Sender: TObject);
begin
bIsGrabContinous := false;
end;
procedure TfrmMain.FormResize(Sender: TObject);
begin
HVDevice.Left := 0;
HVDevice.Top := 0;
HVDevice.Width := frmMain.Width;
HVDevice.Height := frmMain.Height;
if frmMain.Width > 200 then
begin
StatusBar1.Panels[0].Width := frmMain.Width - 200;
StatusBar1.Panels[1].Width := 200;
end
else
begin
StatusBar1.Panels[0].Width := 0;
StatusBar1.Panels[1].Width := frmMain.Width;
end;
end;
procedure TfrmMain.SingleGrab1Click(Sender: TObject);
begin
HVDevice.GrabSingle();
HVDevice.Draw(0, 0, HVDevice.Width, HVDevice.Height, 0, 0, HVDevice.Width, HVDevice.Height);
end;
procedure TfrmMain.SaveImage1Click(Sender: TObject);
begin
SaveDialog1.Filter := 'Bmp files|*.bmp|Jpeg files|*.jpg';
SaveDialog1.FilterIndex := 1;
SaveDialog1.DefaultExt := 'bmp' ;
SaveDialog1.Title:= 'Select the destination file ' ;
if (SaveDialog1.Execute()) then
begin
HVDevice.SaveImage(SaveDialog1.FileName);
end;
end;
procedure TfrmMain.Exit1Click(Sender: TObject);
begin
frmMain.Close();
end;
procedure TfrmMain.ContinousGrab1Click(Sender: TObject);
begin
HVDevice.GrabContinuous();
bIsGrabContinous := true;
end;
procedure TfrmMain.CancelGrab1Click(Sender: TObject);
begin
HVDevice.GrabCancel();
bIsGrabContinous := false;
end;
procedure TfrmMain.AutoWhiteBalance1Click(Sender: TObject);
begin
HVDevice.AutoWhiteBalance();
bIsGrabContinous := true;
end;
procedure TfrmMain.Properties1Click(Sender: TObject);
begin
frmProperties.ShowModal();
end;
procedure TfrmMain.HVDeviceGrabContinuousChange(Sender: TObject);
begin
HVDevice.Draw(0, 0, HVDevice.Width, HVDevice.Height, 0, 0, HVDevice.Width, HVDevice.Height);
HVDevice.Continue();
end;
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if bIsGrabContinous then
HVDevice.GrabCancel();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -