Delphi开发OCX详细步骤总结
首先要弄明白你要写的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详细步骤总结的更多相关文章
- Delphi开发ocx插件的调试
Delphi开发ocx苦于调试,网上看了下大概配置: IE调用ocx调试配置,在当前ocx工程 run-->parameters-->host application 里面配置IE的程序 ...
- eclipse搭建android开发环境详细步骤
搭建android应用的开发环境,一套程序下来也是相当繁琐的,这里我整理下一整套详细流程: 1,下载JDK 去oracle官网下载最新版本的jdk,官网地址 http://www.oracle.com ...
- xxx金融后台管理系统详细版:包括本地开发调试详细步骤
效果演示地址, github地址: demo演示: 1.About 此项目是 vue2.0 + element-ui + node+mongodb 构建的后台管理系统,所有的数据都是从 ...
- 基于vue2.0 +vuex+ element-ui后台管理系统:包括本地开发调试详细步骤
效果演示地址, github地址: demo演示: 1.About 此项目是 vue2.0 + element-ui + node+mongodb 构建的后台管理系统,所有的数据都是从 ...
- 在AndroidStudio2.3.2下JNI开发的详细步骤(转)
转自:http://blog.csdn.net/luhaoying1111/article/details/72468867 安装NDK 在工具栏点击File->Settings->App ...
- Delphi 编写ActiveForm窗体工程知识和样例(开发浏览器客户端应用程序)(有详细步骤)
一.基础知识介绍: 1.ActiveForm的基础知识介绍: 在Delphi中,ActiveForm是封装了Delphi Form的一种ActiveX控件.ActiveForm其实是一种标准的Delp ...
- 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)
用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...
- 使用Android-studio开发移动app与weex结合开发详细步骤
详细步骤如下: 首先,确保机器已经安装了node.js,并且把npm更新到最新版本 下载完毕后,我们可以看到全局目录下的node_modules下面多出一个weex-toolkit 同时,我们留意 ...
- unity3d开发的android应用中增加AD系统的详细步骤
unity3d开发的android应用中增加AD系统的详细步骤 博客分类: Unity3d unity3d Unity3d已经支持android,怎样在程序里增加admob? 试了一下,确实能够, ...
随机推荐
- ctype库试运行
from ctypes import * msvcrt=cdll.msvcrt message_string="Hello world!\n" msvcrt.wprintf(&qu ...
- 使用Thrift RPC编写程序(服务端和客户端)
1. Thrift类介绍 Thrift代码包(位于thrift-0.6.1/lib/cpp/src)有以下几个目录: concurrency:并发和时钟管理方面的库processor:Processo ...
- Linker scripts之Intro
1 Intro Every link is controlled by a linker script. The main purpose of the linker script is to des ...
- Java学习日志-01-Hello World
1.安装JDK1.7 2.安装eclipse 3.eclipse上写第一个java程序-hello world 先建工程,再建包,养成良好的习惯,然后新建类 若不先建立包,可能会提示"The ...
- java多线程之Lock线程同步
1.线程同步: package cn.itcast.heima2; import java.util.concurrent.locks.Lock; import java.util.concurren ...
- 【MySql】性能优化之分析命令
一 当发现程序运行比较慢的时候,首先排除物力资源问题之后,就将注意力转向mysq数据库: 1.首先确定运行慢的sql语句: mysql> show full processlist; 2.确认低 ...
- ms-class的进化
ms-class是avalon用得最多的几个绑定之一,也正因为如此其功能一直在扩充中.根据时期的不同,分为旧风格与新风格两种. 旧风格是指正在ms-class后面跟着类外,然后在绑定值中添加表达式,即 ...
- django 命名空间详解
include(module[, namespace=None, app_name=None ]) include(pattern_list) include((pattern_list, app_n ...
- 在PhpStorm9中与Pi的xdebug进行调试
PI的配置参考 http://www.cnblogs.com/yondy/archive/2013/05/01/3052687.html 在PhpStorm 9.0中参考下面的截图进行配置 配置完成以 ...
- Intellij IDEA 14.x 中的Facets和Artifacts的区别
Facets和Artifacts的区别: Facets 表示这个module有什么特征,比如 Web,Spring和Hibernate等: Artifact 是maven中的一个概念,表示某个modu ...