首先要弄明白你要写的OCX是用在客户端还是用在服务器端   

假如用在客户端:

1、创建 

打开delphi 7,选择菜单"new"->"other"->"activex"->"active form"->输入项目名称,   系统自动给你创建了3个文件,一个是项目文件,一个是form的单元文件,还有一个后缀带TLB   的文件。这三个文件中的你只需要更改form的单元文件,项目文件一般不需要写什么,TLB文件   有系统自动维护。

 2、增加接口函数 

所谓接口函数就是调用OCX的程序可以直接调用的函数,如果你要写的函数不提供   外部函数可以按常规声明就可以。但要声明接口函数则必须按步骤声明,

①选择form单位文件(一定要选form文件才可以,否则相应的菜单都是不可用的),然后点击"view"->"Type Library",弹出一个对话框,

②然后选择左侧树状图第一个节点——鼠标右键——New——Method

③修改方法名称,如图所示:

④切换到"Parameters"标签,输入方法参数。

注意:如果参数是string类型,则选择BSTR。如果参数是输入参数,则modifier选择in,

如果是输出参数,则Modifier选out,如果是作为函数返回值,则Modifier选out和refVal

输出参数和函数返回值,Type必须为指针类型 (即:类型 *)

⑤点工具栏的刷新按钮,就会自动更新单元文件代码

如下图,自动生成了function LSBH_LOGIN(const WIN_NO, WORK_NO: WideString): WideString;

safecall;

⑥在自动生成的函数体中写实现代码即可。

3、ocx的注册和卸载。

注册:regsvr32 usQueueOcx.ocx

卸载:regsvr32 /u usQueueOcx.ocx

4、编写html调用ocx (示范文件:testQueue.html)

建议使用Editplus来编写html。

①在Editplus——文件——新建——html网页。

②点工具栏上的对象按钮,选择注册的ocx对象,则html中自动插入对象。

也可以手动插入object对象,代码如下:

<object id="TusQueue" width="0" height="0" classid="CLSID:2FE52D49-D1E2-44C4-AE30-D35BAB691F21"></object>

说明:对象id一般命名和ocx的类名称一致,classid的值可以在ocx代码中搜索classid得到。如下图

5、调试OCX。

我是用html调试的,所以可用在delphi种配置run的参数   "run"->"parametes",弹出一对话框,在"host application"中输入C:\Program Files\Internet Explorer\IEXPLORE.EXE,

在"parametes"中 html文件路径 ,点【OK】按钮。如下图

这样就可以调试delphi代码了。F9运行OCX代码,自动启动parametes设定的浏览器打开调试html,可以设置断点来调试了。

注意:如果是IE8,则会出现无法进入断点的情况。

解决方法: 修改注册表

regedit→ HKEY_LOCAL_MACHINE →SOFTWARE→Microsoft →   Internet Explorer→Main。在Main里新建一个DWORD类型名为TabProcGrowth值为0。

另一种解决方法:delphi7的ocx对应的tlb文件顶部有一个{$VARPROPSETTER ON},把这个开关去掉重新编译注册就可以了

源码下载:http://download.csdn.net/detail/tc310/9114805

Delphi开发OCX详细步骤总结的更多相关文章

  1. Delphi开发ocx插件的调试

    Delphi开发ocx苦于调试,网上看了下大概配置: IE调用ocx调试配置,在当前ocx工程  run-->parameters-->host application 里面配置IE的程序 ...

  2. eclipse搭建android开发环境详细步骤

    搭建android应用的开发环境,一套程序下来也是相当繁琐的,这里我整理下一整套详细流程: 1,下载JDK 去oracle官网下载最新版本的jdk,官网地址 http://www.oracle.com ...

  3. xxx金融后台管理系统详细版:包括本地开发调试详细步骤

    效果演示地址, github地址: demo演示:         1.About 此项目是 vue2.0 + element-ui + node+mongodb 构建的后台管理系统,所有的数据都是从 ...

  4. 基于vue2.0 +vuex+ element-ui后台管理系统:包括本地开发调试详细步骤

    效果演示地址, github地址: demo演示:         1.About 此项目是 vue2.0 + element-ui + node+mongodb 构建的后台管理系统,所有的数据都是从 ...

  5. 在AndroidStudio2.3.2下JNI开发的详细步骤(转)

    转自:http://blog.csdn.net/luhaoying1111/article/details/72468867 安装NDK 在工具栏点击File->Settings->App ...

  6. Delphi 编写ActiveForm窗体工程知识和样例(开发浏览器客户端应用程序)(有详细步骤)

    一.基础知识介绍: 1.ActiveForm的基础知识介绍: 在Delphi中,ActiveForm是封装了Delphi Form的一种ActiveX控件.ActiveForm其实是一种标准的Delp ...

  7. 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)

    用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...

  8. 使用Android-studio开发移动app与weex结合开发详细步骤

    详细步骤如下:   首先,确保机器已经安装了node.js,并且把npm更新到最新版本 下载完毕后,我们可以看到全局目录下的node_modules下面多出一个weex-toolkit 同时,我们留意 ...

  9. unity3d开发的android应用中增加AD系统的详细步骤

    unity3d开发的android应用中增加AD系统的详细步骤 博客分类: Unity3d unity3d  Unity3d已经支持android,怎样在程序里增加admob?  试了一下,确实能够, ...

随机推荐

  1. Selenium2Library系列 keywords 之 _SelectElementKeywords 之 unselect_from_list_by_index(self, locator, *indexes)

    def unselect_from_list_by_index(self, locator, *indexes): """Unselects `*indexes` fro ...

  2. layout相关

    大致看了看布局大致有5种(approximately) 1. LinearLayout 2. RelativeLayout 3. FrameLayout 4. TableLayout 5. GridL ...

  3. java开发eclipse常见问题(一)The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path

    最近刚开始用Eclipse开发,刚开始都是按教程一步一步的新建web工程也没出现什么问题. 今天选了一个新的workspace,建了个web工程发现最简单的jsp页面都报错:The superclas ...

  4. win7启动出现蓝屏STOP: 0X0000007B

    解决方法:开机进BIOS,更改Interface Combination,即硬盘的接口种类,由默认的RAID改成了AHCI,保存,重启,一切正常. 事件过程: 今天开机进入win7,在start wi ...

  5. Mapreduce读取Hbase表,写数据到多个Hbase表中

    Job端的变化: 通过设置conf,配置输出表,在reduce中获取输出表名字 Configuration conf = job.getConfiguration(); //输出表1 conf.set ...

  6. CentOS 5.5 快速安装MariaDB-5.5.35

    被网上各种教程坑的不轻T,T,5.5下不升级yum的情况下想快速安装还真有点费劲 至于源码编译安装坑貌似更多 而且在小内存的VPS上编译实在费力 下载地址 http://yum.mariadb.org ...

  7. 二、 C#调用存储过程

    个人比较喜欢使用第二种传递参数的方法 1. 调用的方法 public DataTable ExceStoredProcedure (string strCom, SqlParameter[] comm ...

  8. HD2025查找最大元素

    查找最大元素 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  9. SpriteKitCommonUse

    [SpriteKitCommonUse] 1.SKView中提供了显示FPS和NodeCount(当前view)的方法,如下: 展现一个scene: - (void)viewWillAppear:(B ...

  10. oracle学习 五 使用存储过程创建一个重置密码为123456的功能(持续更新中)

    首先写一个函数是MD5的方法 create FUNCTION GET_MD5 ( p_str in varchar2) RETURN varchar2 IS BEGIN RETURN Utl_Raw. ...