Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7841581
  • 博文数量: 92
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 5216
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-15 17:17
文章分类

全部博文(92)

文章存档

2011年(1)

2008年(91)

我的朋友

分类: WINDOWS

2008-08-28 11:20:15

delphi开发activex控件的心得

来源:CSDN   作者:yuehaiyang   时间:2007-09-30  点击:1955 次

最近在做的一个  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”,这样就可以调试  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”,但两者是有区别的,具体可以网上查询。
阅读(3874) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~