迈德工业相机的SDK官方例程,不是很舒服,而且是Delphi6开发的,现在Delphi都已经是Delphi13了,虽然Delphi现在用的少了,但曾经的王者依然很不错。
从Delphi2009以后就全部支持Unicode了,老的代码显然也得升级一下,这次咱们就用
Delphi11.3,嘿嘿,这个版本好,我之所以说好,是因为它开发的程序可以很轻松的改下后,
就可以跑在Windows平台, linux平台,Mac平台,Android平台等等,其他的就没有验证了,估计问题不大。
这里就简单弄个例程
首先看官方给的例程:


要说明的是3个单元文件,这三个单元文件就是C++里头文件转换而来的,其中CameraApi.pas就是包装了
相机库C函数接口,例程在Delphi6~Delphi2009不用修改应该都可以直接运行,但到DelphiXE以后,需要修改
一点,PCahr 改为 PAnsiChar,Char 改为 AnsiChar。
修改的地方如下:

如果不修改,会因为结构体(Delphi 里叫 record) 长度不同出错。
创建一个Delphi VCL 工程:
我这里取名称是 CamDemo4D11,保存所有,弹出保存位置,创建一个文件夹取名CamDemo4D11,和工程名称一样。
双击文件夹,工程全部保存到此文件夹里。
拖一些控件到窗体上,如下:
功能简介:打开枚举到的相机如果名称一致就打开知道相机,否则打开第一个相机;打开后显示图像在窗口中间TPanel上;可以打开相机的属性设置窗口调节参数;可以放大、缩小图像。

源码以下:
unit UnitMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, CameraApi, CameraDefine, CameraStatus, CameraZoomTool,
Vcl.Menus;
type
PZoomControl = ^ZoomControl;
ZoomControl = packed record
tool:Pointer;
dragStart:Boolean;
dragMousePos:TPoint;
dragViewX, dragViewY:double;
end;
TFormMain = class(TForm)
Button1Setting: TButton;
StatusBar: TStaticText;
InfoUpdateTimer: TTimer;
Displayer1: TPanel;
GrabTimer: TTimer;
EditCam1: TEdit;
ButtonOpen1: TButton;
Button1D: TButton;
Button1X: TButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
Label1: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1SettingClick(Sender: TObject);
procedure InfoUpdateTimer

最低0.47元/天 解锁文章
2855

被折叠的 条评论
为什么被折叠?



