delphi 开发 activex 控件的心得
最近在做的一个 B/S 系统要在客户端读取 USB 锁的要求, 所以就需要写一个 OCX 来验证。 原来也没有做过,所以折腾了好几天,总算有点眉目了,所以把心得写下,交流下。 首先要弄明白你要写的 OCX 是用在客户端还是用在服务器端 假如用在客户端:
1、 创建 、 打开 delphi 7,选择菜单“new”->“other”->“activex”->“active form”->输入项目名称,
系统自动给你创建了 3 个文件, 一个是项目文件, 一个是 form 的单元文件, 还有一个后缀带 TLB 的 文件。这三个文件中的你只需要更改 form 的单元文件,项目文件一般不需要写什么,TLB 文件有系 统自动维护。
2、 增加接口函数 、 所谓接口函数就是调用 OCX 的程序可以直接调用的函数,如果你要写的函数不提供外部函数可以 按常规声明就可以。但要声明接口函数则必须按步骤声明,有两种途径,其一:选择 form 单元文件,
然后点击“edit”->“add to interface”, 弹出一个对话框, 输入要声明的函数, function fun:integer; 如: 其二:选择 form 单位文件,然后点击“view”->“Type Library”,弹出一个对话框,然后点击工具栏 中“add a interface”可以增加函数或过程。说明:在这里注意几个地方,第一,一定要选 form 文件
才可以,否则相应的菜单都是不可用的;第二、声明函数或过程的参数类型要注意 string->BSTR(第 二种途径)或 WideString(第一种途径)。增加属性也函数类同。
3、 调试 、 我是用 html 调试的,所以可用在 delphi 种配置 run 的参数 “run”->“parametes”,弹出一对 话框,在“host application”中输入 C:\Program Files\Internet Explorer\IEXPLORE.EXE, 在 “parametes”中 192.168.6.9/my.htm,这样就可以调试 Delphi 代码了
4、 发布 、 在没有 build 前,可以“project”->“web deployment”中配置(主要输入 ocx 的地址和 web 服务器的 url),然后可以“
web deploy”发布,其实就是生成了一个 htm 文件,不过该文件
里包含了调用方法而已。但是
delphi 好像至运行执行一次,发布后这两个菜单就不可用了,甚至刚开
始我不知道,直接编译了,编译后该菜单也不可用了。说明:如果没有用“web deploy”发布,而想在网页 中调用的,就要知道该 ocx 的 点也需要注意。 GUID,可以在 TLB 文件中找,CLASS_XXX 后面的就是,这一
5、 数字签名 、 要想网页能够顺利使用 ocx, 就需要数字签名, 否则 IE 直接就给干掉了, 当然 IE 安全级调低除外。 关于生成测试数字签名的方法,网上很多。我想要说得是,测试数字证书只能用在 win2000 系统,用在 XP,特别是打了补丁的 XP,根本不行。另外也可以
参考《使用 Delphi 快速开发 ActiveX 控件》
这篇文章如果用在服务器端:其实应该是 COM 组件了吧,asp 的调用方式是 <% set obj=Server.CreateObject("DelphiCom.Test2") %>
a、创建 、 打开 delphi 7,选择菜单“new”->“other”->“activex”->“active libray”生成一个项目,然后再
“new”->“other”->“activex”->“automation object”,然后参照上面增加接口函数,就可以。不 过编译出来是个 dll,但是是可以注册的 dll。 “automation object”也可以换成“com object”,但两者是有区别的,具体可以网上
查询。
使用 Delphi 快速开发 ActiveX 控件
ActiveX 控件也就是一般所说的 OCX 控件,它是 ActiveX 技术的一部分。ActiveX 是微软公司推出的基于组件对象模型 COM 的技术,包括对 Windows 32 位应用编程接口(Win32 API)和组件对象模型的一系列扩充和增强,目标是把
计算机桌 面环境与因特网环境集成起来,同时保护在 Windows 技术中现有的开发投资。微软的 ActiveX 技术根本上就是修改过的 OCX 技术,使它能够跨越 Internet,主要是使用 WWW 来传递控件。
ActiveX 控件可以被集